Thursday, December 18, 2008

If Programming languages were Religions

I red this at the Portuguese Java User Groups (PTJUG), and could not help to share it here.
I must say that i'm a Java and Python programmer, and a convict atheist :)


*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...

4 comments:

  1. VB is Satanism? Are you talking about VB6? You must be talking about VB6, 'cause VB 2008 is a absolutely delicious language, extremely easy to work on and one of the ultimate RAD tools. OK, has the problem of beeing tied down to a specific OS (mono doesn't really cut it...), but the language itself can't be blamed for that!

    ReplyDelete
  2. I'm not really on the position to talk about VB 'cause I only coded in VB.NET a long time ago. But I remember not be very comfortable with it, but I had a C and Java background...
    I guess that the guy that wrote the article was referring to a programmer being tied to the platform, which in my personal opinion sucks!
    I rather learn a language that can be used in all sort of contexts, VB doesn't really gives you that flexibility like languages like Java, Python and others do.

    ReplyDelete
  3. Again, that's not a LANGUAGE problem... that's more a sort of Compiler/Platform problem. I think that if one is comparing languages, one should only compare things like syntax, ease of use, functionalities etc.. Of course, IMO JVM kicks .NETs ass because it is a TRUE cross-platform environement (as so is python), but again, that's not a language problem...

    ReplyDelete