← Back to list

Memoirs of a Web Developer, Part 4: The First Browser War

In case you missed it, here are Part 1, Part 2, and Part 3.

Stephen Hui · 2025-11-21 15:03 · 0 claps · 1.9 min read
#vintage-computing #browser-wars #javascript
Open on Medium ↗
Wiki topics: LIT · Literature & Writing 🌐 · Web Development ✍️ · Writing & Creative

Memoirs of a Web Developer, Part 4: The First Browser War

In case you missed it, here are Part 1, Part 2, and Part 3.

By 1999, the First Browser War was in full swing, with Netscape Navigator and Microsoft Internet Explorer embroiled in a fierce battle for dominance. Both web browsers sought to introduce proprietary features that would differentiate themselves from their competition. Out of the ashes of that war came JavaScript.

That summer, I started a six-month internship at a large technology company as a “webmaster,” responsible for creating, deploying, and maintaining a web site. This included all aspects from web design, to development, to server administration. My purview was a departmental web site on the company’s intranet.

But I couldn’t just make a plain ol’ web site. I had recently heard of a new concept, *dynamic HTML*, which combined HTML and JavaScript (or other scripting languages) to create interactive experiences within the web browser.

I drove from the office to Barnes & Noble, and bought a very thick book on dynamic HTML. I read it cover-to-cover. I was ready to make my mark on the company intranet.

Because of the First Browser War, Netscape and Microsoft had different ways of accessing the browsers’ document object models (DOMs). The DOM helps the browser figure out how to draw the web page. JavaScript could be used to access and manipulate the DOM, allowing the interactive features.

And because of these browser differences, web developers began choosing sides, and the Web became littered with browser badges:

Clicking on the badge typically brought the user to a download page for the corresponding browser.

Clicking on the badge typically brought the user to a download page for the corresponding browser.

I knew there had to be a better way.

I spent the first weeks of that internship learning how to write cross-platform JavaScript code. I got pretty good at it, too. I figured out that I could detect which browser my code was running in, and access the DOM in different ways depending on the browser. Then I wrote a compatibility layer and used that to write the interactive code. I could write code once using the compatibility layer and run it everywhere.

I tested it on every browser I could get my hands on: Netscape Navigator on Windows, Mac OS, and Linux/UNIX; Internet Explorer on Windows and MacOS; and Mosaic on UNIX.

As it turns out, cross-platform compatibility was still a thing into the late 2010s, until Internet Explorer was officially retired. And that’s just how it was. It was a fact of life… if you cared about compatibility.


메타데이터
post_id
4d54e8d9a42e
slug
memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
url
https://medium.com/@gromit1463/memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
canonical_url
https://medium.com/@gromit1463/memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
author_url
https://medium.com/@gromit1463
status
ok
fetched_at
2026-06-29 02:33:43