On why HTML and XML have succeeded, and the lessons therein
March 19, 2008
Why have HTML and XML succeeded? I believe it is a combination of four things:
Accessibility
There is almost no barrier to entry. Notepad and IE and you’re in business.
Resiliance
Tolerance for error. Most mistakes you can make in HTML won’t prevent your page from displaying. Unlike most programming languages, HTML will let you be and remain imperfect and continue to make progress. XML is tolerant in a different way. The syntax is more rigorous, but also very, very simple and regular, so XML is tolerant of conceptual errors, which, again, don’t prevent you from making progress.
Broad tiers of utility at different skill levels
You can do a lot of HTML and know nothing of cascading style sheets. But once you know them, there is a rich set of new things you can do. You can learn a small set of things, and get a lot of mileage from the knowledge. With each tier, each quantum of skill, there is a broad new plateau that opens.
You can go deep
This is a corollary of the previous point. From HTML there are cascading style sheets, and Javascript, and you can move to the server and find Linux Apache MySQL and PHP, and there is almost no end to how deep. From basic XML there Data Type Definitions and then Schemas, there are XSLTs and XPath and again, a long path with almost no end. And again, for each step, there is a broad range of new function that is available.
So what is the lesson? Keys to success for a new development technology:
- Give users a low barrier to entry using tools with which they are already skilled.
- Give them a broad range of utility with the first step in skill.
- Give them visible success depite their errors.
- Give them a new plateau of function with each stepwise gain in skill.
- Give them a path to go deep.
November 30, 2009 at 1:22 pm
Tolerance for error is both the beauty and the beast.
The beauty is indeed the ease of entry through almost instant gratification, which is critical. The beast is that erroneous progress will lead to a point where there is no more sustainable growth possible without a significant amount of unlearning of bad habits.
The mastery of bringing on new technology is understanding when the beauty is about to become a beast, and being able to apply some retro-active rigor at that stage.
Retro-active application of stricter development rules presents issues when not all individuals in an organization have enough skills to make such a step.
The cascading style sheets (CSS) progression mentioned is a good example. Applying cascading style sheets on top of HTML containing bad habits will progress slowly, and possibly halt CSS adoption due to the lack of timely successes. An effort will have to be made to refactor HTML to instill proper use of in-line style attributes, span and div, and so on.
The skill progression with cascading style sheets will be rewarding as described, if all HTML developers follow the necessary rigor.