I am extraordinarily fascinated with all aspects of this almost 17-year-old conversation that led to the creation of an HTML element that has been used on virtually every web page ever published. Consider this:
HTTP still exists. It successfully evolved from 0.9 into 1.0 and later 1.1, and still it evolves.
HTML still exists. That rudimentary data format (it didnât even support inline images!) successfully evolved into 2.0, 3.2, and 4.0. HTML is an unbroken line. A twisted, knotted, snarled line, to be sureâthere were plenty of âdead branchesâ in the evolutionary tree, places where standards-minded people got ahead of themselves (and ahead of authors and implementors)âbut still, here we are in 2010, and web pages from 1990 still render in modern browsers. I just loaded one up in the browser of my state-of-the-art Android mobile phone, and I didnât even get prompted to âplease wait while importing legacy format...â
HTML has always been a conversation between browser makers, authors, standards wonks, and other people who just showed up and liked to talk about angle brackets. Most of the successful versions of HTML have been âretro-specs,â catching up to the world while simultaneously trying to nudge it in the right direction. Anyone who tells you that HTML should be kept âpureâ (presumably by ignoring browser makers, or ignoring authors, or both) is simply misinformed. HTML has never been pure, and all attempts to purify it have been spectacular failures, matched only by the attempts to replace it.
None of the browsers in use in 1993 still exist in any recognizable form. Netscape Navigator was abandoned in 1998 and rewritten from scratch to create the Mozilla Suite, which was then forked to create Firefox. Internet Explorer had its humble âbeginningsâ in âMicrosoft Plus! for Windows 95,â where it was bundled with some desktop themes and a pinball game; but of course, that browser can be traced back further too.
Some of the operating systems from 1993 still exist, but none of them are relevant to the modern Web. Most people today who âexperienceâ the Web do so on a PC running Windows 2000 or later, a Mac running Mac OS X, a PC running some flavor of Linux, or a handheld device like an iPhone. In 1993, Windows was at Version 3.1 (and competing with OS/2), Macs were running System 7, and Linux was distributed via Usenet. (Want to have some fun? Find a graybeard and whisper âTrumpet Winsockâ or âMacPPP.â)
Some of the same people are still around and still involved in what we now simply call âweb standards.â Thatâs after almost 20 years. And some were involved in predecessors of HTML, going back into the 1980s and before.
Speaking of predecessors.... With the eventual popularity of HTML and the Web, it is easy to forget the contemporary formats and systems that informed their design. Before you read this chapter, had you ever heard of Andrew? Intermedia? HyTime? And HyTime was not some rinky-dink academic research project; it was an ISO standard approved for military use. It was Big Business. And you can read about it yourself at http://www.sgmlsource.com/history/hthist.htm.
But none of this answers the original question: why do we have an
<img>
element? Why not an <icon>
element? Or an <include>
element?
Why not a hyperlink with an include
attribute, or some combination of rel
values? Why an <img>
element?
Quite simply, because Marc Andreessen shipped one, and shipping code
wins.
Thatâs not to say that all shipping code wins;
after all, Andrew and Intermedia and HyTime shipped code too. Code is
necessary but not sufficient for success. And I
certainly donât mean to say that shipping code before a
standard will produce the best solution. Marcâs <img>
element didnât mandate a common
graphics format; it didnât define how text flowed around it; it didnât
support text alternatives or fallback content for older browsers. And 17
years later, weâre still
struggling with content sniffing, and itâs still a
source of crazy security vulnerabilities. You can trace that
through the Great Browser
Wars, all the way back to February 25, 1993, when Marc Andreessen
offhandedly remarked, âMIME, someday, maybe,â and then shipped his code
anyway.
Get HTML5: Up and Running now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.