PHP is another scripting language gaining acceptance in the enterprise. Generally embedded in Web pages to display dynamic content, PHP enables very extensive applications to run on a Web server. Many of today’s Web apps are in fact written in PHP because it is lightweight (compared to Java) and can be learned and deployed easily. Its comparatively intuitive syntax, however, has led to the view that PHP programs are of the quick-and-dirty variety, with equal emphasis on both traits. However, PHP is moving up the enterprise fast. Zend, the principal vendor of PHP technologies, recently announced large deals with various government entities in the United States and abroad.
Python and Ruby
Of all the tools fueling the dynamic-language trend in the enterprise, general-purpose dynamic languages such as Python and Ruby present the greatest upside for enhancing developer productivity. Not tied to a specific domain, these open source languages provide coding mechanisms that remove the slowness or drudgery of standard application coding. They are easy to learn and use, and they give developers the ability to create large applications without having to produce reams of excess code.
Ruby and Python have been around for a while, both having been designed in the early 1990s. Whereas Python enjoyed nearly immediate success, Ruby has only recently attained top-10 language status, according to Tiobe.com, which tracks language usage. Ruby’s recent rise in popularity is due in large part to RoR (Ruby on Rails), a Web framework that enables developers to quickly bolt together data-driven Web sites.
Ruby remains the new kid on the enterprise development block. And whereas Python has a solid history of IT deployment, it’s not clear how widespread enterprise adoption of Ruby will be, especially outside its flagship RoR framework. What’s worth noting is that both Python and Ruby have large, active, partisan communities that are constantly writing new library modules, while supporting — and sometimes driving — the original language designers to add functionality. The productivity gains made possible by these languages will certainly grow as the languages themselves evolve.
Dynamic languages in the enterprise
When it comes to finding a fit for dynamic languages in the enterprise, scalability provides a valid litmus test, as scripting languages are less suited to projects that require high levels of scalability. Instead, they are excellent for standard business data processing (such as batch processing and report generation), small to midsize projects, and Web applications with low to medium traffic loads. Aficionados will surely point to dynamic languages in use in projects of larger scope, but such endeavors tend to be the exception rather than the rule.
Of all the development tasks IT departments face, Web apps are where the use of dynamic languages particularly pays off. And Ruby, Python, and Groovy are leading the way.
RoR, Ruby’s killer app, is “opinionated” in that it takes a specific view of how Web apps are designed. David Heinemeier Hansson, RoR’s principal designer, calls this approach “convention over configuration,” and it can get you up and running very quickly, as long as your design fits the chosen model. Note that little in the RoR design is language-specific. Grails — based on Groovy — offers a similar design for the JVM.