Managers considering Rails should note that Hansson makes no bones about RoR not being designed for enterprise apps. Such projects stray far outside the RoR model and are not easily twisted to fit RoR. But if you don’t push RoR outside its niche and instead use it for what it’s good at, it will pay worthwhile dividends by cutting to-do lists quickly.
Use of Python will also prove advantageous on Web projects similar in scope to those suited to Ruby. Python taps an app server called Zope, the design of which is closer to that of a traditional Web framework than Hansson’s creation. At one time, Zope had the same buzz RoR enjoys now, in part because it was doing exciting things previously accomplished only by lower-level languages.
The major benefit of Python is that it runs on more runtime environments than Ruby does. There are now versions that run on the JVM (Jython) and on the Microsoft .Net platform (IronPython), the latter underwritten by Microsoft. Another draw of Python is that it has a larger installed base and far more developers with long-term experience in the language.
Groovy has the smallest installed base of the three, due to its shorter history. It does, however, hold one distinct advantage over both Ruby and Python: Its syntax will be familiar to Java developers. The language is designed to present a higher-level syntax for Java and to introduce dynamic elements so that Java developers can enjoy productivity without Java’s wordiness. An additional advantage to Groovy is that it is deployed as a single JAR (Java Archive) file, allowing it to integrate easily into larger Java apps. In this way, developers can leverage existing Jave code while gaining the benefits of a dynamic language.
Cutting the queue
The uptake of dynamic languages, as shown by Tiobe.com, displays a recognizable pattern: New languages experience a sudden surge of popularity (such as Ruby is currently enjoying), followed by a pull back, and then a prolonged steady state in which usage and adoption stabilizes. What’s important to note, however, is the heightened role dynamic languages such as PHP, Perl, Python, and Ruby are playing in the enterprise, as IT managers are fast realizing that worthwhile, easy-to-maintain code can be written more quickly with dynamic languages than with low-level enterprise mainstays.
Keep in mind, however, that dynamic languages are by no means a cure-all for the glut of projects today’s IT departments face. Judicious project allocation of dynamic languages will, however, help cut down the queue of IT assignments quickly — enabling your enterprise to achieve the agility necessary to capitalize on evolving opportunities fast.