My Take on Evolution of JavaScript
This blog covers evolution of javascript and big question why behind every evolution?
Do you know what is static page, dynamic page in web-development? Read this before.
Javascript was initially made to make websites dynamic, basically which can respond to user interaction and not just displaying information. How to do do that? - A Run time environment was invented which can execute code in browser.
Later some problems were faced by developers like link and hence Node.Js evolved.
what is NodeJS? Basically its a run time environment to run javascript code outside of browser. i.e., on systems.
More simply, javascript code which used to run on browser now can run on your system just like any other programming language(java,c++,python etc.) and now through javascript you can access files, and interact with POSIX API’s of system.
Just like NodeJs is runtime environment for systems, V8 is runtime for chrome browser, similarly spider-monkey for firefox. One more runtime environment for system is Deno was developed by Ryan Dahl, who created Node, however deno is runtime environment for both Javascript and Typescript.
Why deno? How typescipt got executed earlier? Typescript previously used to got executed with the help Babel.
Now, since we can write code for both back-end and client-side in javascript more evolution took place on back-end side, more recently that is TypeScript.
Again question arises why we need typescript? and what is typescript?
JavaScripts still has lot of bottle-neck for full server-side development. Typescript solves some of them. Since server side codes are huge, we needed something more of static-typing rather than dynamic typed language so that more of errors can be caught at compile time rather than at run-time. Hence typescript evolved where we can declare variable types in javascript. Recent study also shows that through typescript 15% of errors were caught at compile-time.
Similarly, JavaScript evolved a lot on front-end side as well, some of them famous names are ReactJs,AngularJS,VueJs and all them work on same principle of Breaking UI into components and dealing with them separately with little different approaches to all of them.
That’s about web/app development!
what about stand-alone application development? Well Javascript has a language for that too “ElectronJS”! A single cross platform development language to develop applications.
Another famous cross platform development language for mobile phones is React-native for iphone,android.
Quick-facts -> VSCode, Spotify, MSTeams and many other stand-alone applications for windows, mac, linux are developed using ELectronJS.