Since 2016, the Norwegian Developer Conference holds a complementary conference in Sydney, Australia. Last month, one of his presentations was a whirlwind tour through the history of the web and its development tools, providing a detailed and thoughtful perspective on what led to our modern web development landscape.
Along the way, the audience was treated to a demo of the world’s first web server, compiled from its original 1989 source code, and other web development tools from the past 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 be headed.
In short, the talk offered his audience a glimpse of what we were and what we could become.
Birth of the browser
The talk was given by Steve Sanderson, the original creator of the Blazor web application framework. (A bio on Steve’s website notes that he has worked on everything from JavaScript libraries to the new Azure management portal.) Sanderson recently joined Microsoft’s core team for its ‘ASP.NET web applications “with the goal of making the platform a joy and a delight for JavaScript developers.”
But the title of his talk promised to tell web developers “Why web technology is the way it is.”
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 in 1989. He created a binary 22-kilobyte file called httpd that, instead of port 80, listens on port 2784. “Apparently, these are the last four digits of Berners-Lee’s parents’ phone number,” Sanderson said.
Also included were diagnostics such as console traces to view HTML file source code in various formats. “So, at the beginning, we have the first browser development tools,” Sanderson said.
It’s not the only early software with built-in development tools. Pei Wei’s Unix-only ViolaWWW browser from 1991 even had style sheets. “Now it’s not CSS, obviously; that hadn’t been invented yet. But it was something like that that he came up with and put in,” Sanderson said.
“But even more impressive than that,” Sanderson continued, “it had built-in scripting. Again, not JavaScript, which hadn’t been invented, but the whole browser was built in this kind of scripting language and it gave you allow you to embed the same scripting language into your pages to dynamically change their content. So it really set a direction for what a web page could do.”
These aren’t just historical tidbits, 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 are large corporations, but many of the decisions along the way were made by individual engineers,” he said.
Development of development tools
For better or worse, these individual decisions can reverberate over the decades. For example, when Brendan Eich created JavaScript in 10 days in 1995, Marc Andreessen had specified that he wanted an uncompiled language so that people could enter code directly into their HTML. “This is a design decision that has been with us until WebAssembly was finally created,” Sanderson said.
However, as recently as 2006, “the closest thing you have to any browser development tool is viewing source in Notepad,” he said.
Improvements came with Joe Hewitt’s Firebug browser plugin in 2007, with a console, HTML view, CSS, script debugger and network tracers. “That design has largely stayed with us throughout the process,” Sanderson said. “It was even pretty much copied by Google as soon as they released their Chrome browser.”
Sanderson’s talk flows through the rise of mobile design, with the launch of the iPhone in 2007, until it reaches something of a tipping point. Sanderson argues that JavaScript was “reborn” between 2005 and 2008 in the search for attractive interfaces to attract user-generated content. The launch of Google Maps demonstrated the potential of asynchronous JavaScript to make background requests and dynamically update pages, and “that’s really been with us all this way.” And Sanderson highlights another “major enabling technology of the time”: jQuery in 2006.
But as Sanderson explains, the real tipping point seems to be around 2010, a time when JavaScript was everywhere, albeit still in those massive, messy jQuery apps. Along with the release of Ryan Dahl’s Node.js in 2009, Sanderson credits O’Reilly’s book “JavaScript: the Good Parts” with sparking a new respect for JavaScript, leading to a remarkable confluence of framework releases:
“A bunch of people had about the same idea at the same time”: the idea of introducing disciplined development patterns (like Model-View-Controller or other patterns) to web development.
“None of these things were done in coordination with each other,” Sanderson said. “It was just an idea that was ready for the world. It had to come out, and a whole bunch of people did at the same time.”
It’s interesting to see how he summed up our modern era of web development as “a period of very rapid growth in complexity for web developers.” He even pulled out a slide with the TypeScript, webpack… and Kubernetes logos.
CoffeeScript (first published in 2009) most popular is the idea of compiling JavaScript. From there, TypeScript added a typeface and became “an incredible success story” and an “effective way to solve real problems for developers.” But with the proliferation of compiled JavaScript, “we now need compilation and bundling systems, so webpack came to fill that need.”
Sanderson said he included Kubernetes (2014) because “it just gives you a hint of how much stuff web developers were expected to know by now. It’s not just front-end development and backend development and designing and building systems and things. It’s also cloud orchestration now. It’s becoming a very, very sophisticated era.”
“And it’s starting to get to the point where people are going to have to back off a little bit.”
Looking to the future
At the end of his talk, Sanderson pulled out a slide titled “the present and the future,” giving him a chance to pontificate. Looking ahead, Sanderson predicted “a pushback against the sophistication and the number of things that web developers are expected to know. Maybe we’re reaching a tipping point.”
“And some of the technologies that are emerging can start to help us reduce that a little bit.”
Sanderson applauded browsers that can handle more content with less upfront preparation by web developers, specifically citing native CSS nesting, which “allows us to get a lot of the benefits you get with things like LESS and Sass just by cooking every time month”. functions within the browser.” And he’s also seen proposals for type erasure: “a way to run languages like TypeScript directly inside a browser without having to compile them, simply by teaching the browser to ignore type annotations and other things the browser doesn’t understand.”
But our world is evolving in other ways. Sanderson pointed to a new move toward cloud-edge content delivery: “Deliver your web applications not just on a couple of servers in certain locations around the world, but in thousands or tens of thousands of locations around the world “. The advantage? “You get those single-digit response times for your users, and you can pretty much never be down, because you’d have to bring down the entire global infrastructure to take your website down at that time.”
Sanderson mentioned the lowest possible latency thanks to the HTTP/3 protocol and the WebTransport API. “You don’t really need to bundle content anymore. It’s just as efficient to serve many small files as it is to serve one large file.”
Another big trend is the rise of meta frameworks like Sveltekit, Astro and NextJS. “The basic idea now is, especially in the JavaScript world, people are using so many frameworks that they need a framework to manage their frameworks… By having a single framework that knows about the server side, the client side, the system build and the IDE, you can put it all together and then you can create new kinds of functions that span all of these things, which wouldn’t be possible if you just had frameworks in their little silos.”
Meta frameworks bring new kinds of features. While .NET developers may already have experience with a combined server/client/IDE build solution, “the fact that these ideas are now coming to JavaScript is inspiring many new innovations around these features, including the whole web community can benefit. from. So I think it’s very exciting…”
At the end of the talk, Sanderson emphasized that individual engineers can make decisions that influence the future of web development. “You’re these engineers. You’re here at this conference, you can chat with each other and have some of these ideas about where we’re going next. And I’m really excited to see that and look forward to being a part of what you create.”
Group created with Sketch.