Malleable web applications
Fri, Nov 25 2005
One of the really fun things about my job is that I spend a lot of time watching the industry and talking to smart people, then trying to predict where things are going to go in months and years to come. Being in the webdev industry is like being on a turbocharged rollercoaster: nothing stands still, and no matter how much free reign you give your imagination you can never predict everything. There are always surprises and new opportunities waiting around the corner.
One of the interesting things that's been discussed around the industry recently is the concept of "malleable" web applications.
On the one hand we have the extreme simplicity of things like blogs and Wikis, which are web pages that can be updated easily by non-technical users directly through their browser. On the other hand we have complex web applications like company intranets which provide access to vast quantities of internal data such as real-time sales figures and knowledgebases.
The idea of malleable web applications is to bridge the gap between the simplicity of Wikis and the complexity of major web applications, giving people the ability to create or modify web software to suit their business needs with minimal or no knowledge of programming.
One of the companies pushing ahead with this approach is, believe it or not, IBM. A couple of weeks ago I had a really interesting meeting with Vice President Rod Smith and Chief Technology Officer David Boloker from IBM's Emerging Internet Technology Software Group while they were in Melbourne. Rod and David talked about how IBM is using commonly available Open Source technology like the PHP programming language and a custom Wiki engine to create a system that allows users to build their own software to suit their business requirements.
The basic premise is that Wiki pages are very simple for people to update, but very "shallow". That is, when you are looking at a Wiki page you can change the content on it just by clicking an "edit this page" button, altering the text to suit yourself, and hitting "save". Simple, but stupid: all you're changing is text.
Most businesses want something more complex than just text on a page: they want tools like a web interface that shows the level of stock in various warehouses, or the sales figures for different stores. Of course, to develop that sort of system is a lot harder than just editing the text on a Wiki page.
So the IBM guys decided to try a middle ground: they have created a system based on a Wiki engine with pages that can be edited directly in a browser, but which also uses plug-in "data sources" that can communicate with other systems. For example you could have a data source plugin to get stock data from your warehouse computer, and another one to pull in maps from Google, and another one to connect to an external weather service and suck down weather data. Then their modified Wiki engine makes these data sources available in a very simplified form to anyone who wants to edit the page: if someone wanted to create an intranet page that displayed stock data, they'd just have to click "edit this page", put in some tags that link to the stock data source, and hit "save". Voila, a custom intranet page with dynamically updated content!
They also created some tools to make it easier to create dynamic Wiki pages by allowing people to put programming code directly into the page, so people with some knowledge of PHP can just click "edit this page", write a few lines of code, and save it to see the result on the spot.
To a non-technical person I'm sure this would all sound really hard, but the fact is that the world is changing very fast and there are thousands of younglings coming out of school now with at least basic knowledge of things like the PHP programming language. A few years ago it was considered amazing that kids finished school able to use a word processor: now even email, the web and instant messaging are just everyday things to them. HTML is a no-brainer, and doing a bit of basic programming isn't much of a problem for them either.
Those sorts of abilities in the hands of average people are going to make the world a very interesting place indeed. And when people are given tools that let them trivially create and personalise web applications we can only guess what sorts of things they'll come up with.