JavaScript

Past, Present and Future

 

Madhavrao Pachupate 

 

Past

History

1994 - April

 

Marc Andersson and Jim Clarks forms a company "Mossaic Communication Corporation" which later was renamed as Netscape later on. 

1

Objective

 

Build a product like Ninetendo. They recruited people from SGI and NCSA Mosaic  

1

1994 - October (13)

 

Released first product "Mosaic Netscap 0.9" web browser. Within four months, it captured three fourth of the browser market. It was later renamed as "Netscape Navigator" to avoid conflict with NCSA which had browser named "Mosaic"

1

Guess the internal code name of the Project "Netscape Navigator" 

 

"Mozilla" - Mosaic Killer

 

Aim of project was to displace Mosaic as number one Browser

 

1995 - April

 

Brendan Eich joined Netscape to work on server side product

 

1995 - May

 

Brendan Eich was moved to Browser project. There was heavy pressure from Sun to support Java in Netscape Browser. Brendan helps Netscape decide Java is not the language of the Web.

 

Why Not Java?

 
  • Too Complex
  • Constantly running "javac"
  • Always get main method on a class
  • Not for casual, amateur programmer
  • Needed something like VB
  • Meant for people who were learning programming for the first time
 

Inspiration for JavaScript

 
  • C - Syntax 

  • Java - primitive values vs Object

  • Scheme and AWK - First class function

  • Self - prototypal inheritance

  • Perl and Python - strings, array and regular expression

 

Language was defined in 10 days

 

1995 - September

JavaScript developed under code name "Mocha" was first released under the name "LiveScript". Why "LiveScript" ?, because Netscape had a server product named "LiveWire" and so marketing team wanted name under the same brand. Also, SUN had copyright on the word "Java" and it allowed Netscape to rename "LiveScript" to "JavaScript" when it was released with Netscape 2.0B.

1995 - December

 

Netscape introduced JavaScript as a server side language in its product Netscape Enterprise Server

 

1996 - July

 

Microsoft reverse engineered JavaScript and created JScript which was released with IE 3.0. IE 3.0 was also first IE which supported CSS and various other extensions for HTML. Microsoft created problem by introducing specs very different from one of Netscape - making it difficult to develop cross browser website.

 

1996 - December

 

Netscape submitted JavaScript to ECMA International for consideration as a industry standards, and subsequent work resulted in standardized version named ECMAScript

 

1997 - June

 

ECMA Internationl published first version of ECMA-262 Specification - ECMAScript 1.0

 

1998 - June

 

ECMA Internation published second version of ECMA-262 Specification to adhere to ISO/IEC 16262 standard - ECMAScript 2.0

 

1999 - December

 

Third edition of ECMA-262 specification was published - ECMAScript 3.0

 

Fourth Edition was never published

 

2009 - December

 

Fifth edition of ECMA-262 specification was published - ECMAScript 5.0

 

2015 - June

 

Sixth edition of ECMA-262 specification was published - ECMAScript 6.0

1

History of Mozilla

 
  • Mozilla
  • Mozilla Foundation
  • Mozilla Corporation
 

Mozilla

 

Mozilla is a free software community formed in 1998, by members of Netscape.

 

Mozilla Foundation

 

Is a non-profit organization that exists to support and collectively lead open source Mozilla project in year 2003

 

Mozilla Corporation

 

Established in 2005, to handle revenue related activities of Mozilla Foundation

 

Where is ES 4.0?

 

Harmony vs ES.Next vs ES 6.0

 

Present

Features

Imperative and Structured

 
  • Control Statement
    • if, if .. else ..
    • while ..
    • do.. while
    • for each
    • for in
    • switch
  • scoping (function)
  • expression & statements
 

Dynamic

 
  • Dynamic Typing (Duck Typing)
  • Object based (associative array)
  • Runtime evaluation (eval)
1

Functional

 
  • Function as a First Class Citizen
  • Lexical Closure
  • Anonymous Function
1

Prototype based OOP

 
  • Prototypes
  • Function as Object Constructor
  • Function as a method
1

Delegation - Implicit and Explicit

 
  • Function as a 
    • Roles
    • Traits
  • Object Composition and Inheritance
1

Other

 
  • Run-time Environment
    • Browser
    • NodeJS
    • Java / .Net
  • Variadiac Functions
  • Array and Object Literals
  • Regular Expressions
  • Vendor specific extensions
1

Future

Harmony

Resources

 
  • https://github.com/sorrycc/awesome-javascript
  • https://github.com/tyrchen/awesome-es6
  • https://ponyfoo.com/articles/tagged/es6-in-depth
 

JavaScript

By Madhavrao Pachupate