Dan Lyke writes:
You know what the real revelation of This is a motherfucking web site is? Just how little we've gained from CSS and HTML3/4/5.
I’m not sure what I think about this. On the one hand, yeah, we’ve certainly walked down a lot of deadend paths and seen a lot of promise revealed as so much smoke & mirrors. On the other hand, so many aspects of the bad old days have been obscured by the last decade’s unbelievable progress in web tech that we can easily forget how much we’ve learned and built.
I started making web pages some time around 1995. What we have now that we didn’t really have then is at least:
Rich layout and presentation mechanics expressed at least partially in a separate layer from content structure. It’s not the shining dream of the semantic web, but on the other hand it’s nothing to sneeze at.
Pretty ok looking type.
High resolution, high color images.
Animation, video, and sound that pretty much work.
Clients which work most of the time.
Well-established means of building richer UI than mainframe-style form-submission.
Some of this you can lay at the feet of more bandwidth and more powerful computers, but I don’t think we’d be here without better markup than we had then. I’ve had my current gig since 2007, and in just that much time we’ve gone from pecking at snarled masses of nested tables and inline fonts to straightforward HTML in a handful of nested divs. It’s imperfect, and frankly kind of ugly, but there’s no question as to whether it improves on the clunky fragility of the way markup was usually done not so long ago.
‘course, I do have a set of complaints about the modern web and how we got here.
Until at least the era of HTML5, the HTML standards process and the general technical direction the official-ish leadership kept pursuing were both plagued by architectural detours, overdesign, and a pretty amazing disconnect from real-world implementations. I know, let’s retcon HTML into an XML dialect! What could possibly go wrong besides XML being a scheme of the Adversary and an abomination? I know! We’ll define a rich, top-down semantics for content implemented by exactly none of the working clients! So on and so forth.
CSS and its accompanying intellectual apparatus have utterly failed to provide a set of core abstractions that map cleanly to the most basic problems of visual layout. Its original semantics are obviously geared towards privileging typography and simple text flow mechanics, despite which they manage to elide or needlessy complicate questions like “how do I put this text in the middle”. I think they’re working on this, but there’s no plausible claim that they’ve gotten it right yet.
Even for the average bright, generally informed web developer, the idea of “semantic markup” has often become a kind of superstition, a received dogma with little direct connection to original notions of “separating content from presentation”. For an entire generation of nerds, “semantic” has come to reliably stand for believing in a visceral way that it’s better to put tabular data inside of
<div>s than inside of
<table>s. Think about that for a minute, because it’s fucking nuts. A vocabulary for describing rows of cells was rich enough to be abused as a workaround for the total lack of general-purpose layout semantics. This turned out to be really painful to live with. And the lesson we manage to impart to everyone afterwards? That the explicit table semantics were really distasteful but generic container tags are totally groovy because semantics! It leaves me kind of embarrassed for the species.
I used air quotes because it’s far from clear that “separating content from presentation” was ever entirely consonant with reality to begin with.
Rigid, brittle, device-dependent layouts and interfaces are all over the place. Relative and fluid techniques and units are almost universally deprecated in favor of static widths and absolute values. Ridiculous, boredom-driven hacks for basic problems proliferate to the extent that they displace existing basic solutions and techniques. People keep re-inventing things like the scroll bar. Badly.
Browsing on a mobile device is still a really craptacular experience, and direct attempts to target mobile tech backfire horribly at least as often as they ameliorate the problem.
We’re fucking up so badly on the questions of security and distribution of power that the entire project of democracy itself may suffer a major setback. The difficulty of authorship and publication outside of big corporate platforms like Facebook and Google is part of this problem, and some of its roots are in how hard it is for average people to write for the basic web. HTML is partly to blame for this, but I suspect that where we’re really failing is in terms of infrastructure, not the makeup of individual documents.