Internet on fire – The dawn of the Web

Before writing, the backhand amway on the browser history of Chrome dominance and the establishment of domestic browsers of the war.

The originator of the browser, NCSA Mosaic, was released in January 1993 (developed by the National Center for Supercomputing Applications in late 1992). Mosaic’s ability to display text and images at the same time made browsers much more interesting. At that time the popularity of the explosion of popularity. Mosaic was one of the sparks of the later dotcom boom. NCSA sold the business rights to Spyglass, which in turn licensed the technology to several companies, including Microsoft corp., to develop its own products based on Mosaic

Mark Andreessen, a central figure in the MOSAIC development, and Jim Clark, inventor of the geometry generator and founder of SGI and Healtheon, set up the MOSAIC Communication Corp., The company later changed its name to Netscape Communication Corp. in November 1994. Netscape communications hired many of the original Mosaic engineers, but didn’t use any of the code from the Web browser.

On October 13, 1994, Netscape Communications released Mosaic Netscape 0.9(Netscape Navigator, Netscape browser), and Netscape1.0 later this year, calling itself “Mozilla/1.0(Win3.1). Mozilla’s original mascot was a big green lizard. Netscape Navigator was a huge success, occupying 75% of the browser market within four months of its launch and becoming the default browser for a short period of time.

Browsers don’t really have the ability to interact with visitors. . Netscape desperately needed a web scripting language that would allow browsers to interact with web pages. Initially, its main purpose was to handle some form validation that was previously the responsibility of the server side. In the days when most users used modems to access the Internet, you would fill out a form and click submit. You would have to wait tens of seconds until the server would tell you that there was something wrong with…… It was definitely exciting to be able to do some basic validation on the client side. Netscape, a company at the forefront of technological innovation at the time, decided to start developing a client-side scripting language to handle this simple validation.

What language is a Web scripting language?

Netscape had two options. One was to take existing languages like Perl, Python, Tcl, Scheme, and so on, and allow them to be embedded directly into the web. Another is to invent a whole new language.

Both options have their pros and cons. The first option, which makes full use of existing code and programmer resources, is easier to popularize. The second option, in favor of developing a fully applicable language, is easier to implement.

Netscape’s management struggled to make up its mind about which option to take.

The birth of JavaScript

That’s when another big thing happened: In 1995, Sun officially launched Oak as Java (LiveScript changed its name to JavaScript the following year).

With Sun’s much-hyped promise that the language could “Write Once, Run Anywhere,” it seemed likely to be the future.

Netscape took the initiative and decided to form an alliance with Sun. Not only does it allow Java programs to run directly in the browser as applets; It even considered embedding Java directly into web pages as a scripting language, only to have to give up later on because it would make HTML pages too complex. In short, what happened was that the entire management of Netscape was a believer in the Java language, and Sun was completely involved in the web scripting language decisions.

In April 1995, Netscape hired 34-year-old Brendan Eich, the father of JavaScript.

Brendan Eich, whose primary focus and interest is functional programming, was recruited by Netscape to explore the possibility of using Scheme as a web scripting language. Brendan Eich himself felt the same way, expecting to work primarily with the Scheme language when he entered his new company.

Just a month later, in May 1995, Netscape decided that the web scripting language of the future would have to “look like Java enough,” but be simpler than Java so that non-professional web writers could quickly pick it up. This decision effectively excludes Perl, Python, Tcl, Scheme, and other non-object-oriented programming languages.

Brendan Eich was designated as the designer of this “Java lite” language. However, he had no interest in Java. It took him only 10 days to design the JavaScript for a company assignment. Although the language designer level is very NB, but no one can withstand the “tight time, heavy task”. Because the design time was too short, some of the details of the language were not carefully considered, resulting in a long time later, Javascript written programs are chaotic. Brendan Eich would never have used Java as a prototype for his Javascript design if it hadn’t been for a company decision. As a designer, he didn’t like his work at all:

“I hate Javascript more than I love it. It’s the product of a one-night stand between C and Self. Dr. Johnson, the eighteenth century English writer, put it well: ‘What is good in it is not original; what is original in it is not excellent. ‘The part that is good is not original, and the part that is original is not good.”

In his own account

