Google Appengine: Java or Python
Possible duplicate:
Choosing Java vs Python on Google App Engine
We are going to use the Google Appengine platform for our next big web project. But we're not sure which flavor to use: Java or Python.
Could you suggest tips and pros for each approach? This is the best way to build a more scalable and efficient solution faster.
Thanks in advance
a source to share
I gave the accepted answer to the question that the comments are "very similar", but that was almost a year ago. I'm still biased the same way (still a Python expert, rusty in Java), but in an interim year, I'd say the Java runtime just got to Python - or, if not quite that, made some serious progress (as did both running time in parallel), of course ;-). Most of my general considerations in this answer remain roughly valid.
So, the main consideration today, I think, is how familiar the teams are with Python and how familiar with Java is - if they are very familiar with one and not the other, go with what you already know, since the time it takes to "catch up" on the other hand, it is a cost that is probably more than the benefits you could get one way or another (for a hobbyist who wants "reason", I would recommend the opposite: take the opportunity to find out what you don't already know - but in terms of immediate productivity, staying with what you know increases it ;-).
If some "killer library" that you have installed works well with one of the versions, and that you really want to use in your applications, this can be a deciding factor if the differences in knowledge of the two languages are not critical in your case.
a source to share
Would be helpful to know what kind of things this project should do, do you need to integrate with a lot of other libraries, applications, etc.?
This is just one anecdote, but I recently tried GAE on both platforms and found a way Python options are easier to work with than Java with JDO. This was partly about the JDO solution at the same time as well, but I found that I was able to implement the same exact functionality in Python in just a few days since I was weeks away on the Java side.
As someone relatively new to Python, there are still many things I still need to solve in order to feel more comfortable with it, for example:
- best way to unit test my controllers and model classes
- the best way to structure my controllers
- determine if Django templates are satisfactory or if I should try a different templating system.
When I tried the best way to write Java unit tests for my GAE classes, I jumped between half a dozen different blog articles and suggestions on how best to mock App Engine services. Some seemed to work, some seemed hacks, but the lack of a good and maintainable solution left me uncomfortable.
All things being equal, I would recommend the Python flavor for a new project. Easier to get started, fewer moving parts, no damage to JVM startup times in production, no need to improve bytecode after compilation, etc.
a source to share