The Web as an Operating System
The last couple of months have involved a lot of development around the need for an application that can run on the web and on the desktop. Mixed with Google’s Chrome and Google Gears, one can see that this is starting to happen. Why should it matter if I am on Windows, Mac, or Linux? I want to run my app and I want to do it from anywhere, on any device, whenever I want. And I don’t really care if it is a web applicatio or a desktop application; all I care about is the functionality.
If you want to do this right now, get ready to be sliced on the cutting edge. For example, it can be done using SproutCore, Ruby on Rails, and Google Gears, but whew — it’s hard. All of these are evolving, so keeping up with rapid change in all three can be very exhausting. And there are very few resources in terms of best practices for security, etc.
To focus on the UI aspect for a bit, the two frameworks that I find really exciting right now are SproutCore and ExtJS. Both of these offer tremendous layout managers and excellent data management. Unfortunately, I find both to be very hard to develop in, especially ExtJS. So far SproutCore has been more manageable, but that may just be a personal preference. The downside is that it is really, really young; no way is a core business application going to be accepted yet. And what is still frustrating is that none of these provides anything close to the developer experience of, say, WinForm development in Visual Studio. And the IDE’s have simply not kept up with these technologies. In order for people to start building real application-like web experiences, there will have to be IDEs that provide the WYSIWIG functionality you really need (imo) for form-based application development.
But, keep your eyes on SproutCore — I’ve only recently learned of it (a nice side-benefit of participating in Startup Weekend), but me likey.