In April 1995, after seven years at SiliconGraphics and three years at MicroUnity System Enineering, I arrived at my current company, Netscape. Netscape started looking for people a year ago to develop a scripting language that it wanted to use on web pages in browsers to make the web work. Java also took five years from First Person to Sun, and was refactored in 1994 to work on the Web. Netscape was the first to be certified for Java, so the question arose: Do we use Java directly, or do we use a language?

Some people advocate using Java. Java is good. It’s good for programmers to write components. But many more people just write scripts or copy other people’s scripts and change them. These people are not professional programmers and spend most of their time doing other things than typing code. Like webmasters, or some amateurs who just write scripts. If they want to write some code, they just want to hit the keyboard twice. In the end, we decided to develop a new language, which had to look like Java and be a scripting language.

Like all languages, it borrows a lot from other languages. It was first released with the Navegator2.0 beta in September 1995 under the name LiveScript. Then, on December 4th, the company changed its name to JavaScript when it announced a partnership with Sun.

JavaScript attracted a lot of developers because all people wanted was to take a step out of HTML and use a little bit of code to make the web move — make things move, react to user input, or change color; A window pops up; Or pop up a question and answer it before you can move on — HTML can’t do these things, you need a programming language that’s simple enough, but not as complicated as Java or C++.

Content building doesn’t have to be sophisticated. This is not some esoteric problem that only experts or pushy computer scientists can work on. This helps to create and share content in the process of cost savings have economic advantages. Just like Netscape did in network construction.

The Javascript language, launched in 1995, was actually a hybrid of two language styles — (simplified) functional + (simplified) object-oriented — decided by Brendan Eich (functional) and Netscape (object-oriented).

In summary, Brendan Eich’s design approach goes like this:

  1. Use the basic syntax of C language for reference;

  2. Data types and memory management borrowed from Java;

  3. Upgrade functions to “first class” status by borrowing from Scheme;

  4. Take a page from Self and use a prototype-based inheritance mechanism.

As a Java engineer, has also been abused by the microcontroller ten million times, but, the most annoying or JS. For example, write “Illustration of this in JS — Understanding the This pointer in javascript”.

There are two important concepts in object-oriented programming: One class, one is instantiated object, class is an abstract concept, use a metaphor of image expression, such as a mold, and instantiate the object is by this mould manufactured products, instantiation object is we need the real things, class and instantiate the object has a very close relationship, However, the function of the class is definitely not a substitute for the instantiated object in use, just like the relationship between the mold and the product that the mold makes, the two uses are different.

In fact, the javascript this pointer is logically an instantiated object, which is the same as the Java this pointer. However, the javascript this pointer is much more difficult to understand than the Java this pointer. I personally think there are three fundamental reasons for this:

Reason 1: Javascript is a functional programming language, and the odd thing is that it also has this pointer, which means that the functional programming language is also object-oriented. To be specific, a function in javascript is a higher-order function, and a higher-order function in a programming language can be passed as an object. Javascript functions can also be used as constructors. This constructor can create an instantiated object. As a result, the pointer to this changes constantly during the execution of the method, which is difficult to control.

Reason two: The global scope in javascript has a big effect on the this pointer. As we can see from the Java example above, the this pointer only takes effect when the new operator is used, but this in javascript takes effect without a new operation. This usually points to the global object window.

Reason 3: The call and apply operators in javascript can change what this refers to. This seems flexible, but it undermines our understanding of the meaning of this and makes it difficult to understand what this actually refers to when writing code

The rise of JavaScript

JavaScript 1.0 version of the language was first implemented on Netscape Navigator 2 in 1995, and was mainly used for client-side Web application development. Due to the timely introduction of relevant standards and the advantages of simple use and powerful implementation of the language itself, it became popular among Web developers.

For the web scripting language king of the name

JavaScript was originally called Mocha, then renamed LiveScript.

In 1996, Java was so hot that Netscape, a product manager, ordered the company to change its name to take advantage of the media hype surrounding Java. In order to “Javascript” like Java, I finally decided to name it Javascript. This leads many people to think that JavaScript is a low-level version of Java, but there is more to lei Feng’s relationship with Leifeng Pagoda. Historically, the Java name is related to the collaboration between Netscape and Sun. Netscape formed a development alliance with Sun, in which Netsacpe’s scripting language could be called JavaScript, and in exchange Netscape created the Java runtime environment in its popular browser. So Javascript was actually brought to market by netscape and Sun, and the language was called “Java+ Script, “and it wasn’t just a web scripting language that frees Java, it was really a matter of you and me. Be aware that LiveScript and Java have an adversarial relationship when it comes to client-side scripting, such as Java applets.

