Douglas Crockford said:
“20 years ago, I was advocating for JavaScript. My story was that JavaScript is a much better language than anybody knows and that if we use it properly, we can do amazing things about it and it can change the world. And in fact, that happened. But now my evangel is that we should stop using JavaScript, that it has so many congenital defects. It really is a smelly language. There’s just a lot of crap in it. And it still, maybe for its field of application, the best language in the world for doing that kind of stuff. But that’s not good enough. We should be moving on to the next generation of languages. It used to be that we’d get a new computer languages about every generation. I started with Fortran and then C and C++ and Java and JavaScript, and so on. And then it kind of stopped. There are still people developing languages, but nobody cares. One person can make a programming language a really good one, but you can’t get adoption for it. There are lots of terrible mistakes in the way that the web works, in the way our operating systems work, and we can’t get new ones. We’re just stuck with this crap, and they keep piling new features on everything. And the new feature is always great, new problems. And it doesn’t have to be like that. We could be using really clean operating systems with really clean languages and really clean runtimes, and doing all of this stuff in a much more reliable way, but we don’t seem to want to do that. I’ve done JavaScript for a generation. It’s time for the next thing. I don’t think that should be a considered a radical point of view. I think it should be a normal evolutionary, uh, view.”
These were the exact words of Douglas Crockford, an American computer programmer who is involved in the development of the JavaScript language.
Introduction to JavaScript
JavaScript, commonly known as JS, is a vital dynamic programming language in today’s web development landscape. This versatile scripting language enables web developers to craft engaging and interactive user experiences on various platforms. Since its inception in 1995, JavaScript has rapidly advanced to become a fundamental element of web development by enriching web pages with dynamic features, interactive components, and smooth functionality.
History
The original aim was to create a “user-friendly language” for enabling individuals without programming skills to build dynamic and interactive websites. Following this objective, Netscape management, the company behind JavaScript’s creation, ultimately chose Eich to develop a new language that resembled Java in syntax rather than Scheme or other scripting languages at the time. While the initial language and its interpreter were named LiveScript upon their debut as part of a Navigator beta version in September 1995, the official release in December saw it being rebranded as JavaScript.
Adoption by Microsoft
Microsoft introduced Internet Explorer in 1995, sparking a rivalry with Netscape. In the realm of JavaScript, Microsoft took cues from the Navigator interpreter and developed its own version, known as JScript.
The initial version of JScript was rolled out by Microsoft in 1996, accompanied by support for CSS and enhancements to HTML. These adaptations differed significantly from the features found in Navigator. This variance posed challenges for developers striving to optimize their websites for both browsers, leading to the widespread use of “best viewed in Netscape” and “best viewed in Internet Explorer” badges for a number of years.
The Rise of JScript
In November 1996, Netscape presented JavaScript to Ecma International as a basis for a standard that all browser manufacturers could adopt. This led to the official publication of the initial ECMAScript language specifications in June 1997.
The establishment of standards continued over several years, resulting in the release of ECMAScript 2 in June 1998 and ECMAScript 3 in December 1999. Development work on ECMAScript 4 commenced in the year 2000.
At the same time, Microsoft solidified its dominant position within the browser market. By the early 2000s, Internet Explorer held a staggering market share of around 95%. Consequently, JScript became widely accepted as the standard for client-side scripting on the Web.
Initially engaged in the standardization process and incorporating certain proposals into its JScript language, Microsoft eventually ceased collaboration with Ecma efforts. This ultimately led to ECMAScript 4 being put on hold.
Growth and standardization
During the era when Internet Explorer was dominant in the early 2000s, there was a lack of progress in client side scripting. The situation began to shift in 2004 with the introduction of Firefox, which emerged as the successor to Netscape. Firefox gained popularity quickly, making a significant impact on Internet Explorer’s market share.
In 2005, Mozilla became a part of ECMA International and initiated work on the ECMAScript for XML (E4X) standard. This collaboration led to joint efforts between Mozilla and Macromedia (later acquired by Adobe Systems) in integrating E4X into their ActionScript 3 language, which was influenced by an early version of ECMAScript 4. The objective was to establish ActionScript 3 as the new ECMAScript standard. As part of this initiative, Adobe Systems introduced the Tamarin implementation as an open source project. However, due to differences between Tamarin, ActionScript 3, and traditional client side scripting practices and a lack of support from Microsoft, ECMAScript 4 did not come into fruition.
Simultaneously, significant advancements were taking place within open-source communities unrelated to ECMA’s activities. In 2005, Jesse James Garrett published a white paper introducing “Ajax” and outlining a range of technologies. With JavaScript at its core. That enabled developers to create web applications capable of loading data without requiring full page reloads.
The emergence of a new era in JavaScript was ignited, led by collaborative open-source projects and the communities that sprang up around them. Numerous fresh libraries came into existence, such as jQuery, Prototype, Dojo Toolkit and MooTools.
Google introduced its Chrome browser in 2008, featuring the V8 JavaScript engine known for its speed surpassing that of its competitors. The groundbreaking innovation was the implementation of just-in-time compilation (JIT), prompting other browser developers to revamp their engines to incorporate JIT technology.
In July 2008, representatives from various parties gathered for a conference in Oslo. This meeting eventually led to an agreement reached in early 2009 to consolidate all relevant efforts and propel the language forward. The outcome of this collaboration was the release of the ECMAScript 5 standard in December 2009.
Reaching maturity
Work on enhancing the language persisted for numerous years, resulting in a vast array of updates and improvements that were officially documented with the release of ECMAScript 6 in 2015.
The inception of Node.js by Ryan Dahl in 2009 triggered a notable surge in the utilization of JavaScript beyond web browsers. Node blends the V8 engine, an event loop, and I/O APIs to establish an independent JavaScript runtime environment. By 2018, Node had garnered widespread adoption among developers, with npm boasting the largest collection of modules among all package managers worldwide.
The ECMAScript draft specification is presently managed transparently on GitHub, with new editions released through regular annual snapshots. Any potential modifications to the language undergo a thorough proposal process for evaluation.
The existing JavaScript landscape encompasses numerous libraries and frameworks, established coding conventions, and extensive use of JavaScript beyond web browsers. Additionally, given the prevalence of single-page applications and other JavaScript-intensive websites, various transpilers have emerged to facilitate development processes.
Examples of scripted behavior
- Loading new web page content without reloading the page, via Ajax or a WebSocket. For example, users of social media can send and receive messages without leaving the current page.
- Web page animations, such as fading objects in and out, resizing, and moving them.
- Playing browser games.
- Controlling the playback of streaming media.
- Generating pop-up ads or alert boxes.
- Validating input values of a web form before the data is sent to a web server.
- Logging data about the user’s behavior then sending it to a server. The website owner can use this data for analytics, ad tracking, and personalization.
- Redirecting a user to another page.
- Storing and retrieving data on the user’s device via the storage or IndexedDB standards.
Web libraries and frameworks
By 2012, over 80% of websites used a third-party JavaScript library or web framework for their client-side scripting. Some of them are:
React
React, also referred to as React.js or ReactJS, is a freely available front-end JavaScript library used for constructing user interfaces through components. The maintenance of React is overseen by Meta (previously known as Facebook), along with a community of independent developers and businesses.
With React, one can create single page applications, mobile apps, or server-rendered applications using frameworks like Next.js. Since React focuses solely on the user interface and rendering components onto the Document Object Model (DOM), React applications often integrate additional libraries for routing and other client-side functionalities. A notable benefit of using React is its ability to only update those portions of the page that have changed, which helps in avoiding unnecessary updates to unchanged DOM elements.
Angular
Angular, also known as “Angular 2+,” is a web application framework based on TypeScript. It is open source and maintained by the Angular Team at Google, along with contributions from individuals and companies. Angular represents a full redesign by the team behind the original AngularJS framework.
jQuery
Back in 2012, jQuery reigned supreme as the go-to client-side library, with a staggering usage rate of over 75% among websites. Although it remains widely utilized, its dominance has since been overshadowed by the emergence of more modern libraries and frameworks.
Conclusion
JS is like the Real Estate of the Software Engineering world. You require a lot of funds to buy an asset or property, like the way you need an extensive fundamental knowledge of JavaScript to build software like Notion. Even Notion, the productivity app, uses Next JS, Node JS, and React with other external technologies related to JS.
But once you get started, the long-term appreciation and benefits those properties or JS skills will bring you that you will regret not taking it. New frameworks will emerge, and some will become non-existent, but JS will always remain stable.
As long as the Web and Web Browsers exist, JavaScript will breathe. Even with frameworks and layers/subsets like TypeScript, everything is transpiled to JavaScript. As long as we keep using the Web, JavaScript will stay.
JavaScript is not dying and will not die anytime soon, as it is backed by a very large community of developers as well as companies.