The modern combustion engine is a marvel of engineering in terms of the power to weight ratio for the efficient use of fuel. The principles are as simple as they have been since the end of the era in which it was invented now two centuries past: air, fuel, fire. If the internal combustion engine has these in the right mixture, it works.
As little as three decades ago, the average backyard mechanic could take one down to spare parts and put it back together if he or she had the time, the tools and the nerve, although to do it easily, one has to go back almost seven decades and then the principles which made it work weren’t that well understood in their implementation. Understanding and implementation have to scale out together but at some critical juncture, optimization of one of the applied principles will cause the complexity of the implementation to exceed the reach of the understanding.
So it is with the modern combustion engine: it works, it is efficient with respect to the power delivered for the fuel and the weight of the overall vehicle, thus adding more efficiency, but it is not something that the average backyard mechanic can rebuild. The tools required, the parts required and the knowledge of how they work in combination exceed his or her resources, understanding and nerve.
Complexity is just as much in the nature of the evolution of systems as simplicity is desirable. At some point, the demands of an environment or a market require complex solutions. While simplicity is a goal, it can also become a religion just as harmful as fundamentalism when pursued with a sword. Complex systems can do what simple systems cannot do. The goal that all systems be accessible can be met with open standards, but the goal that they be powerful, workable and light might not even as the principles over which they are built remain the same.
As I look at XAML, I know this design because it is the same markup design that the US Navy MID committee proposed for a notional browser twelve years ago. The winner was HTML. History has shown that HTML is to the MID what Henry Ford’s A-model and T-models were to a modern combustion engine: durable, affordable and fixable by the average web hacker, but ultimately also dirty, harsh on the environment, and not evolvable past some set of requirement for complex presentation and interaction. It is possible that with Vista and XAML, we are witnessing the end of the HTML-basic browser systems and staring at the fundamental weakness of the argument that Jean Paoli made to me in the hallway in Vancouver so many years ago and Tim Bray has been the champion of ever since: “It must be easy!”
Why must it? Perhaps that is true at the emergence of a technology, but then professionals take up the task because the job itself has changed. As with the fire, fuel air mixture that makes an internal combustion engine run, the fundamentals of URI, markup and objects are still the basics for web hypermedia, but the balance is shifting away from the primacy of fixed markup or the “Any color you want as long as it’s black.” browser to the primacy of variant markup by variant objects instead of a “faster horse”.
It is obvious that a sea change is upon us. It is obvious that this same change happens in all technologies in response to environmental and market demands. What is not obvious is how long it will take the once pioneering spirits grown stodgy in their success to realize that their principles where once the fuel for their personal and professional success are now the dirt in the modern engine of progress in need of cleaning. What we are seeing is the dawn of the modern professional web and the end of the backyard Joe Web Page. It's about time.