Reading this article, I was inspired to articulate my thoughts on the topic. The short of it is that Ruby, PHP. JavaScript, and like languages address the desire for the right level of abstraction. Java, with all its innovation and genius, is still a compile-bound 3GL. It represented another realisation of the next step from C/C++ (as were Smalltalk, ObjectiveC) together the addition of standardised libraries. As it is, Java needs to perform some neat tricks to enable greater levels of abstraction.
Although many development posts require knowledge of Java, this is more of an experience requirement than a practical matter. Should even the 'cool kids' be able to write a bubble sort or double-locking algorithm? Most definitely, they should. Will they be actually writing Java? More likely not, and why should they? If you can achieve far greater productivity with the next-gens, what is your motivation to use Java in development and production? (I challenge you to think hard about your assumptions w/r/t Java - the so-called stability 'gap' is not as far as you may have once thought, if it still exists)
I see the evolution and growth of the next-gens as a functio of their greater productivity, yet the prime factor is the community. Without the influence of the community, we would still be only talking about such next-gen languages, rather than writing web and cloud apps with them.






Most of the high level Flex work and jobs require you to know Java. I don't know about the "cool" aspect but the big firms and recruiters are seeking Java skills along with Flex. I don't see as many requests for Ruby or PHP. In addition Adobe BlazeDS and Livecycle both typically use Java on the backend. Interesting post though for sure. Thanks for sharing.
Posted by: Sean Moore | 28 June 2009 at 16:00
Agree to some extent. Fortunately, there is Java as a platform and thus a multitude of languages such as JRuby, Groovy, and so forth. As these grow in performance and power (in scripting ease) and the platform further accommodates them, the argument will be less applicable.
-- Java
Posted by: Josef | 29 June 2009 at 00:51