views:

149

answers:

2

Lately I've been reading a lot of information about App Engine; the Google service that looks very promising to me. However, it all seems too good to be true. Call me a negative person, but I would like to know any reasons NOT to use App Engine.

This is programmers related, since I'm asking as in the programmer point of view.

I just want the general "downsides" of App Engine, if any.

+4  A: 

No relational database. (No normal ORM ...)

Limits on the number of files. (Can't just upload the 6,000 files in some standard packages...)

Specific VM required. (Depending on your language you may be a non-starter.)

Runtime limits. (Don't get bogged down.)

My point isn't to criticize GAE, I'm just listing limitations as the OP asked...

DigitalRoss
Also no SSL to your.domain.com. No naked domain names, only cname - but that's a minor point. As far as I know it also won't be PCI compliant so you would need to use google checkout, paypal or some other payment api, but that would also be a minor point depending on your perspective.
dar
What about migrating from App Engine to your own server, is it possible?
kuroir
It depends on how much of the GAE API you used. If very little, then you just have to migrate from BigTable to, say, MySQL, and adapt to the different container.
DigitalRoss
Regarding not being able to import some standard packages because of the limits on the number of files, you can always use zip imports to avoid this issue.
jbochi
+2  A: 

You are designing your app to a Google-specified framework. Presently you can ONLY run an app-engine application on Google's infrastructure. That means you are completely dependent on Google (at least for the moment). Whether that's a problem or not is dependent on the project in question, but it's something you had best be aware of. Google has been known to cancel things in the past (though that seems unlikely with App Engine).

Michael Kohne
Actually, you can use Django if you want but not its ORM. Which is still pretty sucky.
Karim
On the java side, you can develop against mostly standard APIs - JDO/JPA, servlets, etc. You might not be able to drop the app into another environment seamlessly, but you wouldn't be rewriting the entire thing either.
Peter Recore