Javascript - The early years

In this article we are looking at Javascript from 2000 to 2005. This era was a core era where the backbone of Javascript as we know today was forged.

  • Dec 2000 - XMLHttpRequest first implementations
  • September 2002 - Firefox launched
  • 2002 - Tabbed browsers become common place
  • Nov 2004 - Vimeo founded
  • Feb 2005 - Youtube founded
  • Feb 2005 - Ruby on Rails launched

A brief history of JS

Javascript initially launched in 1995. There are quite a few articles on its founding and how it happened. I want to focus more on developer perception and usage in this series however. Long story short, in the 90s there was a "browser war" where each company added features to their browser to try and make theirs better. One of these additions by Netscape was Javascript. During this time each browser implemented their own version of Javascript. The language was still in the early stages and not quite mainstream ready so we are going to skip forward a bit.

2000 - 2005 Javascript the early years

This is where my development career begins. HTML and CSS were very established and while not as easy as today, most of the common websites were achievable from a visual perspective at this point. This is quite opposed to the mid 90s that gave us sites with Space Jam. Table layouts have given way to div based layouts. We are still in the HTML4 era.

This period was highlighted by the launch of Firefox (FF) in 2002. This was the peak of Internet Explorer (IE). Microsoft crushed the Netscape browser by bundling IE with Windows in the late 90's (leading to anti-monopoly litigation).

https://en.wikipedia.org/wiki/File:Browser_Wars_(en).svg

However,  by the end of 2005, Firefox clawed back marketshare to drive IE below 90%. The changing dynamics of browsers and the desire to make better and more dynamic web content started to drive standardization among Javascript developers.

Flash

This was a fun era of the web. Many people born before the 90s look back upon this period quite fondly, at least I do. One of the drivers of this was Flash. Flash was a program that allowed you to create animations and games. It's nearly dead from the web as of 2020 but in this period, if something was dynamic, it was probably Flash.

Flash was a write once run in any browser plug-in. With ActionScript integrated (which was derived from JS), you could write one simple program and the Flash browser plugin would provide the same environment no matter what browser was used. Compatibility was ensured because it was a browser plugin providing each browser the same run time environment.

Since Flash was completely free form to make anything you want, there was not the "generic" website look of today. Many websites built in Flash looked nothing like todays websites. You could build animated navigations and games directly into your site. Quite a few people went overboard.  

Creativity really peaked during this time on the web compared to today. People made animations in flash, music videos, games and Flash became a way to easily create and provided an easy path to publishing and sharing the content. 2004 to 2005 would bring the rise of MySpace which is where many developers today first encountered HTML and CSS. Filesharing with Napster, Kazaa and Limewire was at its peak. Most people couldn't download movies due to still being on dialup but broadband was starting to be widely adopted at the latter end of this period. Download speeds jumped from under 10 KB/s up to over a Megabyte.

During this time I resorted to Flash often when I couldn't build what I wanted with more rigid and limited HTML and CSS.

XMLHttpRequest

On the web today we click buttons and we get new page content without the page refreshing or the url changing. This wasn't always possible on the web. Microsoft first introduced this ability in 1999 within Internet Explorer. Firefox expanded on this to make the XMLHttpRequest. This was then adopted by other browsers and was in most browsers by 2005.

Unobtrusiveness

Javascript during this period was still pretty new and unknown. Besides having different browser implementations to deal with, many people also had Javascript disabled! It was pretty common at corporates as part of security to ensure Javascript did not run in the browser because it was untrusted.

This led to the policy of "unobtrusiveness". Developers at this time couldn't rely on it so we wanted to make it as out of sight as possible. If you didn't have it enabled, the website should still work. If it was turned on, the page would gain additional functionality. Javascript code started to be separated from HTML and moved into its own files.

Progressive Enhancement

Developing for web quickly devolved into endless amounts of spaghetti. With different implementations of Javascript and browser rendering, code became a hodgepodge of browser checks and duplicate, albeit slightly different written code.

This isn't to mean it was banned completely, but first you had to make your page work and look good without it. If you submitted data via AJAX in IE, you might have needed Javascript to make sure the form also worked without it in Safari.

This was named "progressive enhancement" in 2003. Javascript became an additive feature in browsers that supported it to enhance the experience.

XML

As I'm writing this, I've come to realize I mentioned XML a few times out of necessity. XMLHttpRequest, the X in AJAX etc. We don't deal a lot with XML in the modern era. JSON has largely crushed it as a way to format and exchange data. It was a subset of HTML that was pretty much HTML but tags you would make up yourself. This tag would then store the data.

JSON

This standard has taken over all my programming today. However it was only formalized and launched in 2002.

REST and SOAP

REST and SOAP are conventions for exchanging data with servers. You hear these terms with API's somewhat frequently. Both of these terms were pioneered in the late 90's and started to battle it out during this time.

It's important to note that both of these conventions focus around HTTP. However, they work in very different ways. REST relies on HTTP. There are some minor extensions like PUT and PATCH that lie in ambiguity even to this day.

SOAP was quite different. This always used a POST request with HTTP to make the request. The operations and methods needed to run were included in the body of the posted message.

While REST was entirely focused on the web, SOAP was intended to be delivered over other means than HTTP. It's a bit uncommon today using something other than HTTP to move a message across the internet. During this time it was common.

AJAX

AJAX (Asynchronous JavaScript and XML) was coined in 2005. At the end of the era all of this was wrapped into a term that we commonly use today.

Conclusion

By 2005, developers utilizing different browser vendors Javascript implementations were shouting to have something unified and work the same. Code complexity was high and browser vendors conceded that they needed to work towards unifying Javascript. Flash usage was at its peak and it was an attractive alternative if you wanted a dynamic website.

Show Comments