ECMAScript
From an idea to a major standard
Juho Vepsäläinen
28.06.2023, Aachen, EURAS2023
Content is available under
CC BY 4.0 unless otherwise stated
ES
There is an ECMAScript*
interpreter in your pocket
*Also known as JavaScript®
How did it get there?
How did standardization help in
the process?
Background in 1995
Java, a system
level
programming
language, had
attained a strong
position in the
market
Web was a new
technology
(public in 1991)
[Berners-Lee,
1992]
First web
browsers,
including
Netscape
Navigator, were
starting to
become available
It was clear
interactive web
pages were
needed
But Java was too
heavy, a scripting
language had to
be designed
Meet Brendan Eich
Image source: Wikipedia
•In 1995, Brendan (Netscape) completed the
first version of LiveScript in ten days. The
language became available to the public as
JavaScript in 1996
•Due to competitive pressure and need to
standardize, TC39 was established at Ecma
to capture the current behavior
•First draft of
ECMAScript
standard was
completed (ES1)
•ES3 was
completed as
work on
standardizing
already
established
behavior
continued
1997 1999
Browser wars
Image source: Wikipedia
•First draft of
ECMAScript
standard was
completed (ES1)
•ES3 was
completed as
work on
standardizing
already
established
behavior
continued
1997 1999 2009 2015
•As ES4 effort
failed to
materialize, ES5
with less
ambitious goals
was completed
•ES6 (ES2015) was
completed
•At the same time
web applications
were becoming
mainstream
•A new working
process was
established
(champion model)
TC39 champion model
Stage 0 - Allow input into the specification
Stage 1 - Make the case for the addition, describe the shape of the solution, identify potential
challenges, find a champion
Stage 2 - Precisely describe the syntax and semantics using formal spec language, initial spec text
Stage 3 - Indicate that further refinement will require feedback from implementations and users,
complete spec text
Stage 4 - Indicate that the addition is ready for inclusion in the formal ECMAScript standard,
describe the feature using Test262 acceptance tests
Reference
•ES2016 •ES2017
2016 2017 2018 2019 2020
•ES2018 •ES2019 •ES2020
Alternative futures
Open web won in
the end but what
could have
happened?
Instead of an
open standard,
we get a
monopolistic,
closed ecosystem
(JScript or similar
language over
ECMAScript)
Another option
would have been
an oligopoly with
walled gardens
(think Flash,
Silverlight, and
co.)
A mixed future
where both open
and closed
options exist
Can we still go
towards
something more
closed now that
default is open?
What went right/wrong?
• Example of success in standardization
• Eventually TC39 found a productive way of
working
• Managed to capture early developments in
web browsers and harmonize their behavior
• Helped to pave the way for web applications
(social media, online banking, etc.) and create
a massive market as a result
• Learned to appreciate the value of legacy and
maintaining support for older environment
(easy to add features, difficult to remove)
• Example of challenges in standardization
• ES4, the version that never happened, shows
the risks of designing by committee
(designing over specifying)
• Initial design was not meant to grow to the
current level of popularity
• Early mistakes in design can be difficult to
erase due to legacy and environments to
support
Could ECMAScript have reached its
current status without
standardization?
Thank you!
Bonus slides
Standards wars
Rival technology
Your technology Compatible Incompatible
Compatible Rival evolutions Evolution versus revolution
Incompatible Revolution versus evolution Rival revolutions
Standards wars for ECMAScript
Creation
(1995-1996)
Standardization
(1996-1997)
From ES1 to
ES3 (1997-1999)
ES4 (1999-2008) ES5 (2008-2015) ES6 and beyond
(2015-)
Rival evolutions Ended due to
alignment
None Rival evolutions Revolution versus
evolution
Revolution versus
evolution
References
T. Berners-Lee, 1992 - World-Wide Web: The information universe
Shapiro et al., 1999 - Information rules: A strategic guide to the network economy
A. Wirfs-Brock, 2020 - JavaScript: The first 20 years

