Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 2.57 KB

Growth.md

File metadata and controls

47 lines (38 loc) · 2.57 KB

My impressions on JS growth

It has been an outstanding experience to watch how JavaScript evolved from a small scripting language for the browser, into the current shape. Not only has the size of applications grown from thousands to millions lines of code, but also the range of applications has grown comparably.

Let us now see how JS moved from the animated HTML, or dynamic HTML how it was called, to the point when it crossed the boundary of the browser, or even crossed the boundary of the so called "front-end".

With the shift from desktop applications to web applications JavaScript had been the natural choice. In fact there were not many alternatives, who ever remembers them ? Every computer had the virtual machine, namely the browser, and those virtual machines run JS exclusively. This might not have been the perfect choice, as the whole web standard has been designed for documents and not applications. However the progress has been natural, bugs were being fixed, and things gradually added.

When the Node platform had been released, JavaScript moved to server platform, and had been available as the "back-end" technology from then on. JavaScript server frameworks begun to appear and shortly after complete solutions had been built. The platform also allowed JS to be used as a generic scripting language and a build tool, which might be overlooked. JavaScript supports the so called "shebang" and can be used for system scripts too.

In the mobile world programmers faced writing the browser applications and one application for each mobile device, which yielded three of four applications in total. The idea of having one tool was much too tempting. In fact techniques appeared to run the browser application as if it were a native app, but soon more advanced technologies arrived, like Cordova for example, that allowed to compile the browser application to a native app.

Desktop application have not been overlooked and soon it was also possible to write such application in JS too (thanks to the Electron project). In fact desktop has to be understood as multiple underlying widget libraries: like GTK, QT, Swing, and so on; So in the end JS + CSS can be used to replace it all together.

But JS in not JS only. WebAssembly has been developed to allow to run demanding routines in browsers. This strengthens the whole ecosystem as it closes the gap between web applications and native desktop applications.

So JavaScript now sits in every corner of the computer world, from mobile devices to web servers, strengthening the programmers base and allowing to truly write once only and run everywhere.