Monday, October 4, 2010

Eclipse Modeling: A Smith for the Cloud

Google Web Toolkit is cool. In combination with App Engine and Google Plugin for Eclipse, it facilitates the rapid development of applications that run in the cloud. It exploits a familiar language, i.e., Java, as well as familiar tools, i.e., Eclipse's Java Development Tools. As such, you can reuse a great deal of existing expertise. There's even a project wizard to get you up and running quickly.

Unfortunately, Google Plugin’s project wizard produces merely a "hello world" type application, so there remains a great deal to learn before you can do anything truly interesting following best practices. Now, where Google Plugin’s tools trail off, EMF's tools kick in. Starting with a simple description of your data structures, you can generate a fully functional application focused specifically on your domain of interest. My demo at Google’s Eclipse Day last month showed this in action. Now, with the help of my colleagues at Cloudsmith, we have everything nicely packaged up so you can easily try it at home. It’s all documented in the EMF for GWT wiki. Prepare to soar into the clouds.

Of course those of you familiar with Eclipse modeling know that EMF produces simple natural APIs of hand written quality in which complex relationships are simply expressed. But those of you more familiar with GWT and App Engine, and with technologies like Roo, will likely expect to be dealing with Data Transfer Objects that describe denormalized models which are mapped via JPA onto App Engine Datastore’s entity-based back-end. It’s tedious, painful and stilted, not to mention totally unnecessary. Just say no to DTO. With EMF, you can focus on the creative task of describing your domain, rather than on the tedious task of mapping high level concepts onto low-level persistence technologies, and you can exploit REST to its fullest. EMF is truly a smith for the cloud.