Linux Shines as a Rich Internet Application Development Platform
If you look under the hood of the majority of today’s Web 2.0 applications you shouldn’t be surprised to find Linux all over the place. Since a Web app runs in the browser, by definition it doesn’t matter what your host operating system happens to be. What does matter to the user is the responsiveness of the interface and how well it does the job.
AJAX, Asynchronous JavaScript And XML, is the technology behind much of the innovation happening in the Web app space. At its core AJAX marries back end server technologies providing the data with front end JavaScript running in the browser. The asynchronous part makes it possible for the Web app to mimic some of the same user interface features you’d expect in a desktop application and more.
It’s no secret that many Web 2.0 applications build out their server-side on top of open source software components. MySQL has been a favorite choice for many of these applications for handling database chores. Sun’s acquisition of MySQL generated some community buzz mainly around using something now owned by a big hardware vendor. What it has meant for the MySQL team is an infusion of cash and support to help further develop MySQL into an enterprise ready product.
Server-side coding on Linux for Web 2.0 applications typically falls to the “P” in the LAMP (Linux AJAX MySQL Perl/PHP/Python) stack. PHP has garnered a substantial following while Python got a huge boost when Google hired Guido Van Rossum (Python creator and Benevolent Dictator for Life) and more recently with the introduction of the Google App Engine. Perl is one of those languages that you either love with a religious fervor or despise.
Ruby and Ruby on Rails (RoR or just Rails) provides one of the most efficient ways to get a Web 2.0 app that looks really great up and running. While the Ruby language has been around for over ten years it didn’t really take off until David Heinemeier Hansson released Rails to the open source community in 2004. Rails was originally developed as a part of the Basecamp product from 37 Signals. It received an even bigger endorsement from Apple with the release of the Mac OS X 10.5 Leopard including Rails.
Client Side Options
Creating a responsive user interface to run inside a Web browser depends a lot on the coding techniques and components you choose. One big challenge for developers stems from the wide range of Web browsers in use today. If you want your Web app to be compatible with the largest number of browsers, including older versions, you must settle for a subset of functionality available in the most up-to-date offerings. The flip side is requiring a minimal version level of the more popular browsers in order to run your app. Check out this blog for a good discussion of this topic.
JavaScript the language traces its history back to 1995 and Netscape Navigator. Conceptually it provided a great way to build Web applications that really would run anywhere you could run a browser. In reality it’s been a pretty long road to paradise filled with a multitude of compatibility and security potholes along the way. Many security wary corporate environments still disable their standard browsers from running any active content.
The state of JavaScript today is much different than it was even just a few years back. Google’s introduction of their Chrome browser and its highly optimized JVM (Java Virtual Machine) highlight where things are going – meaning even more applications previously relegated to a client installed version running in the browser. A proliferation of JavaScript libraries to make the programmer’s life easier have also aided in the resurgence.
JQuery has garnered lots of interest of late from a wide variety of places, not the least of which is Microsoft and Nokia. The beauty of JavaScript is demonstrated from the “How JQuery Works” tutorial. All you really need is a simple text editor and a Web browser to get started.
Developer Tools
Most “real” Web developers will tell you they got started with HTML using basic tools – meaning a text editor. In many ways it helps in the understanding process when you see the effects of the different tags and how different browsers handle things. At the same time you wouldn’t want to develop and maintain a high volume Web app with Vi. You definitely want to use a modern Integrated Development Environment (IDE) with debugging, source code control and testing tools for any sizable project.
Eclipse stands on top of the IDE heap as the developer tool of choice for lots of reasons. The JavaScript Development Toolkit provides a basic set of tools you would need to build a high-end Web 2.0 application. Aptana Studio is a development tool based on Eclipse with all the tools you’d expect in a professional IDE plus a development server. On Linux it comes in the form of an Eclipse plugin.
Adobe has recently released a beta version of Adobe AIR for Linux. This release makes it possible to build AIR applications on a variety of Linux distributions. Initial support was provided for Fedora Core 8, Ubuntu 7.10, and openSUSE 10.3. Check out the AIR for Linux FAQ for more detailed information.
Server Choices
Most developers doing serious work have a development server that they use for testing purposes. In some cases this could mean running a server in a virtual environment on the same machine. Other options include stand-alone Web servers that run on a client machine instead of a dedicated server.
The Eclipse Rich AJAX Platform (RAP) is a foundation targeted at servers for developing and deploying AJAX applications. It uses a number of different Eclipse-based technologies to make the development / deployment cycle easier. Modeled after the Rich Client Platform (RCP), it uses much of the Java-based Eclipse foundational pieces plus some additional glue to help Java developers move over to the AJAX paradigm.
There are a number of different Web application frameworks available as a starting point for building AJAX-enabled sites. Ruby-on-Rails qualifies as an application framework and, in fact, is one of the more popular choices. Other frameworks exist for various languages including Django, Pylons and Turbogears. For PHP there’s the Joomla Content Management System (CMS) that, while not technically a web application framework, does have a plug-in architecture supporting AJAX.
While MySQL is one of the more popular open source databases used in support of Web 2.0 applications, it isn’t the only game in town. NextDB.net is a hosted AJAX database with a JavaScript API that takes on the chore of maintaining the data storage and manipulation chores you’d normally handle on your own server. This makes it possible to build a full-featured Web application with little-to-no local storage required.
Bottom Line
As with any traditional application, the options abound for building Web 2.0 applications. The good news is that Linux represents a good platform to both develop on and target a final solution. Now all you have to do is choose one and get started.


