The Knife Is Out For Ruby

Dynamic languages are coming to the end of their honeymoon period. This is bad for Python and maybe PHP, but it is nothing short of a disaster for Ruby.

First off, let's be clear about this, dynamic, non compiled languages are neither clever nor difficult to implement. Perl showed everyone how to do it back in the nineties. Perl, Python, PHP and Ruby all share the common DNA of being hacked into existence by a C programmer locking himself in a metaphorical room for too long and emerging with a much beloved personal pet language. In all cases, the result was then made open source so that hundreds of gnarly extensions got added which made it really powerful and useful whilst thoroughly confusing and inconsistent.

Begotten from all of this are easy to learn, do it all, grab bag languages which people fall in love with because (which every they pick) is easy to learn, permissive to write and gets simple things done quickly.

Type safe static languages like C#, Java and Managed COBOL are much more challenging to work with, or at least they were. However, the gap is closing or may have completely closed. Type inference, generics and much better IDEs have made static languages really easy to work with. The permissive nature of dynamic languages is only really treating the symptom that programmers do not want to have to remember and key-in everything's type. But, if the language and the IDE do that for you, the symptom goes away and the benefit of dynamic languages goes away with it.

I once asked a team leader, who had .net and PHP experience and was in the middle of a large Ruby On Rails project, what the benefits of Ruby and Ruby On Rails were.

She could not think of a single one.

Now that it is easy to work with type safe languages the slow, clunky bugfest of dynamic languages makes them a poor second best. Just look at Facebook writing a PHP to C++ translator (HipHop). Organisation after organisation is starting to realise that the benefits of dynamic languages are an illusion.

Of The Big Four, Ruby Is Doomed
There was a time when Perl was in ascendency. It competed head on with Java in several projects with which I was involved. The ICT world was actually interesting in the development of Perl 6 and its future seemed assured. Because TCL was fatally wounded by Sun Microsystems, Perl was alone as a fully capable, non compiled, generally available language. It got used to do a lot of stuff. So, when it fell out of fashion it did not go away, Perl scripts were so all pervasive that Perl 5 is still an expected tool on most *NIX platforms and has made its way up to verion 5.12.

Perl story shows that if a language passes a particular critical usage point, it will live on. TIOBE shows Ruby to have only half the acceptance of Python which has less than half the acceptance of PHP. With its strange syntax, lack of general acceptance and shrinking market share Ruby is past its peak and its peak was not above that critical point.