John Ochsendorf, who teaches civil and environmental engineering and architecture at MIT, cares about ancient construction methods and the forgotten knowledge they embodied: rammed-earth walls, braided-fiber suspension bridges, Gothic cathedrals. In an enlightening lunchtime talk a couple of years ago he reviewed what these ancient builders knew and could still teach us if we were willing to learn.
Dave Winer’s Why apps are not the future reminded me of that. The ancient construction method we are forgetting, in this case, is linking. We had already started to forget back in 2004. Then, writing for InfoWorld, I argued that rich Internet apps needed to learn what web apps always knew: RESTful design that exposes internal state as links. Kevin Lynch, who was then chief software architect of Macromedia, accepted the challenge and showed how a Flash app could behave that way.
But while you can bolt RESTful design and linking onto a rich Internet app, or a phone app, these principles aren’t built in. So apps are inherently less open to the sort of lightweight service composition that I’ve championed for a decade, ever since the LibraryLookup project showed me just how easily and powerfully a humble hyperlink can connect two otherwise separate information silos.
The point about service composition and linking is so obvious that we often fail to notice it. Yesterday I booked a hotel in Chicago for an upcoming conference. The organizer sent me an email containing this link for hotel booking:
When I followed the link I landed in Marriot’s service with context appropriate to my status as an attendee. Nobody at Marriott specifically designed that capability. It’s just something that’s possible because the site works RESTfully, exposing its state as links that people can hand around.
Now to be honest, you have to be a geek-minded person — like the guy who invited me to this conference — to recognize and exploit this possibility. Most people don’t expect things to work this way, and most web designers don’t try to encourage that expectation.
My fear with rich Internet apps, and now phone apps, is that they tend to obscure an important lesson we never learned well enough in the first place.
I was never an expert in it, but I remember OLE when every object was able to be embedded in some other document, and they were “active” – like pasting a spreadsheet into a Word document. The ability to take a URL and send it to a friend and have it “just work” is a better embodiment of the same philosophy, I think.