Language, Purity, Cult, and Deception
[this essay is roughly a 10 years personal retrospect of some languages, in particular Scheme and Haskell.]
I learned far more OCaml in the past 2 days than the faaking 2 months i tried to learn Haskell, with 10 years of “I WANT TO BELIEVE” in haskell.
Now, it's 2009. Ten years have passed. Guile disappeared into oblivion. Scheme is tail recursing in some unknown desert. PHP, one of the ugly kludge pidgin, practically and quietly surpassed the huckstered Perl in early 2000s to become the top 5 languages. (remember? snake-oil monger Larry Wall said P is for “Practical”. PHP's got two “P”s.) Python has surfaced to became a mainstream. Ruby is the new hipster on the block. Where is Scheme? O, you can still hear these idiots continuationing tail recursions among themselves in newsgroups. Tail recursion! Tail recursion! And their standard the R6RS in 2007, by their own consensus, is one faaked up shit.
In 2000, i was a fair expert of unix technologies. Sys admin to several data center's Solaris boxes each costing 40 grands. Master of Mathematica and Perl but don't know much about any other lang or langs in general. Today, i am a expert of about 5 languages and working experience with tens or so diverse ones. There is nothing in Scheme i'd consider elegant, not remotely, even if we only consider R4RS.
Scheme, like other langs with a cult, sold me a lie that lasted 10 years. Similarly, Haskell faaked me with a lure of “no assignment”. You can try to learn the lang for years and all you'll learn is that there's something called currying and monad.
In 2005, i spent a year to learn Python. Perl is known for its intentional egregious lies, lead by the demagogue Larry Wall. It fell apart unable to sustain its “post-modernistic” sophistry. To me, Python have always seemed a antidote to Perl, until you walked in. You learned that the community is also culty, and is into certain grand visions on beauty and elegance with its increasingly complex syntax soup with backward incompatible python 3.0. The python faakheads sport the air of “computer science R us”, but their intelligence is about the same level of Perl mongers. (Schemers and Haskell book authors at least know what they are talking about. They are just ignorant outside of academia.)
The above is not a terrible insight, but i suppose it should be useful for some application. Today, there's huge number of languages, each screaming ME! To name a few that are bubbled up by tech geekers: Arc, Clojure, Scalar, F#, Erlang, Ruby, Groovy, Python 3, Perl6. (for a big list, see: Proliferation of Programing Languages) So, if i want to learn another lang down the road, and wish it to be a joy to use, usable docs, large number of usable libraries, well supported, a community that is not looping eternally around estheticalities, then which one should you buy? I think Erlang, OCaml/F#, would be safe choices, while langs like Qi, Oz, Arc, Perl6, would be most questionable.
Legal Disclaimer: All mentions of real persons are opinion only.