Are Ruby and JRuby groovy enough?
So now that Java seems officially dead (that is, after Sun buried this year at JavaOne), one should start looking at what language will take Java's crown as the CoolestUsefulLanguageOnEarth(tm), the one that will re-shape the Internet.
Granted being cool is not enough for a programming language to dominate the world. Lisp is very cool in my opinion. ML is the coolest thing since slice bread. Way cooler than, let's say, Ruby. We're talking about languages made in the 70's and the 80's here, and they are still cool. Smalltalk is cool too. None of them ended taking over the programming world.
Being cool and useful seems to give a language a chance to world domination. C was really cool at it's time and quite useful. So was C++, and of course, Java. Their usefulness was always evident by the fact that these languages are very pervasive, and that they let you develop a wide range of applications.
Being useful is not enough either, although it provides a language a longer life than just being cool. Cobol is very useful. Fortran is very useful. VB is very useful. But, no revolutions happened with those languages. They are very pervasive though, but you rarely see them anymore.
Well, so the story goes that cool and useful languages, at some point in their life, they stop being cool but keep being useful for very long time. Java is definitely not cool anymore, but very useful. People will continue to develop large business applications with Java for a couple decades, the same way people still use C++ today.
So what's next? Some say Ruby. Some say Python. I say Groovy.
Ruby is a very cool language. There is actually nothing new in Ruby, at least nothing that we haven't seen in other languages before (30 years ago?), but the language seems to have the right combination of features. Indeed, Ruby would not be cool today if it wasn't for the birth and posterior exponential growth of Rails. Rails is a very clever web development framework for Ruby that allows to build web applications in a very fast and agile manner. Rails is a RAD without an IDE. Both Ruby and Rails are very powerful tools in the right hands, and right now, Rails developers are very smart people that see eye to eye with the Ruby/Rails developers. I am not so sure Ruby/Rails is so useful. Here are some open questions about Ruby/Rails usefulness:
- How does 5 years of Ruby/Rails legacy look like?
- Once the excellent first crop (class A developers) of Ruby/Rails developers is exhausted, will the next batch of developers (class B this time) be able to properly deal with such amount of power in their hands? Mind you, class B developers amount to 95% of the developer population.
- Rails dictates a "shared nothing" architecture as means to achieve scalability. Can all types of web applications be built around this concept? Is this a hammer looking for nails? ;)
- If I want a Ruby based application to run faster, what can I do?