On Thursday June 21st I attended the PhoneGap meetup at Adobe’s office, which was the old site of Macromedia. In this PhoneGap meeting Marcos Lara presented his Audiovroom project. He introduced several technologies that would be useful for creating HTML 5 applications, at the visual layer, front-end logic, and back-end logic layers.
Visual Layer
Visual layer technologies include HTML 5 and CSS 3. HTML 5 is a presentation markup language that is becoming the de facto standard for web, mobile, offline, and online applications. HTML 5, though, should only be used to present content. CSS 3 is the presentation markup language for modifying the appearance of widgets. CSS has media queries, which allows developers to detect the screen resolution and orientation of a web page.
Front-End Logic Layer
The logic layer is separated into front-end (running on the device/web browser) and backend languages. The predominant front-end language for application logic is JavaScript, which is readable by anyone. Many JavaScript libraries such as backbone.js, underscore.js, and jQuery are available. Alternative front-end languages include Flash, Shockwave, and Silverlight, but these technologies are expected to be displaced by HTML 5.
Back-End Logic Layer
Many backend languages for HTML 5 applications exist. Provided that a REST+JSON API is provided to the front end logic layer (namely through jQuery on the client), the server can be written in any number of traditional programming languages such as Java and C#. Scripting languages can be used too such as JavaScript and Python. Node.js is popular for providing a JavaScript backend server. Modern functional programming languages such as Scala and Ruby are also candidates for backend logic.