The state of the framework

Duane Moody
Nov 2 · 3 min read

After watching Mark Dalgleish’s informative talk at ReactiveConf, two things I’ve been thinking about for the past year have crystallized:

1. HTML is foremost a technical documents language that didn’t even get form elements or interactivity until its 2nd iteration.

Its heritage is an academic, spoken/written innately hierarchical language structure meant to convey a set of linear arguments and/or observations. It describes content of no particular dimension and is derived from a data structure format (SGML) that isn’t concerned with presentation. The default formatting for headers and paragraphs and lists and definitions is a convenience for people composing those documents.

CSS was created because it became clear that a browser had rendering capabilities beyond linear text-wrapped content, but markup wasn’t an efficient/abstractable method for implementing it.

There’s a key problem here though. First, the least worst of the 9 candidates for a styling system, CSS, wasn’t developed by professional graphic designers, and through its first two iterations it was a thing you fought with rather than merely implemented. Secondly, it doesn’t have an option for unwrapping all default formatting so designers could start from scratch. Thirdly, it was once possible to extend HTML to a new set of elements whose structure and relation was definable — but HTML5 jettisoned the DTD that could do this because HTML is a “living” (i.e. amorphous) “standard” now.

2. Design systems and web applications are now outside the paradigm HTML was meant for, have moved outside that paradigm altogether, and modern web frameworks have become necessary to those developers in order to compile their new ideas into old code.

If we’re at a crossroads it’s because the platform is no longer ideal to what we want from it, and it’s past time to develop a better one. Web applications suffer from users being able to easily modify and inject their code the way traditional binaries aren’t. The web is still inherently stateless. Accessibility and responsiveness is still an optional discipline instead of baked into default elements and components. Even with web workers, WASM, <video>, SVG, CSS animations, promises and upgrades to JS sound features, HTML5 has still failed to deliver a reliable replacement for Flash’s and SMIL’s basic multimedia capabilities. Features you got sold on in one version of HTML5 can be deprecated and removed with not even a descriptor in markup to warn you or a quirks mode attribute to retain them. AJAX is still a bare-metal implementation of a high-level operation. Most telling, a supposed application stack whose scripting engine is by design prohibited from local filesystem access and whose CSS engine is now prevented from guessing even your available fonts. Why is that, I wonder. There is considerable oxidation on this thing. And adding more features isn’t fixing it.

From the moment HTML adopted OS-native form elements and JS, the community has pushed to make browsers application frontends. It’s certainly easier than learning C++ and mastering OS-specific APIs, cheaper than buying or developing crossplatform development kits, or god forbid requiring a runtime you have to install or embed.

We are witnessing laziness and convenience driving development and now we have React devs asking what component creates a modal dialog because they don’t know it already exists as an HTML element.

What we need at this point is a new set of standards built from the ground up and by the same team. A nonlinear internal structure that’s accessible and responsive by default, a cascade-agnostic design systems language designers understand, a programming language much closer to what Eich claimed were his influences with highly restricted filesystem access, and a much more intelligent and less porous security model. Signed code to prevent tampering and some script operations restricted to https-only. I’ll save my spec draft for another article.

It’s possible to do better. But it’s apparently easier to push thousands of lines of code to pretend we have the system we need instead.

Duane Moody

Written by

Visual novel writer currently co-developing Old West VN, American Jurassic. Sky, you ecchi baka kyaa~

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade