“AI” and the browser should have been friends


In the April 2005 issue of Dr. Dobb’s Journal, editor Jon Erickson reflects on the roller-coaster ride of Artificial Intelligence (AI).

In the 1980s AI was all the rage. Lots of money was pumped into tiny companies with huge goals. And as the obligatory hype mounted, the skeptics became wiser and wiser. So much so that eventually AI became an art to avoid.

Jon makes some great points about how AI has reshaped itself. It’s around today. We just don’t talk about it. You don’t have to go much further than the handwriting or speech recognition in Tablet PCs to see “AI” technologies in action.

Bryan and I were talking about this phenomenon the other day at lunch and if Bryan doesn’t mind I’d like to pass along a hunch he has. You see just about the time that no one wanted to admit that they were working on AI, hypertext came along. And on the heals of the hypertext stampede came three letters: “www.” In these new land rushes, people were insistent that they weren’t going to fall victim to more AIish hype and lunacy. These were all reasoned efforts. OK. enough stage setting.

So what? Bryan’s theory is that just when the community needed “AI” the most. They dumped it. He’s long argued that the most appropriate language for manipulating web pages would have been something on par with LISP, prolog or similar. Of course, at the time you never could have done this. LISP was associated with AI. Instead we wound up with a mess of HTML, numerous scripting languages, CSS, XSL, and I’m guessing more to come–each with vastly different models for manipulating content. Now actually, Bryan would have favored prolog–but he’d argue that a handful of parentheses are OK too.

In fact, Bryan argues that if the world had gone with something like LISP at this stage in the game, XML would have been “done right” and the community would have avoided re-learning what others already had learned. (Ah, isn’t this the way it always is–Turbo Pascal, Java, C# all fall, step, or toe (you can pick) into this trap too.) I’m not so sure about this though. I think everyone sees their new twist as something that avoids the messes others have encountered. And it’s through trying to do more than their original scope that forces the implementation to expand. Some languages and technologies are more “enhanceable” than others.