Ways of Thinking, Ways of Doing

In a recent column, Jon Udell says "much of what seems to be modern innovation is, in fact, rediscovery of ... Lisp and Smalltalk." He goes on later to say:

If existing tools can do more than we realize, we could spare ourselves a bit of grief. But probably not a lot. Translating ways of thinking into ways of doing always takes longer than we predict.
From The spiral staircase of SOA | InfoWorld | Column | 2005-09-28 | By Jon Udell
Referenced Wed Oct 12 2005 09:55:00 GMT-0600 (MDT)

This is an interesting point and one that's under-appreciated, particularly by academics. For example, I've frequently maintained that anyone with a CS degree can understand XML and cut through the hype in a few sentences:

  • XML is a way of describing context free grammars.
  • An XML schema is a BNF for a particular grammar (it can contain more, but this is a good start).
  • XML parsers are interpreted versions of LEX and YACC.
  • A DOM is a standardized parse tree.
  • XSL is an interpreted pretty--printer.

This pretty much says it all except for Jon's point. Because there's nothing new in the principles behind XML, good programmers have been using the principles of XML for years, but by creating the "way of doing" we call XML and encapsulating those principles in standards and tools, Tim Bray and others gave those techniques to the masses.