Recently, I developed a peer review project on Google APP Engine for a course that I’m the Teacher Assistant for at University of Pittsburgh. And don’t get me wrong this was a significant and nice experience. Google App Engine is really a nice tool and great. It provides many useful features and it provides them in a really simple way reducing the learning over head. As a matter of fact you can learn everything about Google App Engine in one day at most of you are already familiar with Python and Web Programming in at least other languages. To be fare I will list the advantages and Cons of the App Engine too.
There are many nice things about App Engine but not all
- App engine is really easy to learn. It doesn’t have a huge community but there are still al lot of interesting documentations available. Also, there quite enough forum QA, posts and blog posts that you can learn from. SO you will get the hang of the webapp2 framework pretty fast.
- It also supports some other strong platforms such as Django in python.
- Everything in Google is well designed and connected and since your app is using services provided by Google Platform as a Service you get to have the experience such coherent distributed large scale system.
- Some argue that is slow, but, I found it pretty fast. However, my application did not have a huge number of users. Maybe 10 or 20 at the same time and only on pick times.
- Datastore (The key-value database based on Google Bigtable) is well designed and easy to learn and use.
- There are many features provided that developers can use such as cron jobs to rung background processes, Memcache, User authentication by google and etc.
- All components of the system are smoothly interacting and you have the chance to use Google’s reliable services
- And etc.
But, there are really simple things that are left behind in App Engine’s design that can sometime hurt.
1. Google App Engine limits developers’ options. If you are trying to implement a simple webapp or you are sure of all packages that you need. You can still use it you. However, for me I was planning to use Machine Learning packages which I didn’t know are partially implemented in C. App Engine doesn’t not support such packages because they don’t really provide you with a Virtual Machine or even a Virtual Environment as Heroku does.
2. Sometimes the admin/development server service is not available. It happened to me once that I was trying to push a new update to the servers for students. But, App Engine was failing updating my code on App Engine. I googled it and apparently many had the same problem every now and then.
3. Although the tools provided are great but they are also limited. App Engine does not permit you to use other database systems such as graph based databases and etc. Or other services that are not available on App Engine.
Still many of these can be achieved using the RPC for you application. So, don’t rush into a decisions. But, wasn’t exactly a good option for my case.