A tale from 30 years of HTML

Jan Kammerath
11 min readJun 20, 2022

--

In a few days the Hypertext Markup Language known to most simply as “HTML” will turn 30 years old. After the release of its first version back on November 3rd, 1992 its come a long way. A very long way.

“Back in my days, we used to stuff the HTML code as resources into our CGI applications. Frontend development was a thing everyone just did.” — Annonymous programmer from the 90s

Although released in 1992, it took HTML and the world wide web quite a while to gain some traction. It took all the way up to 1995 and ‘96 for the world wide web to take off. Before then, it was pretty much a thing for a couple of geeks, programmers and tech enthusiasts.

Netscape Navigator on Windows 3.1

Browsing the world wide web was already an adventure and took quite some time and patience to setup. Building websites wasn’t really a thing and if you wanted to build commercial applications, you’d still had to make the choice between the Web, France’s Minitel or Germany’s BTX. And I would also want to leave an honorable mention of the Gopher protocol here.

How to build a website — 90s style

The very first challenge in the mid-90s was to find someone to host your website. Registering a domain was a completely different story back then. Assuming you had your own server or found someone to host your website, they’d probably just give you FTP access to a Unix machine that would store your HTML and some nice GIF images to serve to anyone that wanted it.

HTML 1.0, 2.0 up until 3.2 were basic. Very basic. JavaScript only saw the light of day in 1995 and took time to be adopted in the two browsers of its time (mainly Netscape and Internet Explorer). The same goes for HTTP cookies which came out in 1994. Pretty much any browser threw a message prompt for cookies that the user had to accept — Déjà vu anyone? So if someone would allow you to use their web server software on their Unix machine (like NCSA HTTPd), all you could do was host some HTML files and a couple of images and you suddenly became a webmaster. Nothing that would excite today’s Internet users.

If you wanted to build a meaningful interactive website that users could not just browse, but actually interact with — like a chat for example — you’d pretty much end up using CGI (the “Common Gateway Interface”) or build your own web server software. Building your own web server wasn’t that uncommon back in the old days. Most of the people however used CGI. What CGI essentially did, and still does, is forward the HTTP request to the application and the application would return the headers and the HTML code or whatever content it would serve. Perl, C and C++ were the most common languages to build your CGI application for your webserver. It was very cumbersome and basically anything interactive had to be done on the server. Session handling and session management, as there were no cookies, was mostly done through the URL’s path component using unique identifiers for each user or session.

And given the performance of computers back in the mid-90s with CPU clock speeds between 25 and 180 Mhz, running interactive web servers was expensive. Sun Microsystem’s SPARC CPUs and their systems were commonly used for that purpose. And those didn’t come cheap at the time.

’95, ’96 and the boom

The year ’95 and ’96 were milestones for the world-wide-web and the Internet as we know it today. Usage took off and services flourished, from free web hosters like Yahoo’s GeoCities, auction platforms like eBay and online stores like Amazon.com. Specifically software like Microsoft Frontpage, the WWW Artist from Sierra and many others made it way easier to build your own HTML pages and upload them with FTP.

Microsoft Frontpage 1.1 released in 1995

New programming languages like PHP, Microsoft Active Server Pages for the Internet Information Server made it way easier to build applications for the World Wide Web. Cookies and JavaScript also allowed adding much more interactivity, although browsers were quickly overwhelmed with executing JavaScript code and browser crashes were a common occurence. Not to mentioned Java applets and the popular Flash player from Macromedia, released in 1996. Also released in 1996 was Cascading Style Sheets or CSS.

Building website layouts back then was however still all table-layouts. So everything was wrapped inside numerous tables and tables with tables of tables. Internet updates weren’t a thing, so it was not unusual to encounter quite dated web browsers. Due to the browser wars from ’95 to ’98, cross-browser support was a headache, so using tables was the safest way to go. Apart from that animated GIF telling people what browser you built your site for. Styles for elements were just the style attributes the elements had. If you wanted to go for very fancy styles, you ultimately had to use images, image maps and images wrapped in (guess what?) tables. If you were building web pages you were basically fiddling with tables all day and night.