JavaScript is the king of romance

  • Java applets are special-purpose applications written in the Java language that are embedded directly into HTML pages, interpreted and executed by Java-enabled browsers, and perform specific functions that greatly improve the interactive and dynamic execution of Web pages. The page that contains the Applet application is called a Java-powered page.

    When a user accesses such a web page, if the client browser supports Java and does not disable the Java support option in the browser, the Applet is downloaded to the user’s computer and executed at a speed that is not limited by the network bandwidth. The user can better appreciate the effects of the Applet on the web page.

  • ScriptEase was probably born in 1992 when Nombas’ company developed an embedded scripting language called C-mine-minus (Cmm) (the latter part (MM) is said to sound too negative and the C is “scary”).

    The idea behind the Cmm is simple: a scripting language powerful enough to replace macro operations, while keeping enough similarities to C (and C ++) that developers can quickly learn it. The scripting language came bundled with a shareware program called CEnvi, which for the first time showed developers the power of the language.

  • VBScript(Microsoft Visual Basic Scripting Edition) is the latest addition to the Visual Basic family of programming languages, which enables flexible Scripting for a wider range of applications. These scripts include Web client scripts in Microsoft Internet Explorer and Web Server scripts in Microsoft Internet Infomation Server. VBScript is also a product launched by Microsoft, began to be mainly positioned in the client script, due to the rapid development of dynamic page technology, VBScript to the server, and ASP, IIS(Internet Infomation Server, Internet information service) closely combined, effectively promote the development of dynamic page technology.

    Microsoft’s JScript and VBScript script application in the server side, the implementation of the corresponding management authority, while Microsoft provides its access to the system API, make it closely combined with the system, such as access to the local database, and the results returned to the client browser, etc.

Perhaps because of the huge success of JavaScript 1.0, Netscape saw that the browser business was booming and its ambitions were growing, and it was looking to build an operating system. Microsoft, realizing the threat netscape Communications posed to its operating system and application market, immediately bought another browser company. On its basis developed Internet Explorer Netscape with Microsoft quarrel war needless to say, this is the middle of the Internet Explorer.

With the rapid development of computer technology and the rise of the Internet, Internet browser technology is on the rise, and Bill Gates believes that the future of the computer world will be determined by Windows technology, not browser technology. As a result, he just added a web browsing feature to the new Windows95, but has no plans to develop a browser technology.

For the next two years, Netscape focused on browser technology. Soon, along with NC, JAVA and other technical standards, a new system of software and hardware based on the Internet and the first time irrelevant to Microsoft formed. A group of Internet technology companies, led by Netscape, quickly emerged as a potential rival to Microsoft. An obvious fact is emerging: if Netscape gains a monopoly in the browser market, it has the potential and power to launch a new operating system to replace Microsoft’s Windows.

“Microsoft is wrong. The world of the future is not the PC, but the Internet.” Bill Gates quickly realized that he had made a mistake that would destroy Microsoft.

In 1997, Microsoft ended Netscape’s reign with the release of stable Internet Explorer 4.0, which it bundled with Windows

Rival Microsoft added a JavaScript implementation called JScript (different name to avoid infringement) to its Own Internet Explorer 3, and Microsoft used JScript1.0 to grab the client-side scripting market.

At this point in the market that means there are three different versions of JavaScript (the Web scripting language), IE’s JScript, Netscape’s JavaScript, and CEnvi in the ScriptEase. At that time, there were no standards to define the syntax and features of JavaScript. As the problems exposed by different versions become more and more serious, the normalization of JavaScript is finally on the agenda.

Normalization of JavaScript

In 1997, a proposal modeled on JavaScript1.1 was presented to the European Computer Manufactures Association (ECMA) who designated technical committee 39 to standardise it, TC39, a group of programmers from various companies and other companies interested in scripting languages, worked for several months to complete ECMA-262, which defined a standard for a new scripting language called ECMAScript. The following year, ISO/IEC (National Organization for Standardization and International Electrotechnical Commission) also adopted ECMAScript as a standard (ISO/IEC-16262).

