This post is from my old blog. The exact publishing date has been preserved for archival reasons.
For the price point, Google's App Engine is a great deal for web application developers. My only issue being how long it takes for indexes to be created after uploading your app. Overall, it is very powerful.
App Engine Pros:
- Works great with other Google products, for example use Sites for standard web sites and use App Engine to build web applications for these sites.
- Easy to learn and use API, if existing Python or Java knowledge exists.
- Very standard, uses WSGI Standard to serve up applications.
- Existing applications can be converted over to App Engine, only the Database calls need to be completely re-written. For modular programmers this should not be a problem. IMHO
- It's Google. :)
- Application's user management can be managed by Google accounts.
- Sub-domain provided free of charge: *.appspot.com
- Application community exists.
- Awesome development server provided.
App Engine Cons:
- Cannot use existing Database solutions like MySQL.
- Cannot connect to external resources via sockets, but can connect to other websites via a URL Fetch API.
- Indexes take way too long to be generated, which can cause considerable downtime.
- Not all Python modules will work under App Engine.
- Non-standard Database solution.
- HTTPS not available on private domains(yet).
- No fine grained permission system built in.
Overall, Google App Engine is very good at the moment and can definitely be used for small to large projects, as long as none of the "Cons" get into your way in development.
What I would love to see is an "App Builder" similar to how Google Sites is done, but simplifies App building. It would have a full WYSIWYG IDE, built in Python for example, or the GUI done using Glade. The developer can then "bind" actions to the widgets. The Developer can also code some backend code as well, which is not bound to a GUI. After the developer is done, s/he can compile the application from Glade to create the final Python application which can either be tested using the devserver or uploaded using appcfg. I know some toolkits like this exist, but they are far from what they could be. Google, being Google and all, knowing how to code and making it user-friendly at the same time, would excel at this type of thing.
Another idea, which Google can pursue is the ability to create websites much like how graphic designers draw in PhotoShop. A new tool could be used to select parts of the graphic to tag for an action, which the developer can "hook" into their code for final development. This type of thing may exist, but I am sure Google could make it better and more appealing to a wider audience.
From this point, I believe I will use App Engine for apps, and use Google Sites for the rest. This seems like the most cost effective way of creating websites and web applications.
I never ended up using Google App engine as I specified in the last paragraph there. My main concern was the database and the inability for relational queries.