Given the super-slow speed of most connections back in ‘95–’98 which were somewere at 56k or 7 kilobytes per second, it would also take ages for images to load. So these awesome animated GIFs promoting your favourite browser each mostly took 2 seconds to load. Not unusual to wait 30 seconds for a website to finally show up. Content delivery networks weren’t a thing and latency added to the “experience”. And an experience it was.

’97 to 2000 and beyond

The software products from a small San Francisco-based company called Macromedia which included Dreamweaver, Fireworks and Flash quickly become the go-to solution for many professional webmasters. Webmaster was a job that people had. Although with the rise of CSS, JavaScript, PHP and many other programming languages that focused purely on the Web, building websites was becoming a pure software development or engineering job.

Macromedia Dreamweaver back in 1997/98

Up until the early 2000s, many websites however were still table layouts and it was not uncommon to see old browsers like Internet Explorer 3.0 out in the wild. However, websites became more interactive and more media-rich over the years. For builders and users alike, it meant fiddling with plugins such as Flash, Java applets or the Real Player plugin. For users it meant permanently having to update plugins and install new plugins. At download speeds well below an acceptable level even at the time.

Real Player in 1997 — one of the first streaming software systems

The late 90s saw the first video and music streaming services, although in a quality were even “broadband” users with more than a megabit per second could hardly experience anything. But it was new and fancy. Not to mention that software like the products from Real Networks were very expensive compared to today’s Open Source world.

WML in ‘98 — the mobile web was born and died

The Wireless Application Protocol (WAP) used the Wireless Markup Language (WML) and could organise different pages (called “cards”) in a set of cards. This would reduce the amount of data transferred since multiple pages could be transferred to the client at once. A bit like modern frontend frameworks do today — Déjà vu again? Given the horrible pricing the mobile network operators had, WAP and the mobile browser quickly became a frightining experience since they would rack up hefty bills in seconds. Users did not like it that much, to say the least.

Nokia 7110, the world’s first WAP phone

Subsequently, the WAP and WML quickly died. Although technically quite interesting, the commercial environment they were put in ultimately led to their demise. More capable mobile browser such as the Mobile Internet Explorer on Pocket PC 2002 or later Windows Mobile and many other mobile browsers, made WAP obsolete. Several approaches to the mobile web were made by Palm, Nokia and many others. Most, if not all of them failed.

2002 — Say hello to Windows XP, IE 6 & Firefox

The year 2002 marked the Birth of Firefox and Windows XP with Internet Explorer 6. After the Dotcom Bubble in 2000, the Internet and the Web matured. Commercial Web services like online shops, hotel and flight booking sites started to become a real thing. With JavaScript, CSS and HTML maturing with HTML 4.01, the web was progressing towards what was often defined as “Web 2.0”. Browsers were now able to render and operate relatively complex user interface components like calendars, auto-complete text boxes, interactive tables, maps and much more.

Phoenix 0.1 on Windows XP

With the appearance of applications like Google Maps, the modern “Web 2.0” showed its capability to deploy full-scale applications that were previously only possible as Desktop applications like Microsoft AutoRoute. With Wikipedia as an interactive encyclopedia, server farms now also had sufficient database, storage and compute capacity to run large-scale interactive websites.

Google Maps in 2005, by Google Inc.

JavaScript was suddenly able to manipulate the entire DOM, browsers had sufficient power under the hood to render complex pages and CSS would allow a more comfortable styling of the applications. E-mail applications that previously lived on the desktop had already become primarly Web-based with free e-mail services that adopted a more interactive e-mail client design. Although web-based email services were already around in the late 90s. But interactive editors, chats and others became much more widly adopted. With every improvement in HTML, CSS and JavaScript, the Web became more in line with the capabilities of desktop applications.

2008 — the mobile web is born again

