views:

30

answers:

1

Hi, I am developing location based service. FYI, the database will expand vastly as time and location are the variables. I am considering GAE for initial deployment. I am open for any of python or java based development. While calculating the scalability, I am getting confused. I never thought of scalability before as I haven't worked on big projects. Also I am considering the fact that may be I will have to change hosting in near future for more flexibility.

Considering this situation, what should I start with? Struts2? or Django? Will there be a big difference in terms of development time?

A: 

Do you know already know Java or Python? If you are proficient in one and not the other, you might want to use what you know. If you are unfamiliar with both, and particularly programming in general, I think Python would be much easier to learn. But this is very subjective.

GAE is a good platform for some applications. If you are, for example, frequently reporting a location from a mobile device (like a phone), I think GAE would be a good fit. But I would not use django to handle such requests; Instead use the 'lightest' possible framework to record the data (probably webapp (Python) or the low-level datastore API (java)).

Keep in mind the limitations on queries in GAE. There are no JOINS, you'll need to denormalize. You can use inequality filters on one property at a time, so for proximity queries you'll need a technique like GeoBoxes. If you can work around those limitations, App Engine has a lot to offer.

Robert Kluin
Thanks a lot for your response. I already know both java and python. But I am new in using both Django and Struts. Also I am concern about possible future transfer of the application from GAE to cloud or dedicated server. So, don't want to start in the wrong direction from the beginning :)
Morison
If you are concerned about App Engine lock-in, there are options (http://stackoverflow.com/questions/4039685/compatibility-layer-above-aws-gae/4040115#4040115). If you are going to go the Python route, you might want to consider other lighter frameworks too. If you'll be running on App Engine,make sure you look at webapp (http://code.google.com/appengine/docs/python/tools/webapp/) and tipfy (tipfy.org), you'll probably get better performance.
Robert Kluin