Giter VIP home page Giter VIP logo

jshistory-vn's Introduction

JavaScript Twenty Years

Original introduction

This book is jointly written by Brendan Eich, the father of JavaScript, and Allen Wirfs-Brock, the lead author of the ES6 specification. It records and explains in detail the evolution of the JavaScript language over a total of 20 years from the birth of the language in 1995 to the formulation of the ES6 specification in 2015. The book not only explains the evolution of a large number of language technical details, but also reviews the historical successes and failures in specification formulation and standard games at a higher level. It is a story about how humans promote industrial development through competition and cooperation in business and technology. .

The story is quite long and complicated. The full text is divided into four parts, each corresponding to a major stage in the evolution of JavaScript. There is also a brief interlude between each section to introduce how developers at that time viewed and used JavaScript.

These four parts are as follows:

  1. The Birth of the Language (The Origins of JavaScript), introduces the creation and early development of JavaScript, including the language’s birth background, naming method, initial features and its design philosophy wait. This section also traces its initial evolution at Netscape and other companies, such as Microsoft's JScript.
  2. Creating a Standard (Creating a Standard) introduces the process from JavaScript to ECMAScript standard. This mainly covers the initiation of JavaScript standardization work, the creation of specifications, relevant contributors, and decision-making methods.
  3. Failed Reformations (Failed Reformations), which introduces the failed attempts of the ECMAScript committee to modify the language after Eich left, lacking a "benevolent dictator". This mainly involves committee splits, two rounds of investment in ES4, and the origins of Flash and ActionScript in it.
  4. Carry on the past and open up the future (Modernizing JavaScript), introduces the story behind the two successful standards of ES5 in 2009 and ES6 in 2015, mainly including the goals of ES5 and ES6, An introduction and review of major fundamental changes and important new features.

Table of contents

  • The birth of language
  • Interlude: Feng Ping was murdered
  • Creation Standard
  • [Interlude: JavaScript does not require Java](./part-2-vn.md#Interlude javascript-java is not required)
    • Preacher
    • [Rich Internet Applications and AJAX](./part-2-vn.md#Rich Internet Applications and-ajax)
    • [Browser Game Theory](./part-2-vn.md#Browser Game Theory)
  • Reform failed
    • [Dissatisfied with success](./part-3-vn.md#Dissatisfied with success)
    • [First attempt at ES4](./part-3-vn.md#First attempt at -es4-)
    • [Another dead end](./part-3-vn.md#Another dead end)
    • Flash and ActionScript
    • [Second attempt at ES4](./part-3-vn.md#Second attempt at -es4-)
  • [Interlude: Take JavaScript Seriously](./part-3-vn.md#Interlude Take JavaScript Seriously-javascript)
    • [JavaScript Performance Revolution](./part-3-vn.md#javascript-Performance Revolution)
    • CommonJS and Node.js
    • [Javascript that becomes a universal runtime for browsers](./part-3-vn.md#-javascript that becomes a universal runtime for browsers)
  • Carry on the past and open up the future
    • Develop ES3.1/ES5
      • [ES5 Technical Design](./part-4-vn.md#es5-Technical Design)
        • [Strict Mode](./part-4-vn.md#strict mode)
        • [Getter, Setter and object meta-operations](./part-4-vn.md#gettersetter-and object meta-operations)
        • [Integrity and security characteristics of objects](./part-4-vn.md#Integrity and security characteristics of objects)
        • [Removal of Activation Object](./part-4-vn.md#Removal of activation-object)
        • Other ES5 features
      • [Implementation and Testing](./part-4-vn.md#Implementation and Testing 86)
    • From Harmony to ECMAScript 2015
      • [Start investing in Harmony](./part-4-vn.md#Start investing in Harmony)
        • [Strawman and target](./part-4-vn.md#strawman and target)
        • [Advocate Model](./part-4-vn.md#Advocate Model)
        • [Select feature set](./part-4-vn.md#Select feature set)
        • [Start writing specifications](./part-4-vn.md#Start writing specifications)
        • One JavaScript
        • [Brendan's Dream](./part-4-vn.md#brendan-'s dream)
      • [Rebuild specification](./part-4-vn.md#Rebuild specification)
        • [Reorganization specification structure](./part-4-vn.md#Reorganization specification structure)
        • [New term](./part-4-vn.md#New term)
        • [New semantic category](./part-4-vn.md#New semantic category)
      • [ES2015 Language Features](./part-4-vn.md#es2015-Language Features)
        • [Realms, Jobs, Proxies and Meta Object Programming (MOP)](./part-4-vn.md#realmsjobsproxies-and Meta Object Programming mop)
        • [Block-level declaration scope](./part-4-vn.md#Block-level declaration scope)
        • Class
        • Module
        • [arrow function](./part-4-vn.md#arrow function)
        • [Other features](./part-4-vn.md#Other features)
        • [Deferred and abandoned features](./part-4-vn.md#Deferred and abandoned features)
      • Harmony translator
      • Complete ECMAScript 2015
  • Summary
  • Acknowledgments
  • Appendices
    • Character
    • [Appendice Organization](./appendices.md#Appendice Organization)
    • Glossary
    • [Abbreviations and Acronyms](./appendices.md#Abbreviations and Acronyms)
    • Timeline
      • [Part 1: Birth of Language](./appendices.md#Part 1: Birth of Language)
      • [Part 2: Creating Standards](./appendices.md#Part 2: Creating Standards)
      • [Part 3: Reform Failure](./appendices.md#The third part of the reform failed)
      • [Part 4: Carry on the past and open up the future](./appendices.md#Part 4: Carry on the past and open up the future)
    • [JavaScript Release Announcement of December 4, 1995](./appendices.md#javascript-release-announcement of December 4, 1995)
  • Notes
  • References

jshistory-vn's People

Contributors

hunghg255 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.