Since it’s birth in the mid-90s, the mobile web basically always had two significant problems that blocked it from growing and becoming a real thing that people would use every day.

  • the horrible pricing of the mobile network operators
  • websites that weren’t optimized for small screens and fat fingers

What many people sometimes forget is that Apple had struck a deal with mobile network operators and that Wi-Fi became mainstream in mobile devices. Also Google’s Android saw the light of the day. With these things changing, more webmasters and developers starting building mobile websites. In the early days of the mobile Internet, mobile devices would often be redirect to stripped down mobile websites. Often under domains like wap.mydomain.com with those who kept their WAP service and slowly transitioned to the new mobile web (like CNN for example).

T-Mobile G1 with integrated Web browser

What Nokia couldn’t achieve, Apple and Google had finally mastered: bringing the mobile web to the masses. The notorious “mobile websites” would also slowly vanish when CSS media queries were introduced in 2012 allowing websites to adapt to various screens sizes, devices and forms. Also mobile browser became way more capable and so did their underlying devices. JavaScript included, of course.

2020, 2021, 2022 and beyond

In early 2020, the web and web browsers had solved allmost all challenges of the past decades. Browser could now stream videos, manipulate images and videos, adapt to any type of device and run basically any full application in the browser. Even so far that browsers can run entire operation systems that have been ported to WebAssembly. HTML, CSS, JavaScript, WebAssembly and tons of native APIs, are today the main components of modern applications. And HTML has made it well beyond just the Web browser as it became a common standard also for desktop applications and mobile apps with frameworks like React Native, Electron and many other implementations.

The browser is also becoming more and more integrated into the operation systems itself with ChromeOS, Android, iOS and Windows. While at the same time more and more applications are making massive use of the Web and HTML to display content and provide services. With the rise of Software-as-a-Service modern businesses applications are also quickly transitioning to the browser, taking the burden of installation and complicated licensing off the user.

Challenges that still remain

Back in the old days, browser testing was a pain. And it still is. Although Internet Explorer is a thing of the past now, the variety of mobile devices, different form factors and varying support of HTML5 or Web APIs remains a challenge. However modern development environments are very good at keeping up. With Chrome, Safari and Firefox, the differences between these browsers both on desktop as well as mobile devices aren’t as severe as Internet Explorer and Netscape Navigator were in the early days.

Today’s web applications have to deal with mobile networks, devices roaming across multiple networks and connections that may suddenly drop due to a loss of network coverage. So in some form or another, the challenges of networking remain.

The introduction of z-index manipulation also brought up the grandchildren of the popup window. With centered layers blocking the user access to the actual content of the website. History is surely repeating itself here. Did people not learn from the popup crisis?

With the increase in complexity of HTML, CSS and JavaScript, it is also increasingly becoming harder for new software developers to enter the web development world and keep up with the standards of web application standards such as performance tests like the Lighthouse test. Some of today’s websites easily exceed 5 megabytes and more. The performance issues of the past still haven’t been resolved today as well.

Recap and outlook

There are a lot more things on the roadmap of the W3C for the web and the W3C continues to prove its capabilities to solve very complicated challenges in standardization. It has never been more flexible and more complex to build web applications than today.

Some people today tend to differentiate between Frontend (building the actual web app) and Backend (building the server-side components the app communicates with) while the history of the Web has proven this to be a flawed approach. Back in the days, because HTML was very often generated on the server-side and today, because many operations that used to reside on the server (like video and image editing) now quickly move to the browser-side.

Building good web apps also has never been easier with Frameworks like React. You can assume that elements of React like JSX, the JavaScript Syntax Extension, will also find their way into the standard of the browsers. Just like Flash any many other technologies that were replaced by W3C standards.

“Those that fail to learn from history are doomed to repeat it.”
— Sir Winston Churchill

I wish HTML, CSS and JavaScript as well as all the browser and everyone enjoying building for the Web many more and happy years to come!

--

--

Jan Kammerath

I love technology, programming, computers, mobile devices and the world of tomorrow. Check out kammerath.com and follow me on github.com/jankammerath