October 22nd, 2007

Tim Bray wrote on style progressions in programming languages. He hints that it would be nice that JavaScript and Erlang would get it together, and lists ASP, Cold Fusion, and PHP as the 'flawed' founders to that beautiful, polished successor, Rails, and Perl the flawed founder to Python and Ruby.

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. From a usability perspective, given degree of use today, we could switch his tables to:

Programming-language Waves
'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…) 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

I agree that C is a polished successor–once FORTRAN is no longer used for this nation's defense systems, and COBOL applications finally vanish after their many decades of use. Even Perl, which gets slammed much today has a legacy deserving of respect–not to mention a legacy of continued use. As for Erlang, eh. Wanna be. Toy. Doozer. (Remember Eiffel? Yeah, you get the picture.)

What Tim is missing is that it's not the language that's responsible for crappy code–it's the people who use the language. There is beautiful PHP and there's crappy Ruby. The only difference between the two is that, thankfully, there's a lot more beautiful PHP than there is crappy Ruby.

*I'm giving Python a slide because Python has fairly widespread use today.

**updated Yes, I'm aware of Java's strong corporate presence, as well as support for desktop applications. "Barely used" was poetic license on my part. Here, here's a thrown exception. Knock yourself out.