How Web Tech Got This Way and How It May Evolve in the Future
Since 2016, the Norwegian Developers Conference has been holding a companion conference in Sydney, Australia. Last month, one of its presentations was a whirlwind tour through the history of the web and its development tools — bringing a detailed and thoughtful perspective on what led to our modern web development landscape.
Along the way, the audience got a demo of the world’s first web server, compiled from its original 1989 source code, and other web development tools from over the last three decades to explain how we got to where we are.
But at the end of the talk, the audience also heard some informed speculation about where it all might ultimately be heading.
In short, the talk offered its audience a glimpse at the way we were — and at what we might become.
Birth of the Browser
But the title of his talk promised to tell web developers “Why web tech is like this.”
Before running the world’s first web browser, Sanderson began by compiling the code for the world’s first web server — the 700 lines of C code that powered Tim Berners-Lee’s TCPServer.c back in 1989. It created a 22-kilobyte binary named httpd that, instead of port 80, listens on port 2784. “Apparently those are the last four digits of Berners-Lee’s parents’ phone number,” said Sanderson.
Also included were diagnostics like console traces for viewing the HTML file’s source code in various formats. “So we’ve kind of got early browser dev tools in there, right at the beginning,” said Sanderson.
It’s not the only early software with built-in development tools. Pei Wei’s 1991 Unix-only browser ViolaWWW even had style sheets. “Now it’s not CSS, obviously — that hadn’t been invented yet. But it was a thing like that that he came up with and put in there,” Sanderson said.
These are not just historical curiosities, but examples of a larger point Sanderson makes: that “we can change the course of the web.”
“The people who make these decisions, in some cases they’re big corporations, but a lot of the decisions along the way were made by individual engineers,” he said.
Developing Dev Tools
Yet as recently as 2006, “the closest thing you get to any browser dev tools is viewing the source in Notepad,” he said.
Improvements came with Joe Hewitt’s browser plugin Firebug in 2007 — complete with a Console, HTML view, CSS, script debugger and network tracers. “This design has largely stuck with us all the way through,” said Sanderson. “It was even pretty much just copied by Google as soon as they released their Chrome browser.”
- October 13, 2010: Backbone.js announced on Hacker News
- October 20, 2010: Knockout.js announced on Hacker News
- October 20, 2010: First public release of Angular JS on GitHub
“A whole bunch of people had roughly the same idea at the same time” — the idea of bringing disciplined development models (like Model-View-Controller or other patterns) into web development.
“None of these things were done in coordination with each other,” said Sanderson. “It was just an idea that was ready for the world. It had to come out, and a whole bunch of people did it at the same time.”
It’s interesting to see how he summarized our modern era of web development as “a period of very rapid complexity growth for web developers.” He even pulled up a slide with the logos for TypeScript, webpack… and Kubernetes.
Sanderson said that he included Kubernetes (2014) because “it just gives you a hint of how much stuff web developers were being expected to know about by now. It’s not just frontend dev and backend dev and styling and build systems and stuff. It’s also now cloud orchestration. It’s becoming a very, very sophisticated era.”
“And it’s starting to get to the point where people are going to need to push back against this a little bit.”
Facing the Future
At the end of his talk, Sanderson pulled up a slide entitled “the present and future,” giving him a chance to pontificate. Looking ahead, Sanderson predicted “a pushback against the sophistication and the number of things web developers are expected to know. Maybe we’re hitting some kind of limiting point.”
“And some of the technologies that are emerging might start to help us reduce that a little bit.”
Sanderson applauded browsers that can handle more content with less pre-preparation from web developers, citing specifically native CSS nesting, which “allows us to get much of the benefits that you have with things like LESS and Sass just by baking more and more of those features inside the browser.” And he’s also seen proposals for type erasure: “a way of running languages like TypeScript directly inside a browser without having to compile them, simply by teaching the browser to ignore type annotations and other things that the browser doesn’t understand.”
But our world is evolving in other ways. Sanderson noted a new movement toward cloud-edge content delivery — “delivering your web applications not just on a couple of servers in certain places in the world, but in thousands or tens of thousands of locations all around the world.” The advantage? “You get these single-digit millisecond response times for your users, and you pretty much can never be down, because you’d have to bring down the entire global infrastructure to take down your website at that point.”
Sanderson mentioned the lower latency made possible by the HTTP/3 protocol and the WebTransport API. “You don’t really have to bundle content anymore. It’s just as efficient to serve lots of small files as it is to serve one big file.”
At the end of the talk, Sanderson emphasized that individual engineers can make decisions that influence the future of web development. “You are those engineers. You’re here at this conference, you can chat with each other and come up with some of these ideas about where we’re going to go next. And I’m very excited to see it and hopefully be part of what you create.”