A story about JavaScript History and its future. I'm talking about language design, ECMA standards, JavaScript code generation, and Virtual Machines made on JS.
A rule, a regulation, or a procedure, is introduced for a reason. However, after a while, the reason for it is forgotten, but the rule stays. Harry Harlow American psychologist
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Arrays instead of Lists Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Arrays instead of Lists Objects instead of PropertyLists Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Arrays instead of Lists Objects instead of PropertyLists Lambda functions Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Functions are First Class Arrays instead of Lists Objects instead of PropertyLists Lambda functions Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Functions are First Class Arrays instead of Lists Objects instead of PropertyLists Lambda functions Prototypal inheritance Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Functions are First Class Arrays instead of Lists Objects instead of PropertyLists Closures Lambda functions Prototypal inheritance Weakly typed
like an ordinary procedural language Has more in common with functional languages like Lisp or Scheme than with C or Java Functions are First Class Arrays instead of Lists Objects instead of PropertyLists Closures Lambda functions Prototypal inheritance Weakly typed Run-time evaluation
1994 1997 Brendan Eich joined Netscape , to create a programming language for browser and base it on Scheme (a Lisp dialect) JavaScript is a trademark of Oracle Corporation Mozilla inherited Netscape’s code-base and official JavaScript management rights 1995 1998 Rhino engine by Norris Boyd released 2008 Google released V8 engine JavaScript engine prototype (Mocha) 1996 LiveConnect released ECMA Standardization LiveConnect 2 released 1998 2010 +10 Released NN2 with JS support
with ISO/IEC 16262 international standard 3.0 1999 Added regular expressions, try/catch exception 3.1 Yahoo, Microsoft and Google formed group to update of ECMAScript 3 4.0 Abandoned, due to political differences concerning language complexity 5.0 2009 Library support for JSON, and more complete reflection 5.1 2011 Align with 3rd version of ISO/IEC 16262:2011 6.0 Support classes, semantic and syntactic innovations ECMAScript Language Specification ECMA-262 ISO/IEC 16262 EDITORIAL CHANGES EDITORIAL CHANGES MAJOR RELEASE MAJOR RELEASE ABANDONED MAJOR RELEASE MAJOR RELEASE COMMUNITY RELEASE 72% of functionality is supported by browsers 28% have issues (IE8, FF3.5, OP10.5, Konq 4)
is a true compiler for JavaScript. It compiles from JavaScript to better JavaScript. Implemented on Java Speed is very impressive, given that it’s a pure-JavaScript implementation. Implemented on Node.js
will work on any JavaScript runtime Repeating execution speed improvements The goal of Dart is: ultimately to replace JavaScript as the lingua franca of web development on the open web platform. TypeScript is for application-scale JavaScript development. Language is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. The golden rule of CoffeeScript is: "It's just JavaScript".
open source JavaScript code generator from a Java source. It is built as a Maven plugin that can be executed after the compilation. GWT These allow you to write AJAX applications in Java and then compile the source to highly optimized JavaScript that runs across all browsers, including mobile browsers for Android and the iPhone. Quicklight The Saltarelle C# to Javascript compiler allows a developer to write C# code and then compile it to Javascript which can be run in any web browser.
bitcode (which can be generated from C/C++ using Clang, or any other language that can be converted into LLVM bitcode) and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run). Using Emscripten, you can: - Compile C and C++ code into JavaScript™ and run that on the web - Run code in languages like Python as well, by compiling CPython from C to JavaScript
is Google's open source JavaScript engine. V8 is written in C++ and is used in Google Chrome. V8 compiles JavaScript to native machine code (IA-32, x86-64, ARM, or MIPS CPUs) The V8 assembler is based on the Strongtalk assembler 3 key areas to V8's performance: Fast Property Access Dynamic Machine Code Generation Efficient Garbage Collection