kottke.org posts about WebOS

On Thursday, Google, the Internet search giant, will unveil a package of communications and productivity software aimed at businesses, which overwhelmingly rely on Microsoft products for those functions.

The package, called Google Apps, combines two sets of previously available software bundles. One included programs for e-mail, instant messaging, calendars and Web page creation; the other, called Docs and Spreadsheets, included programs to read and edit documents created with Microsoft Word and Excel, the mainstays of Microsoft Office, an $11 billion annual franchise.

Google isn’t worried about Yahoo! or Microsoft’s search efforts…although the media’s focus on that is probably to their advantage. Their real target is Windows. Who needs Windows when anyone can have free unlimited access to the world’s fastest computer running the smartest operating system? Mobile devices don’t need big, bloated OSes…they’ll be perfect platforms for accessing the GooOS. Using Gnome and Linux as a starting point, Google should design an OS for desktop computers that’s modified to use the GooOS and sell it right alongside Windows ($200) at CompUSA for $10/apiece (available free online of course). Google Office (Goffice?) will be built in, with all your data stored locally, backed up remotely, and available to whomever it needs to be (SubEthaEdit-style collaboration on Word/Excel/PowerPoint-esque documents is only the beginning). Email, shopping, games, music, news, personal publishing, etc.; all the stuff that people use their computers for, it’s all there.

When you swing a hammer in the vicinity of so many nails, you’re bound to hit one on the head every once in awhile. Well, I got it in the general area of the nail, anyway.

Back when I wrote about how a WebOS might work (basically XHTML/JS web apps that run on the desktop as well), I got a lot of responses along the lines of: with internet access becoming more ubiquitous (broadband, wifi, wireless broadband, WiMax, etc.), there will be less and less need for applications that don’t need a connection to the network to function. When you can literally get a fast, cheap internet connection anywhere, you don’t need a version of Gmail that works offline and so that’s not going to drive the development of this WebOS thing you’re talking about.

I’ve been thinking for several weeks about why I think that’s wrong and I’ve come up with a couple ideas.

2. For many people, the more you get used to having access to your applications/data/etc., the more important that access becomes. Let’s say 98% of the applications you use are entirely on the web (with no offline capabilities) and you’re online almost all the time wherever you go. Then the network winks out for 1/2 an hour. Or Salesforce.com is down for a couple hours. That last little inch is going to be painful. And no use telling me that sounds insane because I’ve seen the madness and fear in people’s eyes while they clutch their Crackberries, furiously reading email mere minutes away from the office and the full-speed, full-screen experience.

3. The offline thing is a good way for companies to bootstrap the WebOS. I think most people have a sense that the apps they use in their browser are more alive, more social, more connected, even if they can’t articulate that feeling. And whether it’s true or not (Gmail isn’t actually more “connected” than Outlook), companies can market the “aliveness” of their web apps (even when they run offline) versus the “deadness” of desktop apps.

Morfik seems to be working towards a WebOS like I wrote about in August…web apps that run on the desktop: “[Morfik’s] technology combined with its tight integration of the browser, a database and web server, uniquely offers developers the opportunity to create web applications that run on the desktop after being unplugged from the web.” They have a Gmail clone that works offline…keen to see how that works, exactly. (thx mike)

Before we get going, here are some alternate titles for this post, just to give you an idea of what I’m trying to get at before I actually, you know, get at it:

You’re probably wondering why Yahoo bought Konfabulator

An update on Google Browser, GooOS and Google Desktop

A platform that everyone can stand on and why Apple, Microsoft, and, yes, even Google will have to change their ways to be a part of it

The next killer app: desktop Web servers

Does the Mozilla Foundation have the vision to make Firefox the most important piece of software of this decade?

Web 3.0

Finally, the end of Microsoft’s operating system dominance

Now that your hyperbole meter has pegged a few times, hopefully the rest of this will seem tame in comparison. (And apologies for the length…I got rolling and, oops, 2500 words. But many of them are small so…)

I’ve had this post about Adam Bosworth, Alchemy and the Google browser sitting around for months now and it is driving me crazy, because I want all the credit for guessing this before it happens. So, for the record, if Google is making a browser, and if it is going to be successful, it will be because there is a sophisticated local caching framework included, and Google will provide the reference apps (replying to emails on Gmail or posting messages to Google groups while on the plane).

In this entry, I’m going to discuss how I imagine a mobilized or web services browser handles changes and service requests when it isn’t connected. This is really where the peddle hits the metal. If you just read data and never ever alter it or invoke related services (such as approving an expense report or booking a restaurant) then perhaps you might not need a new browser. Perhaps just caching pages offline would be sufficient if one added some metadata about what to cache. Jean Paoli has pointed out to me that this would be even more likely if rather than authoring your site using HTML, you authored it as XML “pages” laid out by the included XSLT stylesheets used to render it because then you could even use the browser to sort/filter the information offline. A very long time ago when I was still at Microsoft (1997) we built such a demo using XSLT and tricky use of Javascript to let the user do local client side sorting and filtering. But if you start actually trying to update trip reports, approve requests, reserve rooms, buy stocks, and so on, then you have Forms of some sort, running offline, at least some of the time, and code has to handle the inputs to the “Forms” and you have to think through how they are handled.

