Skip to content

The network is the computer

Sunday, 3 June 2007  |  zander

Yesterday I watched a talk given by Trolltech on Qt Jambi where we saw the presenter create a widget and use it in QtDesigner afterwards with an ease that is really compelling. This tied in with the points raised on Aarons blog earlier this week: on-mistaking-internet-for-interface.

The point here is that we use a html browser to gain the ability to use the network and to effortlessly start using a new application without having to do some system maintenance like installing the application beforehand, and how that web-browser based experience is not exactly giving the best user experience when compared to having an app build on a native application.

I've put up the topic as a little mockery; its (been) the Sun slogan and how they have been selling Java. The network is the computer is basically the idea that we have been following for the last decade with the move towards the web applications. I see it as this; people don't need anything local since all things are happening on the web server, we just see the results and we get semi-decent interaction methods in return.

Naturally, this is not what Sun has been trying to sell us; they have made various innovative technological constructs that I think we should look very closely into and either reuse or reinvent better for our needs. What Sun has been trying to sell us is basically that we integrate the network into our daily applications, but be sure to keep a local and hi-quality toolkit. Which ties in directly with Aarons blog above where he wants to have a plasmoid (i.e. a local app) do transparent network interaction. In other words; let the local, high quality-toolkit based apps grow towards the advantages of webapps.

Now back to the intro line; my introduction to QtJambi. QtJambi allows a huge set of people that now program is Java to keep on using all the advantages of Java, but use a simpler, better looking and more innovative toolkit to do it than they are used to doing it with (my words, the TT guy was waaay more subtle). The part where this sank in was after the demonstration was over and there were some C++ guys moving to the microphone and asking where the meta object and moc process gone to. They were surprised that after writing a simple class which extends QWidget they could just start the designer in Eclipse and see the newly created class as a widget. Including the ability to connect signals/slots. No line of meta code written or generated! Which to anyone who knows Java, this is no surprise. Its one of the main Java language features that the Qt toolkit has added to C++.

This is relevant because having a library of widgets that are as easy to install as just download and then use is exactly what was lacking in our deployment scenario. People don't want to install anything, but installing is just required because there are so many differences between platforms. Html people solve that by making the browsers more similar, Java solved that by having a similar JVM library installed everywhere, and I think that we can solve that as well, by either building on top of Javas success and combining that with the power of the Qt framework, or even doing something more creative ourselves.

One of those creative things are plasmoids. Anther is what I've been designing in KOffice with the flake plugin framework. When we extend the QtJambi idea towards KDE and KOffice, we will allow people to create their own java based applications which then tie in with the Cool New Stuff download service. Instant deployment of new technology.

To one up this idea, I've been talking to various content providers on how we can make a plugin in KOffice that will be a native widget but use the network to get the data, much like what webapps do. The first example of this is the Open Streetmap project which offer a gui-less API for us to use for the data. See our wiki for some ideas, if you want to hack on such a thing.

Aaron, in the above blog entry, concludes that we need sweeping new technology to fill the need for webapps while using our native toolkit. I don't think this is the case; I see the technology already maturing and its a 3rd generation of of "the network is the computer". The generation that will actually take the good of all technologies and make the promise actually work.