Thursday, August 03, 2006

Programming Language Trends

According to Oreilly Radar, a few notable trends are taking place in the programming language world. Java, Perl, VB and C/C++ are going down, C#, Javscript and Ruby are going up, and PHP and Python aren't changing much.

If you look at the list of languages more closely, you should notice that the strangest of trends is actually not depicted on the graph: functional languages don't exist. Apparently, between Lisp's invention in 1958 by John McCarthy and the present, a mass extinction has decimated every single functional language. Haskell, OCaml, Erlang and Lisp are mere memory fragments of lost civilizations that have been destroyed by big crashing objects shaped like the Flying Spaghetti Monster.

I like this theory, but I admit that there may be a couple of other possible explanations for this functional language anti-trend. The first is that functional languages are so advanced and cutting edge that their stealth technology helps them evade Oreilly's radar. As Paul Graham has said, Lisp can be used as a great secret weapon in a startup made of smart hackers. If Lisp were on Oreilly's graph, it wouldn't be such a secret weapon anymore. (I'm just using Lisp as an example. Any of the functional languages I mentioned would fit the bill.)

The second explanation is that the source of Oreilly's data is book sales, and since Oreilly doesn't publish books on functional languages, they're missing from the graph. This leads me to wonder, why doesn't Oreilly publish books about functional languages? As you have probably realized by now, the answer is obvious: hackers of functional languages can't read.

Paul Graham and co., please don't come hunt me down now -- I'm just kidding!

The real explanation is actually somewhere in between. Functional languages are very powerful, but their power scares away many people, especially those who have been inculcated into the Church of Java by Comp Sci 101 classes and an oppressive stack of Enterprise Java books. The Church of Java also controls the minds of the majority of programmers by evoking the coffee bean imagery to trigger feelings of dependency in their minds, which, conveniently for Sun, have a physical addiction to caffeine. However, Java mind-control isn't 100% effective, and some rebellious programmers have managed to break free from Java and join the heretical sects of Ruby or Python. Ruby and Python aren't as rigid as Java, which leads their freedom-seeking developers to believe that these newly-discovered gems are actually the holy grails of programming power. So, these developers keep buying similar books, but with different-sounding titles. Old habits are hard to break, after all.

I believe this is the real reason that, according to Oreilly, functional languages are trendless. However, don't write off the Flying Spaghetti Monster explanation just yet: if the FSM can challenge evolution, no school of rational thought is safe in its path!

1 comment:

Tjerk said...

Your right that functional languages are very expressive and powerfull, i have learnd functional programming on my university, and the teacher thinks the future of programming are in the functional languages. I believe him, he shows us how a specification of a program and the program itself are equal when using a functional language properly.

The thing i miss in your post is that functional languages have huge memory foot prints and are processor intensitive, this makes them less usefull in the enterprise. Imperative languages like java are much closer to the actual hardware of the system and are therefore faster. Thus functional language are ( not yet ) usefull in very large and robuust applications.