Home >
There is no doubt that the way we are using computers is changing. I came across this interesting cross-ZDNet conversation about the "reinvigoration of the desktop" between Ryan Stewart, and Ed Burnette.
Ryan claims that developing for the desktop has returned in full force with technologies like Adobe AIR, WPF, Mozilla Prism, Google Gears, and others. Ed claims that all of this is silly because everything is moving to the web, and it is just a matter of time before the browser is the only thing anyone uses to do their everyday computing.
I have spoken on this topic many times before in the past. Gabor Vida and I wrote on the Teknision blog many times as AIR grew up in it's beta days, and I also presented at Flashforward 2007 and Max 2007 about this topic in an expanded form that we call: "The Circle of Engagement".
The funny thing is that both Ryan and Ed have valid points, but because of old cumbersome terminology, a disagreement is had. They seem to have the view that these two approaches to running software are somehow in competition with each other for supremacy as opposed to co-evolving together in synergy.
I am going to try to the best of my ability - and in my opinion-, to try and distill this into something that I hope will make the desktop vs. browser discussion a little clearer for everyone.
First off, I want to take a closer look at the term "desktop". I have abandoned this word, when referring to software that does not run in a browser, and I am recommending that others do as well.
The term desktop is a metaphor that draws comparison with an office worker's desk. It is an open area where a user's tools are located and files(data) are stored. While this has always seemed to be a great metaphor, it is locked into the image of a human sitting behind a desk in an office, doing work.
When I hear people use the word desktop in relation to software, I automatically think of an application running on a laptop or desktop computer operating system, designed to fit the form factor of keyboard,mouse, and a reasonably sized screen.
This is strangely the same criteria that most rich internet applications are designed to fit, except they have to deal with an extra layer that is the web browser. The browser is also an open area, that puts tools at your disposal, and gives you access to your (and other people's) data.
The real difference between the two types of apps is where they are located, and what type of permission they have to operate on data. Web apps are located out there on the web, as is the data in which they operate on. "Desktop" apps are located on the computer's hard drive and have access to data both on the drive and out there on the web.
So to distill this further, "Desktop" applications require a special trust relationship in order to be used. Because they run on the computer freely, and have access to all the personal data the user has stored on the computer, they can potentially be dangerous. If the trust relationship is there and the application is not malicious, the application may take advantage of that local data, experience enhanced interactivity with other trusted applications, and simply be able to be run without being fetched from the web first.
Because of the extreme psychological distinction created by the need for a trust relationship, I like to call the entity that exists underneath these applications a Sanctuary as opposed to a "Desktop". This sanctuary is my personal space, that I invite an application into, l hope that it plays by the rules I set out for it, and I expect it to treat my personal data with respect.
There is another reason I like to call this entity a Sanctuary. As I said before, "Desktop" implies a metaphor of an office workspace. This is not a metaphor that feels comfortable for mobile devices, embedded operating systems in kiosks, and even home theatre oriented platforms like Windows Media Centre. These platforms and form factors are very likely to be the most common way people interact with applications in the future, if not already.
Ryan Stewart made a post right after, his "Welcome back Desktop" post posing the question "Is the iPhone a Desktop?" This proves that the term desktop is awkward and out-dated, but also proves that the concept of sanctuary is in fact alive and well on not only regular computers, but especially on devices.
So, when I think about Adobe AIR, Mozilla Prism and Google Gears, I see the search for what I call the Abstract Sanctuary. This is the search for a model of a sanctuary that is above the level of any specific operating system implementation. This model ultimately facilitates total cross-platform and cross-device software development for applications running in sanctuary. It is important to note though, that the search for this model was kicked-off by the need for web applications to run outside of the constraints of the web browser and with the benefits of sanctuary access, not because the desktop needed to be reinvigorated. It is the expansion of the web, not the desktop.
The Google Gears model, allows web applications to run in the browser offline,this is simply an extension of the web browser. It is clear that web browsers are document viewers first, and that is not a great place to try and pigeonhole the next generation of computing into.
Prism and AIR go all the way by allowing applications to run like real standalone applications in sanctuary, albeit somewhat "sandboxed". This is a step that still protects the end user, like the web browser, but does allow significantly more freedom and integration with the introduction of a trust relationship.
If you look at these technologies in this way, it seems obvious that the iPhone and other mobile devices would be a prime candidate for this type of abstract sanctuary. Google Android is another platform designed to try and expose an abstract sanctuary for mobile devices specifically, but it could be likely that AIR enters into this arena in the future as well. This was stated as a possibility in the AIR beta FAQ, as they explained why certain supporting technologies such as Webkit and SQLLite were chosen for integration into AIR.
An abstract sanctuary that bridges the cross-device gap as well as the cross-platform gap would be impressive indeed, but there are big issues to overcome before that is realized. In a post called "To Conquer Form Factor", I discuss in detail how radically differing form factors are an even bigger challenge for developers than developing cross-platform apps.
Notice that I excluded WPF from my list of technologies exploring the Abstract Sanctuary. WPF explores the Windows Sanctuary, and Silverlight is just an attempt to take a subset of that into the web browser,a similar model to the Flash Player as a plug-in. WPF at this time though doesn't seem to be focused on being above the level of the operating system, it instead is a platform designed to promote Windows Vista only. John Dowdell from Adobe constantly tried to expose the misinformation and misunderstanding surrounding this on his blog.
So all of this comes down to thinking about what's going to happen in the future. I agree with Ed, and can testify to the fact that many people use the web browser for most things these days. I was just on vacation, my fiancee, and her parents do all their email online, recipes, research, ticket buying, etc, using the browser. I actually just bought my fiancee a MacBook AIR for her birthday, and it took her about a day to get used to MacOSX from Windows. I just had to show her how to launch the web browser.
On the flip-side, my internet connection has been down all night, and if it wasn't for TextEdit on this Mac, I wouldn't have been able to write this article. It is clear that there are a lot of times for the use of apps in sanctuary, because we still have not yet hit a state of constant-connectivity and we probably never will.
At work, almost all of my main tools are still traditional apps running outside the browser. That will change eventually, but right now, I feel much comfort in the fact that when I have critical deadlines, the loss of a net connection won't stop me from being productive.
If many brilliant apps are built on these platforms that expose the abstract sanctuary, it will be interesting to see how that will affect the popular sanctuary implementations like MacOSX,Windows, and Linux. If Adobe AIR for example features apps like Buzzword, SlideRocket, the Aviary suite, and eventually expands to even run apps like Photoshop, Illustrator, Flash and other professional applications, then it is very likely that free operating systems like Linux could see a lot of adoption. When you are not limited by your choice of applications to use, and the underlying choices include one choice that is free and open source, that becomes a hard deal to beat. The successful abstract sanctuary will end up actually promoting the commodification of sanctuary implementations at the end of the day.
So to sum it up, I don't think the "desktop is back", I don't even think it left in the first place. I also do not see a future of computing that takes place inside a document browser, because a document-oriented computing experience is a step backwards experientially.
Instead, I see a blur where the web evolves to encompass the concept of the sanctuary as a core element and operating systems on all devices do nothing more than implement the basics needed to realize it. This means that our sanctuaries could be loaded onto any device at anytime on demand. I surely see the majority of our data moving into the cloud, but that does not mean that we should eliminate local storage all together, there is still a definite need for it. I should be able to pull relevant data down and use it offline if I need to.
In essence, the sanctuary hopefully becomes an extension of the web experience, instead of the web being an extension of the sanctuary experience. In a hopeful world, they will co-evolve together as opposed to being in competition.




Facebook Application Development
Comments
Leave a comment