📜 ⬆️ ⬇️

History of Programming Languages: Jumble and JavaScript Consolidation

The possibilities of HTML documents developed gradually: at first everything was limited to the actual text with tags and images. Later it became possible to insert and play audio files and video clips. However, in addition to placing multimedia content on a web page, there was the problem of dynamic query processing and viewing control. There was not enough standard HTML tools to solve it.


When generating pages on the Web, a dilemma arises with the client-server architecture. Pages can be generated both on the client side and on the server side. In 1995, Netscape specialists created a page management mechanism on the client side, by developing a programming language javascript.

Thus, JavaScript is a client-side hypertext web page scripting control language. However, in reality, JavaScript is not only a client-side programming language. Liveware, the progenitor of JavaScript, is a Netscape server-side lookup tool. However, the most popular JavaScript provided a front-end.
')
The basic idea of ​​JavaScript is to change individual values ​​of HTML container attributes and display environment properties while the user is viewing the HTML page. At the same time to update the changes page reload is not required.

Netscape Communications Corporation Presents


Netscape Communications Corporation has been actively involved in the development of the world wide web. The latter obviously owes much to this company: among other things, Netscape has donated JavaScript to the web. Initially, the company managed to adequately enter into the struggle for primacy in the Internet industry due to the creation and free distribution (for use in the home) of the Netscape Navigator browser.

But in April 1995, Netscape hired Brandon Eich, who was given a special mission. His task was to implement the Scheme programming language (or something similar) in the Netscape Navigator browser.
Scheme is a functional programming language, one of the two most popular Lisp dialects these days (another popular dialect is Common Lisp).

However, the statement of the problem was, to put it mildly, not too accurate, Eich was transferred to the group responsible for server products, where he worked for a month, working on improving the HTTP protocol. In May, the developer was transferred back to the client-side team (browser), where he immediately began to develop the concept of a new programming language.

After a while, a scripting language called LiveScript appeared. This language was created to implement interactivity in HTML documents that were static before. LiveScript support was implemented in the first versions of the Netscape Navigator browser, and was very popular and successful.

In addition to Brendan Eich, Mark Andressen, co-founder of Netscape Communications, and Bill Joy, co-founder of Sun Microsystems, participated in the development of the new language. To have time to finish work on the language for the release of the browser, the company entered into a cooperation agreement. Their goal was to create a “language for gluing” the components of a web resource: images, plug-ins, Java applets, which would be convenient for web designers and programmers who do not have high qualifications.

As a result of the agreement between Netscape Communications and Sun Microsystems and the unification of LiveScript ideas with the Java structure, an environment called “Mocha” appeared, designed to develop network applications and, ultimately, to create dynamic web pages. The medium was released as open source software and was independent of the software platform used.

The project ended with the creation of specifications that were published by the two companies in December 1995 under the name JavaScript 1.0.

Netscape vs Microsoft vs standardization


The first browser to support JavaScript was Netscape Navigator 2.0. However, Microsoft quickly realized where the wind was blowing and developed its “JavaScript”, which was called JScript 1.0. Naturally, his support was implemented in Microsoft Internet Explorer 3.0 and Internet Information Server.

Despite the fact that JScript was formally an independent development of Microsoft, it turned out to be compatible with JavaScript 1.0 of Netscape. Moreover, a script written for one browser could most likely be executed on another browser.

Later, Netscape released JavaScript 1.1 for Netscape Navigator 3.0 and the Live Wire Web server. This version retains all the features of JavaScript 1.0 and adds many new features.

Microsoft also improved its own JScript language, but decided not to include all of the JavaScript 1.1 innovations. From this point on, browser incompatibility arose: when I tried to run scripts written in JavaScript 1.1, they were not recognized or led to errors when used in Microsoft products.

In order to make its version of the new language more popular, the company Netscape has released a description of JavaScript.



However, soon Netscape, Microsoft and other companies decided that it would be better to negotiate peacefully and develop a common standard. The European Computer Manufacturers Association (European Computer Manufacturing Association - ECMA) began work on it in November 1996. In July of next year, a new language was created, called ECMAScript.

In the meantime, work was on the standard, competitors did not lose time and released new versions of their own languages ​​- JavaScript 1.2 for the Netscape Navigator 4.0 browser, and JScript 2.0 for the Microsoft Internet Explorer 3.0 browser. Thus, the compatibility problems of the scripting languages ​​were further intensified: when finalizing these languages, the common standard (ECMA) was not taken into account.

