An ex-coworker and colleague of mine invited me recently to a Typescript meetup at his company, after hours.
I didn’t really have much going on that evening and decided it might be worth attending, so I agreed.
I clearly remember the introduction of Mosaic, in a computer lab at my college, during my junior year. I remember hearing someone at my college, mentioning the word “Mosaic”, and describing it as a new way of querying information from a computer … I even remember her mentioning it was a groundbreaking new product.
But I was already pretty jaded about technology, even back then. I grew up on 8 bit Apple IIs, Commodore 64s and TRS-80 computers as a kid. I felt very comfortable being around computers and technology at a young age.
But when I launched Mosaic for the very first time in our college’s computer lab, on one of their Macintosh computers, I was hooked. When I started clicking around on various hyperlinks, which took me to different websites and web pages (the Internet was a much SMALLER place back then, but even so…), and I was completely blown away.
We take the internet for granted today, but I’m actually appreciative of the fact I’m part of a generation that knew what life was like BEFORE the advent of the Internet.
Sure, computers were around for many years before the Internet, but they weren’t very CONNECTED to each other. Oh sure, they were connected, but at a very primitive and slow level.
When Mosaic came out, it suddenly was a snap to hop from one computer to another, even ones thousands and thousands of miles away. All it took was a mouse click, and BOOM! You could “surf” the internet, much in the way one could “channel surf” your television and see what’s on.
But back then, websites were very “static”. Meaning that early web pages and websites were mostly just static documents and images in electronic format. You would fire up Mosaic, type in an internet address, and your browser would start downloading the html files and images from the web server from that internet address.
And that was it. There wasn’t much interaction you, as the web user, could do, once you were there. Oh sure, there were HTML forms where you could fill out information, much like a paper application form, but that was about the extent of interactivity around that time.
It wasn’t until an up and coming company called Netscape, headed by Marc Andressen, created a commercial version web browser (and yes, Netscape actually charged MONEY for the browser, as their primary profit driver…when was the last time anyone remembers PAYING for an internet browser??).
Say you have a web page that contains an online registration form for potential customers to sign up for some new upcoming product release.
The web form asks for information such as the person’s full name, their mailing address, phone number and e-mail address and other various pieces of information needed from the potential customer.
So what would happen if the potential customer forgot to fill out their phone number or some other critical piece of information needed from the form?
The potential customer would need to wait until the full round trip to the web server and back to the client browser would need to complete, before the customer could fill out the missing information and resubmit the form back to the web server with the additional required information they forgot in the original submission to the web server.
Sure, this works, but it’s a very time consuming process, waiting for the registration form information to reach the web server, get processed, and then returned back to the client browser.
What if you could VALIDATE all the information the online registration form needed BEFORE it gets submitted to the web server?
Web developers at the time, have already suffered through the same type of turf war between the same two companies, Microsoft and Netscape with the browser wars and their competing versions of HTML.
It represented a new way of making web based applications act more like traditional desktop based computer applications that require you to install something directly to your computer, such as a word processor application like Microsoft Word.
One of the first things you notice while using a plain, static HTML website, is that anytime you want to navigate around, such as by clicking hyperlinks within a web page, you are making a new full round trip to the web server that is hosting that website.
You see the web browser make a full page “refresh” which makes everything in the browser temporarily disappear while the browser waits for a new response from the web server to serve up the page again.
This is a very inefficient way to navigate around a website. It’s also very distracting to the end user and a very unpleasant user experience.
What AJAX allows you to do is to update only the portions of a web page that need to change, not the whole page. No longer does the user have to suffer and wait while the browser waits for a full page refresh, and you have a much smoother and enjoyable user experience that feels much more like a traditional desktop application.
Anyone who uses web applications like Google Maps and Google’s Gmail system, are taking advantage of AJAX driven applications. Once the browsers loads in Google Maps or GMail for the first time (which DOES take a full round trip to the web server, but only ONCE), you’ll quickly notice that the browser never has to do a full refresh again.
As you move around in Google Maps, you quickly notice only the portions of the map that have to change, will change. The same goes for GMail.
With the power of AJAX, suddenly web applications jumped in the caliber of quality of desktop class applications.
Up to this time, a typical web application consisted of two major layers:
- The back end layer containing some programming language/framework like Java, C#, perl, ruby, etc.
No longer does a web developer have to worry about learning two different programming languages to create a full stack web application.
The payoff will be possessing a long term, career spanning skill that won’t be going away any time soon.