Steven Pemberton, CWI
The big advantage of standards is that you don't get locked in. If you don't like what a browser (or photo-viewer, or whatever) does, well, just download a different one and use that instead.
On the other hand, using a proprietary format restricts which software you can use, and if you want to change, you have to convert all your documents.
The key term for describing the original web (and I would claim, its success) is the word "declarative".
A declarative definition is where you describe what you want, rather than how to get it.
Declarative definitions are typically short, and easy to understand.
A classic example is when you learn in school that
the square root of a number x is the number r such that r×r=x.
This doesn't tell you how to calculate the square root; but no problem, because we have machines to do that for us.
function f a: {
x ← a
x' ← (a + 1) ÷ 2
epsilon ← 1.19209290e-07
while abs(x − x') > epsilon × x: {
x ← x'
x' ← ((a ÷ x') + x') ÷ 2
}
return x'
}
What does it do? Under what conditions? How does it do it? What is the theory behind it? Is it correct? Can I prove it? Under what conditions may I replace it, or a part of it with something else?
The poster-child of HTML declarative markup is the hyperlink:
<a href="talk.html" title="My talk" target="_blank"
class="overt">HTML5 is the new Flash</a>
This compactly encapsulates a lot of behaviour including: what the link looks like, what happens when you hover over it, activation in several different ways, what to do with the result, hooks for presentation changes.
Doing this with programming would be a lot of work.
In the early days of the web we fought off an attack from the makers of then-leading web browser, Netscape, who wanted to define all presentation using programming (look up JSSS on Wikipedia for details).
Luckily we managed to introduce the declarative CSS instead, and keep web authoring accessible for non-programmers.
Unfortunately, we now have HTML5. HTML5 is no longer about declarative markup: it is about programming.
The designers of HTML5, themselves mostly programmers, rather than researching what people needed from the web, and then defining declarative ways of describing those things, took the position that if you want something new, you should just program it.
So even something as simple and obvious as a drop-down navigation list needs to be programmed out. This is no longer easy. And furthermore, it is no longer standard.
Why isn't it standard?
Most web-authors are not programmers, so to help them, along came Frameworks. Lots of them. Wikipedia lists 30, but there are certainly many more. But they are all different! Not standardised.
If your framework of choice no longer gets supported, or doesn't work on one of the browsers you want to support, what are you going to do? Because you will have to recode all your documents if you want to change. How about in 5 or 10 years? How many of those frameworks will be still working and supported? (At least one has already died.)
HTML5 is a disaster for the web, and for its future.
It is time for a new movement, to lead the Web to its full potential. We must seize back the Declarative Web, so that our web pages are authorable by programmers and non-programmers alike, and still readable and usable in 10, 20, 100 years time.
Join me!