11

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.

qnoid
  • 221

4 Answers4

15

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

dirk
  • 858
11

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".

7

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).

6

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.

Adam Lear
  • 32,069