What I love about Play! Framework 1.X

I was one of those guys totally impressed by the amount of architectural work done in J2EE and when it was the time to start demystifying it a few years ago, I was totally overwhelmed by the complexity of how things are, well, over-engineered!

Over than 10 years ago I was coding php and by that time things were very primitive, no frameworks to do the plumbing were to be known of -- and real men used to write everything from scratch :) -- Also things were pretty straight forward, the web development stack was simple, requirements were simple, and expectations were low, not to mention that javascript was for input validation and that's it!.

Play! Framework

The web then evolved exponentially and the web turned into a platform with a massively increasing number of devices capable of accessing it, RIA applications took a huge share of desktop applications and more people are moving to web-based application every day. That being said,  expectations are increasing, developers are more stressed, timelines are tighter, rapid development became essential without sacrificing quality. J2EE will never survive such demand with its over engineered architecture and its slow development model. I suspect Java programming language can even made it to the future of the web if Play Framework didn't exist.

Yes, Play Framework 1.X is one the most successful trials of marrying Java and the rapid development of the web, a framework that might make you rethink of abandoning your favourite programming languaguge and its proven toolset for the sake of Php, Ruby, or even Python.

Play Framework is one of the most polished web development frameworks around with amazing feature set that will make you forget about the old J2EE ugliness and will make you happy considering the JVM as the platform for the web without sacrificing development time.

The most interesting features I love about Play are:

  • Press reload to reload: automatic rebuilds, no more waiting for eclipse to build, war, redeploy on application servers, just hack your code, template, or configuration and hit reload button in your browser and you will see your modifications immediately.
  • Brilliant Routing: routing configuration is intuitive and very flexible, it's also very easy to map urls to controllers and actions with great extensibility features for modules to extend your routes
  • *Stateless model: *the REST is the new web API standard (not so new though) and to build correct REST applications you need to be stateless which also helps you to scale your application easily for the massively increasing demand. Sessions are signed cookie-based. It has true share-nothing model.
  • Extensible Extensible: Everything about play framework is extensible, plugins/modules feature is a great way to extend the basic functionality with automatic dependency management system. You can even change the JVM language if you like, have you tried Scala with Play?
  • Nice Template engine: Fast, easy, extensible template engine that will help you create your views with less java hassle, the template language uses groovy for the dynamic parts which is easy to learn and intuitive in most cases.
  • Full Stack: Everything is just baked in, abstraction of JPA, memcached, OpenID integration, Facebook integration, etc. You don't even need to worry much about deploying your java app, you can use the cloud service PlayApps
  • *Really Fast, Reliable: *Surprisingly enough, Play applications aren't like traditional java frameworks, it's a snap to run and really fast in development and production modes, you won't believe it is java. Thanks to their python helpers and wrappers and their efficient compilation/pre-compilation and no-servlet strategy.

I've been using Play Framework 1.X for quite sometime now and in my opinion, it's the best JVM-based choice out there especially with the Scala support which I'm fond of. I believe Scala is the future and java will die! The good news is that Play supports Scala, although it's not really ready for production but promises that more efforts will go in that direction.

Conclusion

If you are searching for a web development framework for java that doesn't suck, Play! is the answer. You will get full use of the existing tool chain and the proven JVM in your applications without the pain you see in other frameworks or in the mysterious J2EE frameworks around.

If you are looking for Scala web development framework, Play! is a good choice but still not well document and not really ready for production at the moment of writing this. Development appears to be slow in this direction but still very promising.

comments powered by Disqus