Dare Obasanjo complains that new names like SOA, AJAX, and REST have more to do with fashion than software. He’s right, but his posting might be missing the point.
There are two reasons that a fuzzy, general approach to things (as opposed to a concrete standard or application) gets a name:
- the approach represents something a lot of people are actually doing; or
- the approach represents something someone wants a lot of people to do.
The second reason has no real value except hype, and Dare and I would probably agree in condemning it as vacuous marketing drivel. The first reason, though, has some real value: it represents the moment of self-recognition for a community of practise, a group of people who discover that they’re thinking and working in the same way. No doubt, many woodworkers made fine furniture when they were all still called carpenters; however, some of them must once have realized that they were spending most of their time doing fine, detailed work rather than laying studs and joists, and that the skills and even tools they were using were different — calling those people joiners or cabinet makers gives us a way to recognize that community of practise and the distinctive approaches and skills that set it apart from other woodworkers. (Of course, the distinction almost certainly originated in a language other than modern English, but I don’t feel like researching the original terms right now.)
So it’s true, as I mentioned in an earlier posting, that AJAX is nothing new — in fact, leaving aside XMLHttpRequest altogether, AJAX is nothing more than old-fashioned client-server under a new guise, just as cabinet making is nothing more than fussy carpentry. It’s also true that people were doing precisely what is now called AJAX long before the name was invented. But both statements are missing the point: the name AJAX is catching on because it represents a problem-solving approach that a lot of people now like and either use or want to start using; it represents the emergence of a community, not a standard or a chunk of code. Ditto for REST (though in this case Dare is complaining about the popular usage, plain XML over HTTP, rather than the original meaning, the principle that every resource must be directly addressable). People posted online diaries and columns before we called them blogs; people built hypertext systems on the Internet before we called one the Web; people were using event-based parsing API’s long before they were called SAX-like. In each case, though, the arrival of a widely-accepted name helps us to pinpoint the movement when a social change — a fashion to use Dare’s own word — emerged in the technological community. These fashions are far more important than new standards or new code, at least when they represent genuine changes in people’s thinking.
So what about SOA? Does it represent another moment of self-realization among a group of people doing the same kind of thing, or is it an attempt to steer people the way someone wants them to go, a bit of vain marketing buzz? I’m still trying to decide.