There are a number of Google products that sound like they share the same name and as such confusion may arise between what’s what. So here is a brief of explanation of the most commonly confused Google offerings.
Google Apps: This is a set of online office productivity tools like email, chat, word processing, spreadsheets and presentation software. It runs great in Google’s browser (called Google Chrome), but is not to be confused with Google’s App Engine.
Google App Engine (GAE): This is a sandboxed hosted environment to run computer programs written in Python and Java. The sandbox disallows applications from accessing the server hardware directly and enables Google to marshall and proxy certain resource calls so that it can charge for utlisation of the infrastructure on which the application is hosted (CPU, disk, network bandwidth).
Google Web Toolkit (GWT): This is a Java-based API which allows you to create client-side AJAX-based software linked to server-side Java servlets using pure Java code. The server-side can be hosted as a Google App Engine, but need not be – it can be hosted on any web server running the Java Servlet API.
Google has done a good job of simplifying the software development and deployment process and using one or more of the development environments they provide makes it easy to write software and deploy it for the world to use. We are likely to see more offerings from Google in this product space as it moves into the operating system market and “dukes it out” with Microsoft in the years to come.
Google Goggles: An Android-based application, i.e. available on mobile phones only (at this time), which augments what the phone’s camera sees with Google search results. Effectively, you can use the phone’s camera to lookup information on Google’s search engine. For example, point the Android-phone to the Golden Gate Bridge and press search and Google Goggles will recognise what it is seeing through the camera and use that information to conduct a Google search – the result is information about the Golden Gate Bridge retrieved from Google’s search engine. Goggles will, in time, also enable visual language translation. Simply point the Android-phone’s camera to text written in say German and the Google Goggles will lookup the text, translate it and feed it back to you audibly or visually in English.
Today I experimented with the creation of an application in Python to run on the new Google App Engine (GAE) infrastructure. Things couldn’t have been easier. I whipped up a .yaml file, created a couple of Python classes, a simple CSS stylesheet and HTML form (to give the application a face) then ran a single command line command (“appcfg.py update myapp”) and a few seconds later, there it was! An online, robust, scalable web application operating on the Google infrastructure. I use Eclipse IDE because of its extensibility and because there exists a plugin to develop GAE applications in either Java or Python. I am a fan of python because of its efficient data types like lists and dictionaries. I was however curious as to why I need to locate all resources in a sub-folder called “src” under the application – why couldn’t the source files be located in the root directory of my local file system folder for the application? Anyway, something to test out another time. I am going to dig a little deeper into the data structures available to a GAE application tomorrow – I’ll let you know how it goes