Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question

closed as primarily opinion-based by MichaelT, GlenH7, gnat, Bart van Ingen Schenau, Simon Jan 3 at 17:03

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

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

5 Answers 5

up vote 15 down vote accepted

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: http://stackoverflow.com/a/3068371/189079

share|improve this answer
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? –  Baker Kawesa 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".

share|improve this answer

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

share|improve this answer

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.

share|improve this answer
    
And why not Java? –  jpartogi Apr 25 '11 at 15:24
    
@jpartogi The question asked about Python vs Ruby. Java could be a viable choice, too. –  Anna Lear Apr 25 '11 at 15:34

I'd say both, but if you have to pick just one, pick python since it has more commercial support, a bigger developer community, better tool support, and more application frameworks to choose from; to put it simply, with python you get more options.

share|improve this answer
1  
The original question was 2 year ago and a lot has happened with GAE, For Python, the new changes of policies turn Python in expensive, and in general GAE is pretty expensive for justify to switch over it. In my case, i finished dropping GAE and migrating to a VPS. –  magallanes Mar 16 '12 at 17:30

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