Considering the fact that you don't have to get involved in setting up/buying a server or even buying a domain, do you think that fact alone is enough to choose one over the other?

I don't necessarily want to work on Google App Engine, I just find it convenient when it comes to hosting/environment/etc. and wondering if that's a good enough reason to learn python.

In any case, I'm not looking for a debate between python and ruby but more on Google App Engine and whether its value is enough to dictate the language you should learn.

  • 4
    Google App Engine, for those of us that are TLA challenged. Note that you can also use Java. – Robert Harvey Sep 16 '10 at 20:13
  • :) I already have Java and Objective-C to cope with. Don't think learning ruby and python at the same time is the best time to value ratio :P – qnoid Sep 16 '10 at 20:45
  • I think you'll find that once you learn Python, you can learn Ruby fairly easily - they're in the same lineage. – Marcel Lamothe Sep 16 '10 at 20:49

No. Google App Engine does provide a free/cheap infrastructure for hosting Python applications, but Ruby has virtually the same thing with Heroku (and Heroku has a lot less restrictions that GAE). Before using GAE, make sure to read very closely about the restrictions that Google puts on the platform, many of which can be significant barriers to the goal you're trying to achieve. Carlos Ble's blog post goes into much more depth about the many restrictions he's run into, but I'll give you a quick overview:

  • Python 2.7 only with no compiled extensions (major performance hit)
  • 30 second request timeout (so much for easy large file uploads) and 10 second outside request timeout (so you can't query slow API's from your app)
  • BigTable is stone age; no "LIKE" operators in your query and no single query can return more than 1,000 records
  • Memcache has a 1 MB max value size
  • Both BigTable and Memcache tend to die at a significant enough rate that it's productive to put code in your application to work around their failures

For a very small project, GAE is just fine; but if you're build something at a medium or large size, just be aware of the restrictions that may hamper you progress.

For more information about what sort of quotas and limitations you may have to deal with, see the GAE docs:

Also see this response on Stack Overflow: https://stackoverflow.com/a/3068371/189079

  • 4
    How does that make BigTable stoneage, LIKE is an expensive opt, and returning a limit of 1000 is a good idea. Sounds like you abuse your SQL DB rotten, scaled before? – sa93 Aug 18 '11 at 11:59
  • Don't the limitations only affect the free quota? – user49491 Mar 16 '12 at 16:30
  • @sa93 I definitely don't use LIKE queries. However, one application I built does use a query that returns more than 1000 results (the query result is heavily cached, don't worry) and am happy that I don't have to deal with running multiple queries times and then concatenating the result data before sending it to the caching layer. – dirk Mar 21 '12 at 15:58
  • @BakerKawesa Not sure. Need to research that. Google might have switched their policies. – dirk Mar 21 '12 at 16:00

If you want to develop for Google App Engine, you'd definitely want to learn Python (Java is also an option, but the people behind GAE seem to be Pythonistas).

One thing to keep in mind is that writing something in Python doesn't mean you get Google App Engine for free. There are several people, including people at Google, who have had to "port" their projects to GAE (RSSmeme is another example) even though they're written in Python.

This is because GAE has its own restrictions and specialized environment: for example, you don't access to things like MySQL, threading, or local file storage. The General FAQ for GAE touches upon several of these "quirks".


Well. Ruby community has http://heroku.com/ Free quotas are not as big as Google's but one can use traditional persistence mechanisms. So it's much easier to migrate to your own infrastructure later on (or move a stand-alone app to Heroku).


Sure, why not? Both Ruby and Python are very capable languages, so it just comes down to what you specifically are looking to do.

If you want to work with GAE and have to learn a language, it might as well be Python.

  • And why not Java? – Joshua Partogi Apr 25 '11 at 15:24
  • @jpartogi The question asked about Python vs Ruby. Java could be a viable choice, too. – Adam Lear Apr 25 '11 at 15:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.