ECMAScript - From an idea to a major standard

  • 1.
    ECMAScript From an ideato a major standard Juho Vepsäläinen 28.06.2023, Aachen, EURAS2023 Content is available under CC BY 4.0 unless otherwise stated ES
  • 2.
    There is anECMAScript* interpreter in your pocket *Also known as JavaScript®
  • 3.
    How did itget there?
  • 4.
    How did standardizationhelp in the process?
  • 5.
    Background in 1995 Java,a system level programming language, had attained a strong position in the market Web was a new technology (public in 1991) [Berners-Lee, 1992] First web browsers, including Netscape Navigator, were starting to become available It was clear interactive web pages were needed But Java was too heavy, a scripting language had to be designed
  • 6.
    Meet Brendan Eich Imagesource: Wikipedia •In 1995, Brendan (Netscape) completed the first version of LiveScript in ten days. The language became available to the public as JavaScript in 1996 •Due to competitive pressure and need to standardize, TC39 was established at Ecma to capture the current behavior
  • 8.
    •First draft of ECMAScript standardwas completed (ES1) •ES3 was completed as work on standardizing already established behavior continued 1997 1999
  • 9.
  • 10.
    •First draft of ECMAScript standardwas completed (ES1) •ES3 was completed as work on standardizing already established behavior continued 1997 1999 2009 2015 •As ES4 effort failed to materialize, ES5 with less ambitious goals was completed •ES6 (ES2015) was completed •At the same time web applications were becoming mainstream •A new working process was established (champion model)
  • 11.
    TC39 champion model Stage0 - Allow input into the specification Stage 1 - Make the case for the addition, describe the shape of the solution, identify potential challenges, find a champion Stage 2 - Precisely describe the syntax and semantics using formal spec language, initial spec text Stage 3 - Indicate that further refinement will require feedback from implementations and users, complete spec text Stage 4 - Indicate that the addition is ready for inclusion in the formal ECMAScript standard, describe the feature using Test262 acceptance tests Reference
  • 12.
    •ES2016 •ES2017 2016 20172018 2019 2020 •ES2018 •ES2019 •ES2020
  • 13.
    Alternative futures Open webwon in the end but what could have happened? Instead of an open standard, we get a monopolistic, closed ecosystem (JScript or similar language over ECMAScript) Another option would have been an oligopoly with walled gardens (think Flash, Silverlight, and co.) A mixed future where both open and closed options exist Can we still go towards something more closed now that default is open?
  • 14.
    What went right/wrong? •Example of success in standardization • Eventually TC39 found a productive way of working • Managed to capture early developments in web browsers and harmonize their behavior • Helped to pave the way for web applications (social media, online banking, etc.) and create a massive market as a result • Learned to appreciate the value of legacy and maintaining support for older environment (easy to add features, difficult to remove) • Example of challenges in standardization • ES4, the version that never happened, shows the risks of designing by committee (designing over specifying) • Initial design was not meant to grow to the current level of popularity • Early mistakes in design can be difficult to erase due to legacy and environments to support
  • 15.
    Could ECMAScript havereached its current status without standardization?
  • 16.
  • 17.
  • 18.
    Standards wars Rival technology Yourtechnology Compatible Incompatible Compatible Rival evolutions Evolution versus revolution Incompatible Revolution versus evolution Rival revolutions
  • 19.
    Standards wars forECMAScript Creation (1995-1996) Standardization (1996-1997) From ES1 to ES3 (1997-1999) ES4 (1999-2008) ES5 (2008-2015) ES6 and beyond (2015-) Rival evolutions Ended due to alignment None Rival evolutions Revolution versus evolution Revolution versus evolution
  • 20.
    References T. Berners-Lee, 1992- World-Wide Web: The information universe Shapiro et al., 1999 - Information rules: A strategic guide to the network economy A. Wirfs-Brock, 2020 - JavaScript: The first 20 years