The Web, created more that 15 years ago, has changed everything. Many people cannot imagine how they possibly could work efficiently without Web, how they would kill the time or how to find they way around. The Web, looking from a user perspective, is a huge success. However, looking under the hood uncovers the surprising truth: Web is just a technology, with all the drawbacks. The deeper one goes into understanding Web concepts, the more he is surprised that Web works.
Current web architecture seems to be reflected in two documents:
- Architecture of the World Wide Web, Volume One is a W3C recommendation that tries to put all the basic principles of Web architecture into a single document. It is a must-read for any technologist that tries to create anything on the Web.
- Architectural Styles and the Design of Network-based Software Architectures is a dissertation of Roy Fielding, one of the authors of HTTP 1.1 specification. REST architectural style is defined in this document with an intent to guide the development of Web architecture and protocols (although I would bet that most of the web developers have no idea that REST is an architectural style or what an architectural style is).
It looks like the very foundation of the Web is quite weak and confusing. No wonder that Web developers create all kinds of abominations, no wonder they are confused. They don't know what is good and what is wrong, what will bring the web closer to the ideal and what will be just another nail in its coffin. It is a natural outcome that most developers choose to ignore web architecture as it is mostly useless anyway. And that is going to hurt is badly in a long run.
However, there is an important lesson to be learned. Fifteen years ago the Web was just a simple hypertext system that slowly spread across the small Internet. It had only a minimal design, almost no documentation and no protocol specifications. If the Web should have to pass an architectural review or any major project scrutiny, it would probably be canceled. The web architecture team haven't managed to get the architecture right in all these 15 years. Yet the web is successful, maybe one the most successful technologies ever. Does it mean that quality and technological merit are far less important than popularity, courage and luck?