I spent some part of the weekend working on an app which was hosted on Google App Engine (GAE) and hooks into the Google App Marketplace – I learnt a bit about how these systems work together and thought I’d share.
There are some issues with the choice of development languages for an App Marketplace app hosted on GAE – GAE supports Python and Java and App Marketplace currently offers supports for Ruby, Java, C# and PHP. In principle, it is possible for App Marketplace to work with other languages, as it is really just a set of web APIs; however, it could be a bit of work to assemble the right set of libraries to make this work properly.
I did spend a bit of time before looking at using the Python variant of GAE (GAE/P) to develop an app which runs on the Marketplace. However, I found that there are some known problems with Single Sign On for App Marketplace using the Python in AppEngine. For this reason, we chose to use Java in GAE (GAE/J) for the solution.
In my naivety, I had assumed that the GAE/J would be very similar to GAE/P and hence my experience with the latter would make it relatively easy to get a GAE/J app up and running quickly. To my horror, I found that GAE/J is based on Java servlets and is a big world of pain when compared with the ease of GAE/P.
We did make some progress on the concept, but we found that there was a small outfit based in Mountain View doing essentially the same thing – didn’t do the homework properly. We shifted emphasis to produce what is really quite a nice concept – it’s no longer focused on the Marketplace, so we’re going to ditch the Java variant and start again with Python.
Key takeaways for me from this episode:
- GAE/J is very much more complex than GAE/P – you’d need good reasons to use the former;
- if you have designs on an App Marketplace hosted app and you haven’t rolled a line of code yet and time is not of the utmost urgency, I’d advise hanging on until there is proper GAE/P support for Marketplace – it shouldn’t be so long
If you’re interested in Marketplace, are hanging around Dublin and free on Nov 30th 2010, you could pop in to the local GTUG for more info on it.
Update: I’m told Google has fixed up this problem in AppEngine 1.4.0, so GAE/P now plays nice with Marketplace. Haven’t tested it as yet, but I’m assuming they know what they’re talking about.