ECMAScript

ECMAScript, as defined by ECMA-262, has no dependency on Web browsers. Web browsers are just one possible hosting environment for ECMAScript implementations. Ecma-262 defines only the basis of this language, from which it is possible to build more sophisticated scripting languages. Back to the host, it provides not only the basic JavaScript implementation, but also extensions to the language, such as DOM. For example, the JavaScript implementation:

While JavaScript and ECMAScript are often used to mean the same thing, JavaScript means a lot more than what ecMA-262 specifies. A complete JavaScript implementation should consist of three parts:

  • Core (ECMAScript)

  • Document Object Model (DOM)

  • Browser Object Model (BOM)

Other ECMAScript hosting environments include Node and Adobe Flash.

The ECMA-262 standard mainly specifies the following components of the language: 1. Syntax, 2. Type, 3. statement, 4. keyword, 5. reserved word, 6. operator, 7. object.

ECMAScript is a development standard

Technical Committee 39 (TC39) is the Committee that promotes the development of JavaScript, and its idioms come from the representative idioms of every major browser. Every decision can be made only if the majority of people agree with it and there is no strong opposition.

TC39 members shape the future of ECMAScript.

For a new feature to make its way into the ECMAScript specification, there are five phases:

  • Stage 0: Strawperson

    Anyone who is a TC39 member or contributor can submit an idea

  • Stage 1: Proposal

    This stage identifies a formal proposal

  • Stage 2: draft

    The first version of the specification, proposals that enter this phase are likely to become standards

  • Stage 3: Candidate

    Further improve the details of the proposal

  • Stage 4: Finished

    Indicates that it is ready to be added to the formal ECMAScript standard

Historical ECMAScript version

Nine editions of ECMA-262 have been published as of the date of publication. The historical version is as follows:

  1. June 1997: First edition

  2. June 1998: modified format to make it the same as ISO/IEC16262

  3. December 1999: Powerful regular expressions, better lexical scope chain handling, new control instructions, exception handling, more explicit error definitions, formatting of data output, and other changes

  4. December 2009: Added strict mode (” Use strict”). Modified vague concept in previous version. Added getters, setters, JSON and more complete reflection on object properties.

  5. June 2011: ECMAScript 5.1 is completely consistent with the international standard ISO/IEC 16262:2011.

  6. June 2015: ECMAScript 2015 (ES2015), the sixth edition, originally known as ECMAScript 6 (ES6), adds syntax for classes and modules. Other features include iterators, Python-style generators and generator expressions, arrow functions, binary data, statically typed arrays, Collections (maps, sets and weak maps), Promises, Reflections, and proxies. The original version of ECMAScript Harmony was also known as ES6 Harmony.

  7. June 2016: ECMAScript 2016 (ES2016), 7th edition, multiple new concepts and language features.

  8. June 2017: ECMAScript 2017 (ES2017), edition 8, with multiple new concepts and language features.

  9. June 2018: ECMAScript 2018 (ES2018), the 9th edition, includes asynchronous loops, generators, new regular expression features, and REST /spread syntax.

  10. June 2019: ECMAScript 2019 (ES2019), 10th edition.

The resources

  1. ECMAScript introduction to 6

  2. 15,000 words to summarize all the features of ES6

  3. MDN

  4. New feature of ES2018: Template strings without escaping sequences

  5. Regular expression lookbehind assertion

  6. Unicode property escapes

  7. Exnext proposal

  8. New features for ES7, ES8, ES9, and ES10

  9. Ecma TC39

  10. [ECMAScript] TC39 process

  11. The TC39 Process

  12. The Founders of the Internet: Brendan Eich and JavaScript

  13. The history of JavaScript

  14. Browser history of Chrome hegemon of the establishment and domestic browser of the separatist dogfight

  15. For a quick chat, what are ES3, ES4, ES5, and ES6



Reprint the home station article “ECMAScript evolution (1) : words Web scripting language JavaScript crowned king history”, please indicate the source: www.zhoulujun.cn/html/webfro…