A couple weeks later, Google introduced the first iteration of their Desktop Search. To me, the least interesting thing about GDS was the search mechanism. Google finally had an application that installed on the desktop and, even better, it was a little Web server that could insert data from your local machine into pages you were browsing on google.com. That was a new experience: using a plain old Web browser to run applications locally and on the Web at the same time.

The Web browser (along with other browser-ish applications like Konfabulator) becomes the primary application interface through which the user views content, performs services, and manages data on their local machine and on the Web, often without even knowing the difference. Something like Firefox, Safari, or IE…ideally browser agnostic.

Web applications of the sort we’re all familiar with: Gmail, Flickr, and Bloglines, as well as other applications that are making the Web an ever richer environment for getting stuff done. (And ideally all Ajaxed up to provide an experience closer to that of traditional desktop apps.)

A local Web server to handle the data delivery and content display from the local machine to the browser. This local server will likely be highly optimized for its task, but would be capable of running locally installed Web applications (e.g. a local copy of Gmail and all its associated data).

That’s it. Aside from the browser and the Web server, applications will be written for the WebOS and won’t be specific to Windows, OS X, or Linux. This is also completely feasible, I think, for organizations like Google, Yahoo, Apple, Microsoft, or the Mozilla Foundation to make happen (more on this below).

Compared to “standalone” Web apps and desktop apps, applications developed for this hypothetical platform have some powerful advantages. Because they run in a Web browser, these applications are cross platform (assuming that whoever develops such a system develops the local Web server part of it for Windows, OS X, Linux, your mobile phone, etc.), just like Web apps such as Gmail, Basecamp, and Salesforce.com. You don’t need to be on a specific machine with a specific OS…you just need a browser + local Web server to access your favorite data and apps.

For application developers, the main advantage is that instead of writing two or more programs for multiple platforms (one for the Web, one for Windows, etc.), they can write one app that will run on any machine with the WebOS using the same code base. Bloglines and NetNewsWire both do about the same thing and have radically different codebases (Bloglines uses HTML/JavaScript + some sort of backend programming/scripting language while NNW is a Cocoa app only for OS X), but a version of Bloglines developed for the above platform could utilize a single codebase.

You also get the advantages of locally run applications. You can use them when you’re not connected to the Internet. There could be an icon in the Dock that fires up Gmail in your favorite browser. For applications using larger files like images, video, and audio, those files could be stored and manipulated locally instead of waiting for transfer over the Internet.

There are also disadvantages to WebOS applications, not the least of which[1] is that HTTP+JavaScript+XHTML+CSS+Flash is not as robust in providing functionality and user interaction as true desktop applications written in Cocoa or Visual Basic. But as Paul Graham points out, Web applications may be good enough[2]:

One thing that might deter you from writing Web-based applications is the lameness of Web pages as a UI. That is a problem, I admit. There were a few things we would have really liked to add to HTML and HTTP. What matters, though, is that Web pages are just good enough.

Web pages weren’t designed to be a UI for applications, but they’re just good enough. And for a significant number of users, software that you can use from any browser will be enough of a win in itself to outweigh any awkwardness in the UI. Maybe you can’t write the best-looking spreadsheet using HTML, but you can write a spreadsheet that several people can use simultaneously from different locations without special client software, or that can incorporate live data feeds, or that can page you when certain conditions are triggered. More importantly, you can write new kinds of applications that don’t even have names yet.

And how about these new kinds of applications? Here’s how I would envision a few apps working on the WebOS:

Gmail. While online, you read your mail at gmail.com, but it also caches your mail locally so when you disconnect, you can still read it. Then when you connect again, it sends any replies you wrote offline, just like Mail.app or Outlook does. Many people already use Gmail (or Yahoo Mail) as their only email client…imagine if it worked offline as well.

A Web version of iTunes. Just like the desktop version of iTunes, except in the browser. Manages/plays audio files stored locally, with an option to back them up on the server (using .Mac or similar) as well. iTunes already utilizes information from the Internet so well (Web radio, podcasting iTMS, CDDB, etc.) that it’s easy to imagine it as a Web app. (And why stop at audio…video would work equally as well.)

Flickr. Manage image files locally and on Flickr’s server in the browser. You could even do some rudimentary photo manipulation (brightness, contrast, red-eye correction, etc.) in the browser using JavaScript or even Flash. Prepare a bunch of photos for uploading to Flickr while on the plane ride home and they automatically sync when you next connect to the Internet.

