Wednesday, February 03, 2010

Groovy.times{Magnolia}

Forbes has published an interesting article about CTO's favorite choices of programming languages. Its author Dan Woods argues that Groovy combines the best of Lisp, Ruby and Python, but in addition:
"From an operations perspective, Groovy is deployed like Java, so data center staff that can handle Java won't be surprised by Groovy."
Dan ends his article with the words
"… if you are starting from scratch on an advanced Web site, it will be hard to do better than Groovy"
Of course, we at Magnolia CMS could not agree more. Magnolia is written in Java and provides a fantastic framework to build web sites efficiently.

However, developing and deploying apps in an enterprise environment like the Java platform involves a certain effort. Typically, a developer uses an IDE (Integrated Development Environment) in which code is written, compiled, deployed to a test server and tested. This cycle is well defined and has massive benefits in the Enterprise world.

Now as Joe Walker rightly notes:
"There's a fairly obvious link between developer productivity and the edit/compile/test cycle. One of the big things wrong with Enterprise Java is that you swap the edit/compile/test cycle for an edit/compile/deploy/test cycle and one of the things right about PHP is that edit/compile/test is just edit/test."
When you quickly wish to try out something new, build a prototype or add a feature for a demo, a more agile framework would be considerably more fun for the developer, could save a lot of time and lead to a better result. More agile means that the edit-compile-deploy-test cycle needs to be simplified.

Enter full Groovy support in Magnolia. With the next release (4.3, out in March) we will introduce full-blown support for Groovy, which allows for a much more agile approach to implementing new functionality for your web site, while retaining the full power, scalability and security of the java-stack.

With Groovy you can add new functionality at runtime without a edit-compile-deploy-test cycle. The edit-compile-deploy-test cycle is reduced to edit-test like in PHP. This really cuts down on the time it needs to try out some stuff, build ad-hoc functionality or prototypes/demos. It will also be extremely helpful when building import scripts or run reports.

View Greg's video of what we have achieved with Groovy support in Magnolia so far.