The wave of the future is not web browser applications. Instead we’re coming full circle back to desktop applications, but this time we’ve broken the old idea of single user silo applications with no connection to the outside world. The wave of the future is lightweight desktop applications with the same massively networked, Web 2.0 behavior we’ve come to expect from browser applications. iTunes is a classic example of this, with both an offline component available all the time, and a seamlessly integrated online component available when connected.
Songbird is an even better example. It’s an open source media player built on the Mozilla application framework but it doesn’t run in the browser, in fact it embeds a lightweight browser within the desktop application. Like iTunes, Songbird acts as a local desktop media player, media library organizer, and media device manager and also allows you to purchase music/movies online and add them to your library. But it also does more than iTunes. The embedded browser means that you can surf to any website, not just one company’s dedicated store pages. When you hit a site with links to media files, Songbird creates a dynamic playlist of all the media on that page. So you can surf to a music blog, and while you’re reading the blog listen to its virtual playlist. You can add songs to your library from the online playlist with a simple “Add to library” button, and Songbird maintains a “Web Library” of the music you’ve encountered while surfing so you can find it again.
Looking ahead to the next few years, one of the critical steps to making Linux a complete drop-in replacement for proprietary operating systems is filling in the last few missing desktop productivity applications: calendaring, contact management, project management tools, PDA/cell phone/laptop synchronization, etc. There are various projects working on various aspects of the remaining gaps, but none stands out as a clear lead, and none approach the problem in a fully integrated way. I would like to see the lightweight, networked desktop application approach brought to these remaining gaps. I don’t want Linux to just provide functional copies of existing proprietary desktop applications, I want it to shoot ahead to the next wave, driving innovation where the incumbents are afraid of change.
An important development in this space is LINA, due for first release in June, under a GPL license. I launched it in my OSBC talk last Wednesday, it hit Linux Devices on Friday, and Slashdot on Sunday. LINA is a lightweight virtual machine that allows desktop applications to be developed for Linux and run with a native look-and-feel on Windows, Mac OS X, and various flavors of *nix. I asked Nile Geisinger, CTO of LINA, for a quick summary of the technology involved:
There are already several ways to run an application written for one platform on a different platform. One is system call mapping: for instance mapping a Linux system call to a Windows system call as CYGWIN does. This allows a Linux application to run in CYGWIN on Windows without the Linux kernel. Unfortunately, syscalls cannot always be mapped exactly, which can prevent the application from compiling or from working as expected. Virtualization takes a different approach, actually implementing an entire operating system on top of another, but applications running in this guest end up being completely unintegrated with the host operating system.
LINA takes a new approach. In LINA, Linux applications run on a cross-platform Linux kernel on a virtual machine. LINA uses resource mapping instead of syscall mapping. So the Windows file system is mapped to a Linux file system, the Windows GUI APIs are mapped to Linux GUI APIs, etc. From the perspective of the LINA Linux application, it is running in a standard Linux operating system. From the perspective of the user, the LINA application is identical to a normal Windows or Mac OS X application.
LINA changes the game for Linux application development. Instead of a labor of love for a minority platform, developing for Linux becomes the easiest way to reach a broad audience on multiple platforms.
The next 5 years will be interesting.