Higher-Order Fun

Game Design & Game Programming

If programming languages were religions…

I originally wrote this article in December 15, 2008, and posted it on the Aegisub blog. I’m re-posting it here for archival purposes.

“If programming languages were religions”

(Inspired by “If programming languages were cars“)

C would be Judaism – it’s old and restrictive, but most of the world is familiar with its laws and respects them. The catch is, you can’t convert into it – you’re either into it from the start, or you will think that it’s insanity. Also, when things go wrong, many people are willing to blame the problems of the world on it.

Java would be Fundamentalist Christianity – it’s theoretically based on C, but it voids so many of the old laws that it doesn’t feel like the original at all. Instead, it adds its own set of rigid rules, which its followers believe to be far superior to the original. Not only are they certain that it’s the best language in the world, but they’re willing to burn those who disagree at the stake.

PHP would be Cafeteria Christianity – Fights with Java for the web market. It draws a few concepts from C and Java, but only those that it really likes. Maybe it’s not as coherent as other languages, but at least it leaves you with much more freedom and ostensibly keeps the core idea of the whole thing. Also, the whole concept of “goto hell” was abandoned.

C++ would be Islam – It takes C and not only keeps all its laws, but adds a very complex new set of laws on top of it. It’s so versatile that it can be used to be the foundation of anything, from great atrocities to beautiful works of art. Its followers are convinced that it is the ultimate universal language, and may be angered by those who disagree. Also, if you insult it or its founder, you’ll probably be threatened with death by more radical followers.

C# would be Mormonism – At first glance, it’s the same as Java, but at a closer look you realize that it’s controlled by a single corporation (which many Java followers believe to be evil), and that many theological concepts are quite different. You suspect that it’d probably be nice, if only all the followers of Java wouldn’t discriminate so much against you for following it.

Lisp would be Zen Buddhism – There is no syntax, there is no centralization of dogma, there are no deities to worship. The entire universe is there at your reach – if only you are enlightened enough to grasp it. Some say that it’s not a language at all; others say that it’s the only language that makes sense.

Haskell would be Taoism – It is so different from other languages that many people don’t understand how can anyone use it to produce anything useful. Its followers believe that it’s the true path to wisdom, but that wisdom is beyond the grasp of most mortals.

Erlang would be Hinduism – It’s another strange language that doesn’t look like it could be used for anything, but unlike most other modern languages, it’s built around the concept of multiple simultaneous deities.

Perl would be Voodoo – An incomprehensible series of arcane incantations that involve the blood of goats and permanently corrupt your soul. Often used when your boss requires you to do an urgent task at 21:00 on friday night.

Lua would be Wicca – A pantheistic language that can easily be adapted for different cultures and locations. Its code is very liberal, and allows for the use of techniques that might be described as magical by those used to more traditional languages. It has a strong connection to the moon.

Ruby would be Neo-Paganism – A mixture of different languages and ideas that was beaten together into something that might be identified as a language. Its adherents are growing fast, and although most people look at them suspiciously, they are mostly well-meaning people with no intention of harming anyone.

Python would be Humanism: It’s simple, unrestrictive, and all you need to follow it is common sense. Many of the followers claim to feel relieved from all the burden imposed by other languages, and that they have rediscovered the joy of programming. There are some who say that it is a form of pseudo-code.

COBOL would be Ancient Paganism – There was once a time when it ruled over a vast region and was important, but nowadays it’s almost dead, for the good of us all. Although many were scarred by the rituals demanded by its deities, there are some who insist on keeping it alive even today.

APL would be Scientology – There are many people who claim to follow it, but you’ve always suspected that it’s a huge and elaborate prank that got out of control.

LOLCODE would be Pastafarianism – An esoteric, Internet-born belief that nobody really takes seriously, despite all the efforts to develop and spread it.

Visual Basic would be Satanism – Except that you don’t REALLY need to sell your soul to be a Satanist…

Thanks to jfs and other people on #aegisub for the suggestions. Keep in mind, this list is a joke, and is not meant to offend anyone. Also, if you’re a Muslim, please don’t kill me. 😉

Next post »

