The Java environment runs applications built for the Java 6 Virtual Machine 0VM).An app can be developed using the Java programming language, or most other lan-guages that compile to or otherwise run in the JVM, such as PHP (using Quercus),Ruby (using JRuby), JavaScript (using the Rhino interpreter), Scala, and Groovy. Theapp accesses the environment and services using interfaces based on web industrystandards, including Java servlets and the Java Persistence API (JPA). Any Java tech-nology that functions within the sandbox restrictions can run on App Engine, makingit suitable for many existing frameworks and libraries. Notably, App Engine fully sup-ports Google Web Toolkit (GWT), a framework for rich web applications that lets youwrite all of the app's code——including the user interface——in the Java language, andhave your rich graphical app work with all major browsers without plug-ins.The Python environment runs apps written in the Python 2.5 programming language,using a custom version of CPython, the official Python interpreter. App Engine invokesa Python app using CGI, a widely supported application interface standard. An appli-cation can use most of Python's large and excellent standard library, as well as rich APIsand libraries for accessing services and modeling data. Many open source Python webapplication frameworks work with App Engine, such as Django, web2py, and Pylons,and App Engine even includes a simple framework of its own.The Java and Python environments use the same application server model: a request isrouted to an app server, the application is started on the app server (if necessary) andinvoked to handle the request to produce a response, and the response is returned tothe client. Each environment runs its interpreter (the JVM or the Python interpreter)with sandbox restrictions, such that any attempt to use a feature of the language or alibrary that would require access outside of the sandbox fails with an exception.
……