Google’s AppEngine – Comparisons to Django

brandverity,Search,Startups by on April 7, 2008 at 7:59 pm

I’ve long been a fan of Amazon’s E2, S3, FPS, SimpleDB, etc. These services are changing the way that early-stage startups make their platform decisions.

News outlets are quickly picking up that tonight Google is launching a hosted platform for web developers: App Engine.

I’m extremely excited about this for several reasons:

  • Google is one of a handful of companies that have truly understand Internet scale. In addition, they have regularly dealt with the challenge of taking a small application and scaling it very quickly (nearly all of Google’s acquisitions go through this)
  • By offering application hosting, Google is stitching together many of the components that Amazon’s services provide, making app development even quicker.
  • While Amazon has been doing a great job pushing itself, the competition will be great and will raise the bar.
  • It started off with Python support and is modeled after Django (which BrandVerity is built on and I’ve been very impressed with)

I look forward to seeing AppEngine develop further. I’m especially curious what it will take to launch an existing Django application on AppEngine.

I also learned for the first time that Google uses Python internally for its scripting. I guess that could explain all of the Google Python developer ads that keep popping up in my gmail account.


Update:
I took a look through the documentation and now have a better handle on how AppEngine operates. It definitely borrows a number of aspects from Django:

  • Django Templating Engine: The SDK provides Django’s templating engine (although it allows others to be used). The engine has been criticized by purists for allowing too much logic in the presentation layer, however I’ve found that the templates allow sufficient logic (if statements, for loops) to actually build webpages, while preventing the more complex view logic from making it to the front-end (variable assignment, method calls, etc.)
  • Similar modeling system: In Django, you define your model classes and the framework provides common object methods that handle the sql underneath. The AppEngine models look very similar although it looks like the similarities are only conceptual (they definitely don’t share the same code and are interacted with in different ways). I can easily see how frameworks like Django (or Rails) could be modified to treat App Engine as another storage backend.
  • Similar request and user frameworks: Django provides a few frameworks that are commonly used request.user (via contrib.auth) and its session middleware. These handle things like authentication, permissions, cookies, etc. Google’s APIs seem to function pretty similarly, although this isn’t exactly groundbreaking as these frameworks are fairly standard.
I don’t see a way to run python scripts that are independent of web requests. The O’Reilly article suggests that developers may utilize EC2 for batch operations. However, I have to believe that Google will support batch processing in some form as this forms a critical component of just about any web application (and I’m sure they don’t want to encourage people to write batch applications that are initiated by get statements)

6 Comments

  1. Ben Chun — April 7, 2008 @ 10:14 pm

    Weren’t you course 2? Great to see your overview of all this.

  2. jro — April 8, 2008 @ 7:58 am

    Dave – I like this, too. One point I’m noticing in the news coverage that seems to be getting lost is that Google’s offering (when compared to Amazon’s) is much more application supportive, whereas Amazon is more about data and/or artifacts. It’s a subtle difference, but is significant when you start using these services in any serious way.

    Kudos to using Django, too. Great framework. I wonder how many framework contributors in that space are busily trying to incorporate AppEngine support directly into Django?

  3. Dave Naffziger — April 8, 2008 @ 8:41 am

    jro,

    This is very true. AppEngine isn’t really a good option for existing projects – it really is a start-from-scratch solution (maybe a little less so for Django projects) whereas Amazon’s web services can be incorporated into existing, mature projects.

  4. Rahul Pathak — April 8, 2008 @ 8:45 am

    Dave,

    Awesome to get your point of view after your recent work with BrandVerity.

    Rahul

  5. Savan — April 9, 2008 @ 9:56 am

    Great comparison, Dave. I sense that more people will start writing in Python now that Google has released this.

  6. […] Naffziger, former VP of Engineering at Judy’s Book, weighs in on the Google AppEngine and Django (which he’s building his new startup, Brand Verity, […]

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. | Dave Naffziger's BlogDave & Iva Naffziger