The web and the free desktop
Some days ago I ran into an interesting comment in a review of the Ubuntu 10.10, released yesterday:
in an era where you can do 90 percent of your work through a browser window, Ubuntu needs polish, usability, compatibility, and a likable look and feel more than anything. With Windows 7, Microsoft's dominant OS is no longer the big, obvious heavy it once was, at least from the software design standpoint.
Indeed, web browser is the tool I spend most of my time in. While I still hack using desktop-based development tools instead of the cloud, almost everything else I need is already happening on the web.
This means the operating system doesn't really matter. Linux, Mac, Windows, KDE, MeeGo, GNOME, whatever is the best at managing my browser windows and web apps may be the winner, and the only desktop app that matters is the browser. Or actually, not the browser but the things you access with it.
Instead of looking back and competing on the merits of what desktops were back in the 90s, how about really focusing on the desktops of the future? You need mobility, support for touch interfaces, and especially, you need great support for managing different web applications. Their shortcuts, their preferred screen size, their cookies and their local storage.
Firefox is already working on how to manage web apps better, as is IE9. But how about trying to outdo them on the desktop level? Maybe desktop could manage privacy, access to user information, and context probably better than a browser can? Handling native applications and web applications in the same way might be another good idea, including making them supported in notification systems etc.
Qt, GTK+, Clutter and QML may be great toolkits for some situations, but we should accept that HTML is another toolkit, and really the only cross-platform one out there, and that it should coexist seamlessly with the native toolkits. Fedora's Mike McGrath might be on to something.
Update, responding to The browser myth comment by Johannes Schmid:
Most people will probably answer that the web browser is the application they use most often. That might be true, but is it the application they spent their time with when they are working? I certainly hope not!
It wasn't my intention to claim everything happens through browser, but instead to suggest that web applications should be treated as equals to regular desktop applications, with similar services and management UIs provided for both.
The split between web applications and desktop application most likely varies between companies. In our company most of the business collaboration tools are web-based, as is the primary access to email, calendaring, contact information, financials, etc. We use in-browser office tools and OpenOffice.org with probably a 50/50 split (I've found OOo can make a lot prettier presentations than the current web-based offerings for instance). And even software development happens more in the browser, except for the people involved with the CMS back-end.
This didn't use to be the case a few years ago. The web evolves a lot more quickly than the traditional desktop world, and so when looking for better tools we increasingly end up selecting a web-based one. I'm sure this is a process that happens in companies everywhere, though more slowly with conservative big enterprises. Making the free desktop the best environment to use web applications in would hugely increase the platform's appeal.
Another great opportunity with web applications is their portability. We will probably never get the whole world to switch to GNOME or KDE, but if our free software is available through a browser they can still benefit and participate in our efforts. Using web tools also exposes the free software community to the large group of developers who have bypassed the traditional desktop model and grown up making web apps.
Using HTML as a toolkit may not necessarily mean interacting with regular web servers. Many regular desktop applications embed WebKit or some other HTML widget to display rich content. It is also quite possible to run full web systems on your own computer, made even easier with tools like the Midgard Runtime or CouchApps.
Update, responding to Can Web Developers Scale? by Jaroslaw Staniek:
Can Web Developers Scale?"That's like saying that there's a huge pool of high-school physics teacher who can now contribute to solving cold fusion. [..]"Really I admire talented web devs. But I think while most of developers are web developers, most brilliant developers are not the web ones.
Obviously believing that there are thousands of web developers itching to contribute to GNOME or KDE, if it only could be done with web technologies is false. But the fact is that most developers nowadays grow up learning and making web applications instead of the traditional desktop technologies. Opening a way for them to become members of the existing free software communities would be a big win.
Now most of them use Macs and build closed web application silos, though with the shared open infrastructure of Ruby on Rails, Django, Midgard or whatever.