Friday, May 08, 2009

App-Engine with Java: Great start buts needs a relational database

Over the last few days I built my first "real" Java App-Engine application. Overall I think App-Engine is great, but it is also relatively new and has some growing to do.

First the positives:
- Deploying is dead-simple. I used the Eclipse IDE along with the App-engine plugin and things couldn't be easier: one button press and a log-in later my app is running in the cloud.
- Versioning in the cloud, the ability to test different versions, and roll forward or back with a few button clicks is very nice.
- I'm a big Java fan so another thumbs up here. Perhaps I'm old school or corporate, but the lack of strong typing in the "cool" new languages seems like it should interfere with bigger deeper projects. Of course this has been debated endlessly, but needless to say cranking out an app in Java with strong typing and then being able to break point anywhere and step through is perfect for me.

And my one big negative:
- Lack of a relational database!!!! Yes, JDO/JPA support is convenient but it is really hobbled by the lack of relational features. I fully understand the trade-offs between a highly scalable object store and a relational database, and think that a future version of app-engine should allow the developer to select one. The reality is that for many of the smaller and even mid-size sites, only moderate scaling is necessary and a relational database would make development *much* faster.

Again, I'm really happy with App-Engine and look forward to using it a bunch more.

0 comments: