I had a quick look at Microsoft Live Labs Volta today.
Described as “web development using only the materials in the room�, it allows you to build multi tier web applications using a consistent programming model; only later do you say how the application is split across the tiers and exactly what kind of client technology you want.
Volta includes some very interesting demos, most notably the “Virtual Earth SDK – Volta Styleâ€?. All the code is written in C# (not JavaScript!) and it seems like a really interesting abstraction. Performance seems to be a problem on my rural broadband link – start up time seems slow for some reason.
I went on to read Erik Meijer’s OOPSLA 2007 Paper, “Democratizing the Cloud” and that got me thinking about where all this is all going…
Erik is absolutely right about current programming models being “Gratuitously hard” and he raises some good points:
I think there are some practical problems on the client tier though – Silverlight apps and AJAX apps have very different capabilities – how can we avoid lowest common denominator interfaces?
Also, if we’re going to choose a consistent language and model across all the tiers, is C# and CLR the right choice? Shouldn’t we be looking for something with better support for distribution and parallelism? A functional programming model, maybe? Something that would allow us to use multiple processors / cores in each of the tiers too?
I think we need to recognise that whilst the Web browser is ubiquitous, it is also “broken”. It’s just not designed for the kind of rich, interactive applications we want to build today. Conventional wisdom seems to be that we have to work with what we have and hack around it. I’m not so sure. There has been huge and rapid adoption of other web-oriented applications including iTunes, Flash Player and Silverlight. Maybe we do have a second chance on the client?
If we did have a clean sheet of paper, what would the solution look like then?
*The opinions expressed on this site are my own and do not necessarily represent those of Two10degrees or Active Web Solutions Ltd.