I am programming Ruby since a friend of mine pointed me to this language and I think that this language is even better then Smalltalk which has been my all time favorite since I learned it back in the late 80’s. The concepts are sound, minimal and powerful and don’t take too long to learn. All else you need comes either with the standard library or nicely packaged as ruby-gems.
Especially JRuby, designed to run on the JVM, gives you portability together with access to the huge fund of java libraries. An enormous powerful concept! I love it!
Last night I have been searching in Google a little bit about the usage of the different programming languages to see if the usage of Ruby is increasing. The good news is that Ruby seems to be constantly in the top 10 of the most used languages. But to be frank, I would have expected it before Python and fighting with PHP about its rank but that doesn’t seem to be the case.
There are plenty of sites which analyse the language popularity and the results differ depending of where they gather their information. Some of the major sites are: SourceForge, Tiobe and Langpop. Unfortunately I could not find any comparison about the usage of the different ruby implementations.
I asked myself: what does it need for a programming language to become successful?
- an elegant, minimal, easy to learn and complete set of language elements.
- the ability to add missing language features as natural extension of the language or in additional libraries.
- a powerful infrastructure including IDE, build system, deployment, …
- good frameworks for maximum momentum when starting a new project
- killer applications
When I think about Smalltalk-80 and ask myself why did this language never get one of the top places in ranking even though it had undeniable a huge impact on all subsequent languages? I think it is because there are simply several factors missing which denied this language its broader success. Even though the language was elegant, powerful and extendable it had to fight with it’s, for that time, heavy weight virtual machine and the need to deploy the whole image. And I have never seen a so called killer application developed in Smalltalk.
When I come back to PHP, Python and Ruby I was wondering why PHP was clearly in front of Python and Ruby even though I think that the language concepts of Python and Ruby are sounder then the one of PHP.
They all have IDE support, good frameworks and powerful supporting infrastructure but PHP still has one big advantage. It nearly dominates the market of opensource CMS and Blogging products.
If we want to push Ruby into the first places I think there are only two ways to do this:
- development of killer applications
- bringing Ruby into the browser
For the first way we have the ideal starting point with JRuby. True Multi-threading and access to a vast fund of professional Java libraries together with the expressiveness of Ruby! I think that would qualify for a pole position.
The second way … OK, I don’t know how much would be needed to integrate ruby into a browser. But I think that Javascript is used everywhere on the client side in web applications in a lack of a better alternative.
While I was still writing I got some good news. It seems that there will be enough supporters to reconsider the Netbeans decision to discontinue the JRuby support. A good possibility to do something for the visibility of JRuby!
Let’s go for it!