This all started when a friend asked if we could consider Christianity to be "Judaism++." What would happen if some religions were treated as programming languages?
Judaism (J): Block-structured religion, with syntax literally carved in blocks, although many J programmers argue about language semantics. In program name spaces, there is only one divine object with global scope, and no nested blocks may override its definition. Unfortunately, debugging is difficult as the divine object cannot even be named, and therefore exists only in whitespace. Most programs make heavy use of "guilt()" call of "lman.a." Must use RL(1) parsers.
Roman Catholicism (J++): Object-oriented version of J (hence J++). J++ has overridden the divine object and provided a name, with other method names seeing changes and new methods added (eg. grace(), confess() are added to Man; "Messiah" is kept, "Sheol" is now "Las Vegas," etc.) J++ Systems Analysts must, curiously, remain celibate. The reference platform definition resides in Rome with changes and additions made constantly. This could be blamed by the Senior Systems Analysts' fondness for espresso and cardinal numbers. Rumours that the language must be expressed using only Polish notation are false.
Protestants (P, J++-): In a reaction against the ornateness of J++, several European programmers developed P by removing contentious library calls in J++ (eg. "checkCelibacy," "payIndulgence", "enterPurgatory," "fishOnFridays", etc.). Different P installations originally accepted each other's code, but, alas and alack, this is no longer the case. There have been a few attempts to come up with a Pcode virtual religion, but converting from one dialect to another is difficult, and by the time the resulting program is finished running with Pcode, the programmer ends up in therapy with a Jungian. Many J++ programmers convert to using P, but the reverse is much rarer and more spectacular.
Southern-Baptists (Q): This is a dialect of P in which proof of program correctness is an executing program. Q code which crashes is held to be incorrect, but until this happens, it is nearly impossible to convince a Q programmer that their running program has bugs. For some reason, a recent Q language conference strengthened an old J rule that source programs with suffix ."xx" must, without question, execute commands given by programs with suffix ."xy".
Islam (A): There is some contention as to whether or not A code is inspired by J and J++ language features or if it just overrides J and J++ methods. A programmers can easily switch between J, J++ and A code. (However, several international J++/A programming conferences held south of Tel Aviv between the years 1095 and 1272 turned ugly as possession of the J reference platform was disputed.) Much of A programming revolves around appeals to an oracle object named "K," which resolves all collisions in the combined J, J++ and A namespace. Many different dialects of A remain popular, although interoperation efforts have been occasionally described as "internecine." The reference platform can be seen in Mecca only by A programmers.
Mormons (M): Inherits all method interfaces from P but completely changes their implementations. This confuses most P programmers as their programs will run on an M machine, but the programs have have radically different semantics from the original. Reference platform is in Salt Lake City. Young M programmers travel in pairs, handing out language specs and programming advice for free. Many non-M practitioners have this spec on their shelves, but never get around to reading it. Legend has it that an M programmer wrote the precursor to "Doom."
Atheists (--): These programmers eschew programming languages, and instead work with specification languages. They insist that a divine object does not exist because it cannot be fully specified. They work with J and J++ programmers, pointing out all the errors in latter's code. Sadly, they actually get no work accomplished themselves because of all the time spent specifying programs that never work properly, although their one article of faith is that program failure is always the fault of the programmer and never the specifier.
New Age (Omega): A scripting language combining features from the world's major religions. Some practitioners consider themselves wizards because of the language's difficult syntax and semantics (a bit like awk, sed and Rexx, but with no whitespace). These wizards have been seen explaining their code to J++ and P programmers, but the latter have not been able to make head(1) nor tail(1) of the algorithms. P programmers insist Omegans are really pagans, but there is no evidence of Omegans performing code reviews at the stroke of midnight, waving dead chickens, or using assembly code.
Waiting for lightning to strike my UPS,
I remain,
Yours truly,
Mike Zastre (zastre@csr.uvic.ca)