title: Pros & Cons of Google App Engine
body: <p>[An Updated List 21st Aug 09]</p>
  
  <p>Help me Compile a  List of all the Advantages &amp; Disadvantages of Building an Application on the Google App Engine</p>
  
  <p><strong>Pros:</strong></p>
  
  <ol>
  <li>No need to buy servers or server space (no maintenance).</li>
  <li>Makes solving the problem of scaling easier.</li>
  <li>Free up to a certain level of consumed resources.</li>
  </ol>
  
  <p><strong>Cons:</strong></p>
  
  <ol>
  <li>Locked into Google App Engine ?</li>
  <li>Developers have read-only access to the filesystem on App Engine.</li>
  <li>App Engine can only execute code called from an HTTP request (except for scheduled background tasks).</li>
  <li>Users may upload arbitrary Python modules, but only if they are pure-Python; C and Pyrex modules are not supported.</li>
  <li>App Engine limits the maximum rows returned from an entity get to 1000 rows per Datastore call.  (<strong>Update</strong> - App Engine now supports cursors for accessing larger queries)</li>
  <li>Java applications may only use a subset (The JRE Class White List) of the classes from the JRE standard edition.</li>
  <li>Java applications cannot create new threads.</li>
  </ol>
  
  <p><strong>Known Issues!!</strong> : <a href="http://code.google.com/p/googleappengine/issues/list" rel="noreferrer">http://code.google.com/p/googleappengine/issues/list</a></p>
  
  <p><strong>Hard limits</strong></p>
  
  <p>Apps per developer -    10<br>
  Time per request -  30 sec<br>
  Files per app - 3,000<br>
  HTTP response size -    10 MB<br>
  Datastore item size -   1 MB<br>
  Application code size - 150 MB<br>
  <b>Update</b> Blob store now allows storage of files up to 50MB</p>
  
  <p><strong>Pro or Con?</strong><br>
  App Engine's infrastructure removes many of the system administration and development challenges of building applications to scale to millions of hits. Google handles deploying code to a cluster, monitoring, failover, and launching application instances as necessary.</p>
  
  <p>While other services let users install and configure nearly any *NIX compatible software, App Engine requires developers to use Python or Java as the programming language and a limited set of APIs. Current APIs allow storing and retrieving data from a BigTable non-relational database; making HTTP requests; sending e-mail; manipulating images; and caching. Most existing Web applications can't run on App Engine without modification, because they require a relational database.</p>