The Evolution of JavaScript

A journey through the Evolution of JavaScript

A journey through the Evolution of JavaScript

At one time, JavaScript was the ugly stepchild among programming languages. Web authors would throw in bits of it to make their sites do interesting things, but no one thought of it as a way to do "real" programming. Since then, though, it's developed into a language with a lot of power and some very modern features. Learning to code in it properly requires some serious effort, but it opens up a vast range of career opportunities.

Brendan Eich tossed off the original version of JavaScript in 1995 as a ten-day project. It was first called Mocha, then LiveScript; then Netscape changed the name to JavaScript, starting a confusion with Java that's never completely gone away. If you don't know Java, you're actually ahead of the game, since you can start fresh when you're learning to code.

Today, it's more strictly correct to call it ECMAScript, for the European Computer Manufacturers' Association. ECMA has maintained the language since 1997. Microsoft ran off in its own incompatible direction, and for years there was no universally usable version.

That period is behind us, and today's JavaScript or ECMAScript has some exciting features:

  • DOM integration. Today's language is tightly integrated with the HTML Document Object Model (DOM), so it can manipulate every element of a page and deliver highly dynamic content.
  • Ajax. JavaScript can make asynchronous requests, known as Ajax calls, to the server to retrieve content and make changes without loading a new page.
  • Prototypes. Every object in JavaScript has a prototype, an underlying model that can provide the basis for other objects. This gives the language object-oriented capabilities, which let the programmer organize concepts from the general to the specific. Many people consider its approach cleaner than the one that C++ and Java take.
  • Functional programming. A function can be treated as an object. Used together with prototypes, this is a very powerful feature. It provides a simple and direct way of setting up asynchronous callbacks.

Code libraries enrich the language and save effort. There are lots of them, more than any one programmer is expected to know well. Here are a few of the best known:

  • JQuery makes manipulating the DOM easier, and it's so widely used that many people think of it as part of JavaScript. Every JavaScript developer needs to know its basics.
  • AngularJS is a Web application framework that operates on the HTML page as a JavaScript object. Specialized tag attributes direct its operation.
  • Node.js is a runtime environment for building applications. It can provide the basis for a Web server and allows running custom JavaScript on the server. It can be used together with a standard server, such as Apache or Nginx. It comes with its own package manager for downloading and updating well-known code packages. That saves a lot of effort in finding, downloading, and installing third-party code.
  • Express.js is a Web application framework for Node.js, and it provides the typical features of a Web server. The two are generally used together in server environments. The widely used MEAN stack consists of Angular, Node, and Express together with MongoDB for NoSQL databases.

Like any language that's been around for a long time, JavaScript has complex and quirky features. It's no longer a language where you can just sit down and write bits of code as you go. It provides so many ways to do things that you need to develop your own style of coding; at the same time, you need to know enough about that language that code using a different style won't baffle you.

Though it's complex, JavaScript is a reasonable choice as a first programming language to learn. It runs everywhere, there's lots of support for it, and it introduces you to modern programming concepts. You might hear disparaging concepts about it from people who haven't kept up with its progress, but it's worth some serious study, both in itself and as a stepping stone to other languages.

DaVinci Coders is a programming school providing the coding bootcamps for students to learn software development and get a job. We love beginners who are just learning to code!. To find out more, please contact us.

Jan Wagner
