Tim “Ongoing” Bray’s Take
Tim Bray posted a blog entry on what drives adoption of a language in which he included some tables such as the only below:
Flawed
FoundersPolished
SuccessorsProcedural FORTRAN, COBOL, PL/1 C Object-Oriented C++ Java Higher-Level Perl, TCL Python, Ruby
This table of his should inspire a monkey knife fight on a number of blogs:
Flawed
FoundersPolished
SuccessorsWeb-Centric WebObjects, ColdFusion, ASP.Net, Struts, etc.,
etc., etc., PHPRails
Here’s an interesting one. What will JavaScript’s successor be? My guess for the short-term (by that, I mean “the next half-dozen or so years”) is “the next version of JavaScript”.
Flawed
FoundersPolished
SuccessorsMobile-Code JavaScript ?
The one about concurrent programming is a little more up in the air. Although there are other languages designed with concurrent programming in mind (either from the ground up or with concurrency retrofitted onto an existing language) and there have been for a while (I used Concurrent C in a course back at Crazy Go Nuts University in the early ’90s), Erlang is getting a lot of the attention these days since it has both a success story at Ericsson under its belt as well the clout of a Pragmatic Programmers book behind it. There is a feeling among some programmers (Bray included) that it isn’t going to be the language to turn concurrent programming from arcane art into mainstream practice:
Flawed
FoundersPolished
SuccessorsConcurrent Erlang ?
Shelley “BurningBird” Powers’ Take
Shelley Powers disagreed with Tim’s assessments in her posts Flaws are in the Eye of the Beholder:
I find it fascinating when a person marks as ‘flawed’ the languages that have, literally, defined not only the web but application development of all forms. Perhaps the metric shouldn’t be on syntax, form, or function, but on usability.
Here’s her own table on languages:
'Perfect', but barely used 'Flawed', but simple, approachable, powerful, popular Higher-Level *Ruby (every time I see 'Ruby' I mentally add, Mama's precious little…) *I’m giving Python a slide because Python has fairly widespread use today.
Perl Client side code (The to-be-created scripting language that will take a nice, clean, easy to use language and morph it until it satisfies the purists, while breaking faith with the millions of users just trying to do a job) JavaScript Object Oriented Java (bloated beyond recognition with senseless additions and overly complex infrastructures) C++ (which can kick Java's ass performance and resource wise) Web-Centric Rails (you know that thing they used for the one application?) Cold Fusion, ASP and ASP.NET, PHP
Those of you who recall Bjarne “C++” Stroustrup’s line “There are just two kinds of languages: the ones everybody complains about and the ones nobody uses” or the essay Worse is Better (or the essay that led to it or Jamie Zawinski’s commentary on it) should be feeling deja vu now.
As for Shelley’s table, I’d probably have put “PHP” where “Perl” is right now.
My Own Take
I think that right now, the “scripting languages” are stuck in something akin to “Three Stooges Syndrome”. That’s the disease where Mr. Burns from The Simpsons, being so old and frail, has so many diseases trying to get at him at the same time that they’re all “stuck in the door”. The doctors illustrated the syndrome with a model, shown below:
And since Tim and Shelley have their tables, I thought I’d make one too:
Scripting Stooge | What’s Driving It |
---|---|
Perl | Legacy: it was the original “duct tape of the internet”. |
PHP | Widespread adoption, drives a lot of apps, easy to program, easy to deploy. |
Python | Very readable, one of the 4 languages approved for use at Google (the others being C++, Java and JavaScript, according to Steve Yegge). |
Ruby | Ruby on Rails, which is a very nice framework from the web app developer’s point of view. That and maybe the fact that DHH is rather photogenic (although PHPer-turned-Pythoner Leah Culver could give him some competition). |