Related to most of the below topics is the fact that the web has, at its heart, a pretty simple and flexible architecture.
24 years in and the web’s basic conceptual model still seems remarkably robust.
- A group of resources written in HTML
- That refer to and identify each other using URLs
- Are fetched and modified using HTTP.
- And are supported by other resources that are identified using URLs and fetched over HTTP.
- Oh, and HTML pages can ‘export specific fragments of themselves that can be referred to using HTTP and URLs.
Even with all of the changes over the past few years, this is still the basic model of the web. Even the new JS module system eschews the function call structure of CommonJS modules. The new ‘ES6’ module system is basically just a mechanism where each module script lists the code fragments it exports and which code fragments it imports from a set of URLs. All done over HTTP.
In short, it’s a hypertext system for code.
Given that, it shouldn’t come as a surprise that people are contemplating extending the JS module hypertext system to HTML, making the two hypertexts more interoperable. HTML links to modules which in turn can link to and use not just HTML files but specific fragments of those files.
As a fan of hypertext in general, I’m in favour of this idea.
JS modules aren’t the only place where hypertextuality is centred as a basic operating principle:
- The Link is a first class object in Activity Streams 2.0 and the Activity* family of social media specifications is very hypertextual in how it works.
- In fact, most of the social web protocols coming out of the W3C these days use hypertext as their foundation.
- Using links with a specific
rel=typeto add behaviours declaratively to a web page without resorting to JS is a basic idiom of modern web specifications.
Now, hypertext isn’t used in content as much as I’d like but it’s also easy to forget just how much it is used because it all feels so natural today.