Mon

May 28
2007

Allison Randal

Allison Randal

Beyond the Browser

At OSBC last week I gave a Radar talk on current technology trends. The trend of moving traditional desktop applications to massively networked, Web 2.0 online applications like Google Docs is well-known. The problem is, a web browser is a terribly limited platform for application development, and JavaScript is a less-than-fully-featured language. There are inherent limitations to the kinds of applications you can develop and the kinds of user experiences you can offer in a web browser. Toolkits like Flash and Silverlight attempt to cram more functionality into a web browser, but they still can't offer the fully integrated desktop experience. Add in the fact that the nirvana of 100% connectivity at all times is far from a reality, even in the most technologically advanced parts of the world. This is a significant usability problem for the pure web browser applications, as anyone who has experienced the frequent forced coffee breaks by a Google Spreadsheet "waiting to connect" can confirm.

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 on Fluxblog

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.


tags: open source  | comments: 17   | Sphere It
submit:

 
Previous  |  Next

0 TrackBacks

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/5534

Comments: 17

  Moritz Petersen [05.28.07 01:28 PM]

Very interesting. I also believe in the advent of the new desktop applications, fully connected, only light-weight, but full-featured user interfaces... talk about Desktop 2.0? Do you think LINA will be the next Java?

  Search Engine WEB [05.28.07 02:14 PM]

It is extremely difficult to predict or even conceptualize the future of apps - only because our perceptions are limited by the barriers of today's technology and hi-tech.


Just try to imagine The Web or The Internet 30 years from now - and even more daunting, try to imagine it one century from now.


It would appear that our lifestyles and our communication technologies and our information retrieval outlets will be almost Neanderthal-like to future generations.


There will eventually be a marriage of the Web apps and Desktop apps, instant synchronization, instant retrieval at speed of light speeds, with virtually no noticeable footprint.


Synching will probably be the future. Extremely high bandwidth and processor speeds and memory that the next generation of computer users will be enjoying will make Web apps a breeze - but there will be a need to have those apps instantly synch with the homebase (perhaps a desktop) and collaborate in real-time.


Ultimately, this means that anytime and anywhere, someone can do virtually anything in a less intense fashion with a portable web based app - but have the work instantly transferred and integrated with their major computer devices and the devices of others if they chose.


Also, almost limitless, global collaboration will take away all boundaries in real-time sharing of information anytime and anyplace.


Windows and Linux will probably have evolved to something unrecognized by today's standards - and middleware could ultimately connect everything if any differences still exist.

  Burch Driver [05.28.07 02:15 PM]

Very interesting. Linux has the right idea here. Incompatibility as a strategy is so old.

  Allison Randal [05.28.07 02:34 PM]

Do you think LINA will be the next Java?

LINA isn't an application development framework, it's a compatibility layer, so it's tackling the problem of portability in a very different way than Java. There are other approaches as well. Mono is similar to Java and hopes to solve the problem in the opposite direction: allowing Windows applications developed in C#, etc. to run on Linux. I couldn't really say which of the many portability solutions will prove dominant in the long-run, but it's clearly a solvable problem with immediate practical applications.

  Dave [05.28.07 03:09 PM]

While I think the LINA announcement is interesting, I'm not really seeing how it affects me as a Windows user or software developer. I can't think of a single Linux Desktop application that I would want to see on Windows, that doesn't already exist in its own form. For that matter, all of the major servers that I could want exists on windows too. (CVS, SVN, Apache, MySQL. And I might just be skeptical, but I can't see any of these groups dumping their windows code base, with all of its O/S specific code, to run less efficiently in a VM so they can only manage one source tree.

You said "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." I think we're already there, no need to wait 5 years. In 5 years there will (hopefully) be some brand new paradigm that none of us can even imagine right now. Maybe I lacked foresight - but I never imagined Google Maps, Joost or YouTube as real, practical applications back in 2002. Javascript back then was the thing you stayed away from at ALL costs - not try to include it with every click or build a business plan around.

As a developer I've seem way too many of these promises of unified platform development that haven't panned out to get even remotely excited about Lina. Let's see some big apps come out first then we'll talk.

  Mitch [05.28.07 09:07 PM]

I'm surprised that your article doesn't mention Adobe's Apollo which provides exactly the type of rich internet desktop application framework you describe - allowing Flex/Flash/Javascript/HTML web apps to run in a desktop framework.

The current alpha isn't available for Linux yet, but I believe Adobe fully intends the framework to be fully cross-platform.

  Gordon Mohr [05.28.07 11:41 PM]

LINA sounds like reverse-WINE or super-CYGWIN.


Not sure many Windows users need Linux apps with a Windowsy look. And often, attempts to graft another platform's native look onto foreign applications fall just far enough short to annoy exactly that native-fidelity audience you were trying to make happy. (Is it an 'uncanny valley' of UI expectations?)


The explosion of virtualization options, free and commercial, most impresses me. An equivalent of Parallels Coherence -- where the virtualized desktop disappears, and the application windows freely mingle with the native desktop -- for Linux-in-Windows or Linux-in-Mac could be a winner... and might prove more maintainable/stable than the LINA 'mapping' approach.

  steve [05.29.07 02:06 AM]

The way the cycle is coming back to desktop applications was the point behind my vigorous attack on the term "Web 2.0". The term has an implication that these advances are going to come through the web browser, however that simply isn't the case.

Tim's prior history convinced me that he does fully understand that it's not about the web, and there is a richer overall growth in communication between applications that have nothing to do with HTML, AJAX or IE/Mozilla.

I agree that projects like LINA are where things will end up, as the operating system becomes a bundled layer for the application. Virtual machines can present multiple copies of the hardware, and programmers select what kind of abstraction they would like.

The operating system has previously handled communication between applications, however I believe that applications will now handle their own communication (for a wider network of collaboration). Hence the OS will retreat back to an almost DOS-like simplicity.

Charles Moore was right - hardware architecture will end up with thousands of small cores, likely running Forth or some other hardware friendly yet human understandable opcodes.

  Nicolas Toper [05.29.07 02:21 AM]

What you describe is very true.

This my solution for this problem:
http://www.deviant-abstraction.net/index.php/2007/05/24/from-web-applications-to-personal-virtual-machine/

So far it works fine :)

  Thomas [05.29.07 06:39 AM]

From my post on the Future Direction of Applications
There needs to be a merging of the following technologies.


  • Web-based behavior that allows easy collaboration.
  • Local application component that allows access to content while working offline.

This merging of technologies needs to be done in a way that is easy for users to adopt. Users shouldn’t need to know or understand difficult configurations to get this to work. The user should be unaware if they are getting content locally or from the web.

  Vijay [05.29.07 08:07 AM]

Allison,

To access resources on desktop it is not necessary for the application UI to be outside the browser (like ITunes or Songbird). Browser is a great universal client. Using browser based UI is easy and feels lighter than thick clients.

Thomas, both your point above are accurate.

Take a look at Dekoh, it is a open source platform that lets developers write desktop-web integrated applications. Runs on Windows, Mac and Linux.

Vijay
Dekoh

  Allison Randal [05.30.07 11:45 AM]

I'm surprised that your article doesn't mention Adobe's Apollo...

It's not open source, so didn't make it into my talk. But, it is a good example of the general technology trend.

  Allison Randal [05.30.07 12:02 PM]

To access resources on desktop it is not necessary for the application UI to be outside the browser...

Absolutely true. Zimbra is a good example. Their "local desktop client" is actually JavaScript that runs in the browser (it just runs in the browser from your hard drive, instead of remotely over the network).

But web browsers are very limited platforms for application development. They constrain the quality of the UI in strange ways. Have you used Google spreadsheets? Switching between that and OpenOffice.org, there's no question that the UI of OpenOffice.org is significantly better. It's a combination of odd little annoyances in the browser spreadsheet that kill it.

  Vijay [05.30.07 01:43 PM]

Allison,

I dont use Google Spreadsheet because I feel comfortable when I am editing and saving a document on my desktop. I agree some amount of richness of a desktop application cannot be achieved in HTML/AJAX.

Thinking a little more about my first statement, even if I were to try Google Spreadsheet, it is likely I may feel the same discomfort with UI the way you do. The real problem is about using the spreadsheet application on the web. Google spreadheet is not original it is mimicing an established desktop application.

This is the strong reason why we at Dekoh beleive that the desktop counter part for a web application should be accessed the same way, from a browser. Being consistent with the user expectation and experience.

Vijay
Dekoh

  Allison Randal [05.30.07 07:13 PM]

The way the cycle is coming back to desktop applications was the point behind my vigorous attack on the term "Web 2.0". The term has an implication that these advances are going to come through the web browser, however that simply isn't the case.

Tim's prior history convinced me that he does fully understand that it's not about the web, and there is a richer overall growth in communication between applications that have nothing to do with HTML, AJAX or IE/Mozilla.

I would argue instead that lightweight, networked desktop applications like Songbird are part of Web 2.0. Tim's defining characteristics of Web 2.0 are "The web as a platform", "harnessing collective intelligence", "data is the next intel inside", "end of the software release cycle", "lightweight programming models", "software above the level of a single device", "rich user experiences". Nothing in those principles says that they have to be delivered through a web browser.

  dd [05.31.07 12:25 AM]

from UI's point of view LINA user could avoid uncanny of valley of UI, as windows user could use linux app like windows app, macosx user could use linux app feel like macosx app.

http://billhiggins.us/weblog/2007/05/17/the-uncanny-valley-of-user-interface-design/

  Denis [06.28.07 02:32 PM]

Amusingly, this article is one of the most commented articles that appear on http://www.light-and-flash.com/ although this web site is dedicated to RIA technologies like Silverlight and Flex/Flash...

Post A Comment:

 (please be patient, comments may take awhile to post)






Type the characters you see in the picture above.

RECOMMENDED FOR YOU

RECENT COMMENTS