Newsreader. Read sites while offline (I bet this is #1 on any Bloglines user’s wish list). Access your reading list from any computer with a browser (I bet this is #1 on any standalone newsreader user’s wish list).

File backup. A little WebOS app that helps you back up your files to Apple’s .Mac service, your ISP, or someone like Google. You’ll specify what you want backed up and when through the browser and the backup program will take care of the rest.

I’m looking at the rest of the most commonly used apps on my Powerbook and there’s not too many of them that absolutely need to be standalone desktop applications. Text editor, IM[3], Word, Excel, FTP, iCal, address book…I could imagine versions of these running in a browser.

So who’s going to build these WebOS applications? Hopefully anyone with XHTML/JavaScript/CSS skills, but that depends on how open the platform is. And that depends on whose platform it is. Right now, there are five organizations who are or could be moving in this direction:

Google. If Google is not thinking in terms of the above, I will eat danah’s furriest hat. They’ve already shifted the focus of Google Desktop with the addition of Sidebar and changing the name of the application (it used to be called Google Desktop Search…and the tagline changed from “Search your own computer” to the more general “Info when you want it, right on your desktop”). To do it properly, I think they need their own browser (with bundled Web server, of course) and they need to start writing their applications to work on OS X and Linux (Google is still a Windows company)[4]. Many of the moves they’ve made in the last two years have been to outflank Microsoft, and if they don’t use Google Desktop’s “insert local code into remote sites” trick to make whatever OS comes with people’s computers increasingly irrelevant, they’re stupid, stupid, stupid. Baby step: make Gmail readable offline.

Yahoo. I’m pretty sure Yahoo is thinking in these terms as well. That’s why they bought Konfabulator: desktop presence. And Yahoo has tons of content and apps that that would like to offer on a WebOS-like platform: mail, IM, news, Yahoo360, etc. Challenge for Yahoo: widgets aren’t enough…many of these applications are going to need to run in Web browsers. Advantages: Yahoo seems to be more aggressive in opening up APIs than Google…chances are if Yahoo develops a WebOS platform, we’ll all get to play.

Microsoft. They’re going to build a WebOS right into their operating system…it’s likely that with Vista, you sometimes won’t be able to tell when you’re using desktop applications or when you’re at msn.com. They’ll never develop anything for OS X or for Linux (or for browsers other than IE), so its impact will be limited. (Well, limited to most of the personal computers in the world, but still.)

Apple. Apple has all the makings of a WebOS system right now. They’ve got the browser, a Web server that’s installed on every machine with OS X, Dashboard, iTMS, .Mac, Spotlight, etc. All they’re missing is the applications (aside from the Dashboard widgets). But like Microsoft, it’s unlikely that they’ll write anything for Windows or Linux, although if OS X is going to run on cheapo Intel boxes, their market share may be heading in a positive direction soon.

The Mozilla Foundation. This is the most unlikely option, but also the most interesting one. If Mozilla could leverage the rapidly increasing user base of Firefox and start bundling a small Web server with it, then you’ve got the beginnings of a WebOS that’s open source and for which anyone, including Microsoft, Google, Yahoo, and anyone with JavaScript chops, could write applications. To market it, they could refer to the whole shebang as a new kind of Web browser, something that sets it apart from IE, a true “next generation” browser capable of running applications no matter where you are or what computer (or portable device) you’re using.

So yeah, that’s the idea of the WebOS (as I see it developing) in a gigantic nutshell. The reality of it will probably be a lot messier and take a lot longer than most would like. If someone ends up doing it, it will probably not be as open as it could be and there will likely be competing Web platforms just as there are now competing search engines, portals, widget applications (Konfabulator, Dashboard, Google Desktop Sidebar), etc., but hopefully not. There’s lots more to discuss, but I’m going to stop here before this post gets even more ridiculously long. My thanks if you even made this far.

[1] Actually, the biggest potential problems with all this are the massive security concerns (a Web browser that has access to data on your local hard drive?!!!??) and managing user expectations (desktop/web app hybrids will likely be very confusing for a lot of users). Significant worries to be sure, but I believe the advantages will motivate the folks developing the platform and the applications to work through these concerns.

[3] Rumor has it that Google is releasing an IM client soon (more here). I’ll be pretty surprised if it’s not significantly Web-based. As Hotmail proved for email, there’s no reason that IM has to happen in a desktop app (although the alerting is problematic).

[4] Maybe Google thinks they can’t compete with Apple’s current offerings (Spotlight, Dashboard, Safari, iPhoto) on their own platform, but that’s not a good way of thinking about it. Support as many people as you can on as many different architectures as you can, that’s the advantage of a Web-based OS. Microsoft certainly hasn’t thought of Apple as a serious competitor in the OS space for a long time…until Web applications started coming of age recently, Microsoft’s sole competitor has been Microsoft.