Brief History of JavaScript!!

in #javascript6 years ago (edited)

Hi there!! Welcome to my article on a "Brief History of JavaScript". I would like to take you through a journey where we analyze JavaScript from its genesis to what it is today through the different phases.

Let's get started!

Background
The world of web application development prior to 2010 had many avenues like C++, .NET, Java, JavaScript, Pearl, PHP, Python which includes the less popular Haskell, Lua, Scala, ColdFusion Markup Language, D, Ruby etc. Of them all, JavaScript was not considered a major game changer. All old time developers would agree with me that JavaScript had very little role to play in real time applications and its scope was limited to client side validations of controls. This was mainly to avoid round trips to the server to detect simple and easily avoidable errors like numeric only fields, field lengths, formats etc. Nobody even thought that JavaScript would become the basis for a full-fledged development framework.

Genesis of Javascript
courtesy: https://bit.ly/2s2yuqz

JavaScript has been around since 1995. It was developed under the name Mocha and was initially named LiveScript. Later it was renamed to JavaScript. It has grown over the years and has gone through multiple transformations. Through the years it has been standardized by ECMA International in ECMA-262 and ISO/IEC 16262. Apart from being used for client side scripting, JavaScript was used for server side implementation also with the introduction of JScript, a Microsoft's dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer. This laid the foundation for JavaScript to enter into the server side implementation.

IIFE

Since a declared variable in JavaScript has Global scope within the browser memory, building larger application with multiple modules having unique functionality was difficult. This was because a variable used within one function could overwrite the value of another variable with the same name inside a different function. This lead to the implementation of Immediately Invoked Function Expressions (IIFEs), which modularized a block of code inside it and caused the complier to invoke it immediately.

AJAX
courtesy: https://bit.ly/2xbIXoJ

There was no way to make Service calls to fetch data without refreshing the page for new data retrieval. In 2005 a gentleman named Jesse James Garrett released a white paper in which he coined the term AJAX, and described a set of technologies, of which JavaScript was the backbone, used to create web applications where data can be loaded in the background, avoiding the need for full page reloads and leading to more dynamic applications. This resulted in a renaissance period of JavaScript usage spearheaded by open source libraries and the communities that formed around them, with libraries such as Prototype, jQuery, Dojo Toolkit, MooTools, and others being released.

SPAs
courtesy: https://bit.ly/2KQZsIy

Typically, almost all web applications in the past were developed in such a way that screen load followed the following pattern. "View" first => "Model & Controller" later. Say for example if you open a site, (taking the case of asp.net application) the aspx page which carries the controls and JavaScript references is loaded from the server first and then the aspx.cs page loads subsequently. On Page load event of the aspx page, the required primary functionality needs to be triggered for the application to behave as expected. User experience on moving between pages was based on the speed and latency of user's internet provider. This lead to the development of Single Page Applications (SPAs). The concept behind single page applications is that the Application will have a single page, like Index.HTML, which will be the only page that remains static. All the other contents of the page will be components that could be plugged-in into a placeholder within the Index.HTML or within one of its components. As in our previous example, logic and UI for Login page and Home pages would be bundled into individual entities/components and plugged in into the Index.HTML as and when required. Not to mention it had its own challenges and issues to cope with. That is where Google's brain child AngularJS and Angular come into picture. I will come up with another article for Angular as it a vast topic in itself.

Server-Side innovation
courtesy: https://bit.ly/2IN8tlt

The year 2009 saw the introduction of Node.js, an open-source, cross-platform, JavaScript run-time environment that executes JavaScript code server-side. This could produce dynamic web page content before the page is sent to the user's web browser. With Node letting developers use JavaScript for server-side scripting as well, it has brought in a "Java everywhere" paradigm wherein the server side and client side development need not be done with different languages anymore.

Conclusion
JavaScript has come a long way from being a humble validation scripting language to a full-fledged application development framework. It has been a fun ride watching it mature and blossom into a full-fledged ecosystem by itself. It has transformed my career. Do you feel the same as well? Share your thoughts…

Sort:  

Wonderful article. I'm sure you will be of great value to this community. I'm hoping to see more contributions from you.

Thanks Bala...

Congratulations @rajivv203! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your Board of Honor.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last announcement from @steemitboard!

Do you like SteemitBoard's project? Vote for its witness and get one more award!

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by rajivv203 from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.