My first contacts with Javascript date back to a distant era, when Netscape was the most popular browser on the Internet! I used a Sun server and studied a product called Netscape One, which came with a server-side scripting technology called LiveScript. It was also available in the browser, but it didn’t do much back then. The hot technologies were CGI and SSI. I was also interested in the novelty of the moment, PHP 3! If my memory doesn’t fail me, I’m talking about the period from 95 to 98.

Technologies like Java Applets never “caught on”, always considered too slow, too heavy. With Javascript, besides being slow, you couldn’t do much. Most tasks were limited to field validation and smaller tasks with strings and dates. Javascript games, just hangman and oldies. Back then I wrote CGI’s in C++ and remember the magic of learning to program in Perl.

Javascript was never a “serious” language until some years ago, when it became impossible to ignore. On the launch of the iPhone, many were shocked by Apple’s initial idea of web applications with Javascript… then they released native apps. This was already in 2007… but most cell phones had poor Internet browsers, many without Javascript. Today we see Javascript compilers, compressors, obfuscators and an infinite number of books. Javascript is installed on most computers around the world, including mobile phones and even embedded systems. You can even use Javascript to instrument your program written in Java or C++! It’s impossible to ignore the strength of Javascript. The final proof for me was a few weeks ago when I saw a small virtual machine, sufficiently complete to run the Linux kernel in Javascript, outside of games like Doom and various emulators, completely written or ported to Javascript!

The impression I have is the same as what happened in the 80’s, where to get speed you programmed in Assembly, but it was difficult and each micro had its own incompatible Assembly. This was evident in game programming. Even in magazines, programs were written partly in Basic, partly in Assembly. With time, it became practical to write in Pascal and C, compiled and much easier than Assembly. With Javascript, the same thing happens, when I start to see the amount of compilers that now generate code in Javascript, I have the same impression. Like writing large programs in Javascript is still difficult, various libraries and tools can be used to reduce this effort. One of these tools is CoffeeScript, which gives a clean syntax to Javascript, inspired by Python. It’s like those languages were doing the work that C and Pascal did before, and Javascript being the new universal Assembly, after all it’s supported by most micros and is multi-platform. I’m not saying that Javascript replaces Assembly, nothing of that. Just positioning the languages as a tool in a global application scenario.

Since everything is now on or for the Web, Javascript is unavoidable. The popularization of HTML 5 support in browsers only helps. In recent years, high-performance Javascript engines have become popular in Google Chrome, FireFox, Safari and even Internet Explorer! Canvas, WebGL, local databases, web sockets, web workers, all available in almost any browser via Javascript!