37 ResponsesLeave one →

  1. Muslim

     /  2012-04-19

    Hello , I am a Muslim .. and I actually liked your article :)
    But I didn’t like your last sentence .. because TRUE Islam is based on wisdom and kindness even with people who “offend or insult” Islam .. the word “Islam” means “To be in peace” in Arabic language by the way , and if you read about how Islam spread all over the world you will notice that the sword was Always the last way of telling people about Islam :)
    So please don’t think of us that way , because we are not like that :)
    Thanks

  2. tomcpp

     /  2012-05-22

    Funny how even the supposed “justification” of islam above, aside from lying (islam means “militarily dominate”, which you could of course translate into “to be in peace”, because in some way it is).

    What is more revealing is the implicit threat in there. The guy draws specific attention to “the sword” and we all know what he means by that, and defends his attitude by saying it’s a “last resort”. That’s cute, and yet not reassuring at all, raping children is also the last resort of a paedophile, like the islamic “prophet”, he would much rather have those children court him. Any criminal monster only commits crimes as a last resort.

    The right attitude is much simpler, if it can’t be spread peacefully, it should not be spread (today). That’s what you will find almost exclusively in Christ of course.

    And of course the grammar is of the usual quality when a muhammedan is speaking. Showing just how sofisticated they are.

  3. John

     /  2012-05-23

    It’s amazing that both parties here, a Muslim and a rather obvious racist/Islamophobe, have not got their facts straight about the meaning of the world “Islam”.

    “Islam” roughly means “submission”, and specifically: to God, in the context of the Muslim religion.

    “Islam” is from the root SLM, and shares that root with the Arabic “salaam” (peace), and even the Hebrew “shalom”. However, that doesn’t mean “Islam” translates to “peace” or “to be in peace”. There are plenty of words with the SLM root that have nothing at all do to with peace. The “peace” translation might be promoted by progressive branches of Islam, or some sort of pop-Islam notion among young people.

    And it most certainly doesn’t mean “militarily dominate”. I have no clue where someone would get that definition. I’ve never heard it before and I don’t think you’ll find any credible source to back it up.

    I’m not sure if tomcpp was trying to witness for Christ or something, but by getting the facts wrong and then insulting an entire enormous class of people, it just brings shame to Christianity. Good job, tomcpp!

  4. Haha that’s so damn awesome and true !

    I love how the first comment is “MUSLIM” and that he didn’t like your comment about Islam xD, he’ll probably try to fly a plane into your blog so watch out 😀

  5. lonestar

     /  2012-05-25

    What’s really amazing actually is that all commenters on the etymology of “Islam” are gravely mistaken as linguistic researchers have recently discovered that the origin of the word actually means to be covered by strawberry jam… fancy that…

  6. I love how some bigoted and close-minded people have been attracted to this one tiny (and irrelevant to the larger conversation) piece of the article and totally ignored that this article was written in jest, for fun, and to otherwise bring all of us programmers into the fold of what could be an intelligent joke. Way to help preserve my faith in the larger human community.

    That said, I laughed. Especially about the Java part… having a huge distaste for that language but with a close friend who’s a fanatic about it, I’m compelled to share with him, and many others! Thanks for posting this, Rodrigo!

  7. Where is JavaScript?

  8. Well if you want to add JavaScript to the list, how about we class it under Black Magic. Seeing how it is something designed to help us achieve good, with unintentional consequences beyond our comprehension, plus it can be used by evil doers to control, spy and mess with the innocent. I personally use as little as possible JavaScript, resorting more to server side code if possible.

  9. reasonable person

     /  2012-05-27

    tomcpp, have you never heard of the crusades? Christianity has not and never will be about peace. The US military swears to Christ and is the prime example of terrorism in the world today. You are deluded.
    I am no Al Qaeda warrior but it is difficult for me as it should be any reasonable person capable of separating national interest and moral logic that the declaration of war by Osama.bin Laden is more sound that that of George Bush junior. Go read it for yourself. You need not agreed with it, perpaps it is not a valid reason for war but it is logically sound. If the US and Allies were honest, the President would just say, we are invading because we disagree with your way of life and we disagree enough to murder the innocents we on the pretence of freedom.
    C++ might be difficult to understand but it works if you care to take the time. If you don’t like it you can write in some other language. Just keep your code on some other machine.

  10. Random Guy

     /  2012-05-28

    Great read! This has given myself and others I have shared it with an awesome laugh. I use C++, PHP, and Perl myself. So I guess I’m an Islamic, Cafeteria Christian, Voodooist? I wish I could make that my job title!

    @reasonable person
    This article was intended for humor. If you’re getting anything more out of it than that, you are misinterpreting it. It, and every other language listed above (asides Visual Basic) have strengths and weaknesses which can make them more or less appropriate for any given task.

    One of the reasons I don’t like religion is that the people who follow it, tend to take it far too seriously. If you like religion, you need only preach its tenets to set a good example, you don’t need to chastise others randomly.

  11. Avalon

     /  2012-05-31

    @liz Javascript is too crappy to be considered a Programming Language and therefore not mentioned.

  12. Nice! What about Pascal and Fortran? C’mon, Fortran was the first one ever (1954) 😉
    http://www.digibarn.com/collections/posters/tongues/ComputerLanguagesChart-med.png

  13. Alexander

     /  2012-08-26

    What about JavaScript ? :)

  14. Totally wrong on Java. See, some people -often whom have never used it- continue saying Java “is dead”, “is so 1990s” yet, Java continues being relevant ever more each day, and is now free (GPL open source, OpenJDK). Then some said Java was going to die after the Oracle acquisition of Sun Microsystems, they were proved wrong once again, with Oracle investing in Java, opening OpenJDK even more, making JavaFX open source (OpenJFX), making OpenJDK the reference implementation of JDK7, and even getting IBM, Apple and Twitter aboard the OpenJDK project. Plus, Apple donated its OSX JRE code to OpenJDK as well.

    So does it make it like “fundamentalist christianity”? don’ t think so, more like humanism…

    See, Java is NOT ONLY a programming language, Java is actually 3 things: a programming language, a virtual machine, and a level playing field software ecosystem. So you can write cross platform Java apps without even writing a single line of Java source code, thanks to dynamic languages that run atop the Java VM. That’ s why there’ s JRuby, Jython, xRuby (ruby to java bytecode compiler), Scala, NetRexx (open source REXX for the JVM – http://www.netrexx.org), and you can even write Java apps with Basic, thanks to Jabaco (www.jabaco.org).

    So, in the end, Java loves all religions, people of all beliefs are welcome in the JVM, which is based on the rational belief that “porting code” from one OS to another is silly, and that all (java) apps should run on all OSs. It’ s based on reason, like humanism.

    So there 😛
    FC

  15. Niket

     /  2012-09-04

    You don’t have the slightest idea what Hinduism is about. Hinduism is not a religion, it is a culture based on a philosophy. That philosophy could easily be imagined as the mother of all these religions you have listed…
    In my understanding only Assembly languages could be analogical to Hinduism.
    :)
    BTW the article is funny and you have achieved you goal. But could be summarized with an old Hindu saying: Neti Neti…
    Chill :)

  16. karim

     /  2012-09-11

    Loving c++ probably cause I code using it lol and a muslim too so love it even more

  17. Bindesh Kumar Singh

     /  2012-11-01

    LOL

    Hindusim is nothing but Sanatan Dharm, Assembly language

  18. calio

     /  2012-12-24

    I just love how everyone who comes to say “you got this language wrong, because…” sounds exactly like a religious fanatic.

  19. Jubin Jose

     /  2013-01-30

    That LISP part is nothing but awesome! haha..

  20. No mention of Forth – the shape shifter Coyote of languages. A place where you can define anything to be anything. A place where there are no forward references. A OS/Language that used raw sector read/write directly to the drive – that’s right – no file system – have bios use the boot sector to load it all. A true write only language with a slowly dying cohort of rabid followers who make offerings to Charles Moore and Elizabeth Rather in the dark.

  21. Martin

     /  2013-08-19

    I disagree that C# is like Mormonism. Your description of C# is very good, but it makes C# look way more like Catholicism than Mormonism. Think about it: controlled by a single organization that most Java users think is evil, very similar to Java but having many subtle theological differences. Catholicism is a perfect fit.

  22. Hi!

    When I read the classification of C++ in the table of religions! I was thinking that the author is a Muslim, because it seem like that. And he is a master in C++ (I think). I wish you learn about Islam a little more to save your soul after your death.

    About the other comments, you! wise people knew that Islam is the truth! You don’t think so? Try to use your brain in this part of your life (religion) like you used him in mathematics, design, art and all things in this life, try to be objective in this part, don’t let people convince you with lies and find the truth yourself.

    And another word, throwing the meaning of “Islam” apart, Islam still the religion of God(Allah, الله).

  23. Hello There. I discovered your blog the use of msn.
    This is a really well written article. I will be sure to bookmark it and return
    to learn extra of your helpful info. Thanks for the post. I will definitely comeback.

  24. armornick

     /  2013-12-26

    Your blog is very good but this article in particular is redundant. You see, programming languages ARE religions. My proof are all of the comments above (aside from the ones who are about actual religions).

  25. Rakib

     /  2014-01-10

    I am a game programmer, mainly C++ programmer and a Muslim. And I agree with you in most parts. It’s difficult to understand Islam much like C++. And it is the responsibility of programmers to write good program is C++. Because it is so powerful and complex, if you are not careful you are sure to messed up . In that cases who is to be blamed? the programmer who was not careful enough or C++. Most people blame C++. Stating it is tough, complex, old/out dated, it does not introduce *cool* stuffs like java or C# blah blah. But logical and sensible people would blame the programmer for not having deep knowledge in C++. But we all know C++ is very hard to master and takes a lot of time to understand properly.

    This situation is kind of similar with Islam. People who don’t understand Islam properly, don’t know it deeply, end up misusing it. And who to blame for it, of course Islam (or C++). Seriously, you can’t blame C++ for being so complex or out dated, it is what it is. If you don’t like it, don’t use it and just don’t blame it. When a programmer tries to defend himself saying, “I know how to program but C++ is too complex or I did accordingly but it’s behaving differently or I followed the manual properly blah blah.” These are just excuses to hide his own fault. But who cares, it’s the fault of C++. So instead of suing the programmer you want to demolish C++. Go ahead, no one is stopping you :) Peace.

  26. C/AL would be Lutheranism – it’s a very clear but rather conservative language, it has only one Divine Authority which is the F5 button, no other holy things will be allowed except for the Holy Server which is in the same instance also One with the Divine Authority.
    Changing the language will cause a revolution inside the Faith which can lead into the establishment of a complete new religion which is more closely linked to Mormonism (C#, in this case).

    By Tom Van Mierlo

  27. Where is Delphi? I know, I know, Pascal and Object Pascal are source language, but Pascal is to Delphi what Basic is to Visual Basic. Delphi could be put on the list.

  28. Anonymous

     /  2015-08-01

    A correction to a wrong translation (found in comments): Islam really means “full subservience to God”, “subjection”, “submission”.

  29. The Chisa

     /  2015-10-29

    You forgot assembly! A deceptively simplistic series of cryptic platitudes that isn’t even a proper “language”, and depending on the processor isn’t even possible to run. It flippantly gives dual middle fingers to every programming method, technique, and convention, often doing things entirely backwards and inside out to achieve the same ends — and the kicker is, it’s WAY more efficient than any of them and so fast as to be suspect…

    …holy shit. It’s the Church of the SubGenius.

  30. alk

     /  2015-11-26

    apart from the strangeness of “modern” hinduism, great article :p

  31. Soley

     /  2016-04-27

    You will be killed by c++!

  32. Soley

     /  2016-04-27

    …If you don’t like it, don’t use it and just don’t blame it…

    Unfortunately if you even leave C++, you will be killed!

    I wonder why people don’t learn HTML “PROGRAMMING” language instead (lol)!

  33. Very useful info, thanks

  34. Truly an amazing post.I really like it.Thanks for sharing with us.

  1. An interesting post I came across. « Anbu's Blog
  2. Hugo Ferreira
  3. Python:Python “protected” attributes – IT Sprite

Leave a Reply

*