Beginning Groovy and Grails - Judd, Christopher M. (Apress, 2012)
We live in interesting times. We are witnessing an amazing revolution. Over the last decade or so, two dominant platforms have emerged: Java and .NET. During their rise to power, promises of productivity were made and realized. Yet even with all the advancements in development tools, compilers, and virtual machine performance, and the multitude of frameworks available, developers began seeking the next level of productivity that the agile movement had introduced. Java and .NET developers began noticing that their counterparts who were using dynamic languages like Ruby, Python, and PHP were becoming increasingly productive, and these developers became jealous. The evermoving technology pendulum began to swing back toward dynamic languages. And probably for the first time in history, the reigning platforms were ready to respond. Both Java and .NET have, for most of the decade, been able to run multiple languages, so they joined the race to see which platform would be able to add the right combination of dynamic languages and associated web frameworks. Meanwhile, a liberation of sorts took place as the mighty kingdoms embraced the open source community in order to gain more territory. On the .NET platform, Microsoft sought Ruby and Python and implemented its own versions of Ruby and Python with IronRuby and IronPython, respectively. The Java platform began by including in its distribution a scripting API and JavaScript using Mozilla’s Rhino implementation. Then Sun embraced the Ruby community by hiring the developers who created the open source JRuby implementation.