The life of web developers has been greatly complicated. They not only had to memorize the features of each browser, but also create Web pages that could be viewed in both browsers.

Most of them were confident that the situation will never change and will only get worse. However, optimists hoped that, thanks to ECMA, browsers would become compatible again.
Competing companies stopped stubborn only to the release of the third edition of ECMA 262 (ECMAScript Edition 3) and released JavaScript 1.5 and JScript 5.5. These versions were almost 100% compatible with ECMAScript Edition 3.

After that, it became possible to write a JavaScript script that could work equally well in both browsers. In theory. However, the differences between the browsers still complicated this task.


Table 1.1. JavaScript support in Netscape browsers


Table 1.2. JavaScript support in Internet Explorer browsers

Nevertheless, JavaScript has found wide application not only among browser developers, but also in general with the creators of open source software.

According to Black Duck Software, in the development of open source software, the share of using JavaScript has grown. 36% of the projects, releases from August 2008 to August 2009, were written using JavaScript.

Javascript today


According to the TIOBE Index, based on data from the search engines Google, MSN, Yahoo !, Wikipedia and YouTube, in August 2016, JavaScript was in 7th place. A year ago, he occupied the 9th position.



80% of open source software is written in C, C ++, Java, Shell and JavaScript. At the same time, JavaScript is the only one of these languages ​​whose share of use has increased year by year (by more than 2 percent, if counted in lines of code).

JavaScript is the most popular programming language used to develop client-side web applications.

In addition, JavaScript is actively used in the following areas of development:

• Backend
• Mobile applications
• Desktop applications
• Embedded. Refrigerators / Clocks / Kettles / IoT

Currently, JavaScript is the most popular programming language with a well-developed ecosystem of OSS modules, which, unlike other existing alternatives, can truly be called universal: “write once, use everywhere” is an idea that Java creators dreamed of. And thanks to JavaScript, it became a reality, wrote Eric Elliot.

Javascript perspectives


There is no such language or technology that would be unambiguously recognized by the market as the best solution for developers in any field. Each option has its advantages and disadvantages.

The complexity of modern web solutions has long required significant revision. Therefore, developers paid much attention to new versions of the JavaScript standard - ECMAScript 6 and 7.

The 6th version of the standard (which, by the way, in response to the failed ES4 release is sometimes called ES6 Harmony) contains changes that will greatly facilitate the creation of complex solutions: classes, modules, collections, iterators, generators, proxies, typed arrays, promises, new methods and properties for standard objects and new syntactic capabilities and whatnot.

Unlike ECMAScript 6, the ECMAScript 7 specification contains relatively few changes that have evolved as part of the continuously updated version of the ECMAScript Next specification. The capabilities already supported by browsers were transferred to the standard from this draft specification, therefore ECMAScript 7 is immediately available in all main browsers and does not require additional time for implementation.

ECMAScript 7 includes changes related to the elimination of flaws and the introduction of refinements to ECMAScript 6.

JavaScript is still a promising programming language. About his prospects quite a lot has already been written on Habré:

1. Growth of using TypeScript in real projects, development of alternative projects and their mutual enrichment.

2. Development of tools for cross-platform development on JS, continuing to erase the boundaries between sites and applications.

3. The growth of smart TVs and consoles with the development of JavaScript, native development on JS on many modern platforms (but not all).

4. Development of API access to native features of the device from JavaScript, NUI adaptation in JS. (Will be delayed for several years.)

5. Newly revised versions of popular libraries, increasing the input threshold for creating complex frameworks, niche solutions based on ES6.

6. Adaptation of the web component by browsers, adoption of new technologies by developers of controls and various frameworks.

7. Application of package managers and build systems for JavaScript in a corporate and educational environment, integration into popular web development tools.

8. Development of graphic libraries on JS, exponential adaptation of new technologies by large or prominent market players (games and interactive content are the main drivers).

9. Unity 5 with WebGL rendering, development of 3d and gaming libraries, a potential breakthrough through social networks.

10. Cloud solutions for IoT based on Node.js, new pilot projects on the client side.

Source: https://habr.com/ru/post/309354/


All Articles