tc39 and ecmascript what’s in store for the next 20 years? · ecmascript is an object-oriented...
TRANSCRIPT
![Page 1: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/1.jpg)
TC39andECMAScriptWhat’sinstoreforthenext20years?
AllenWirfs-BrockMay24,2017
![Page 2: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/2.jpg)
ECMAScriptwillbe20yearsoldnextmonth
![Page 3: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/3.jpg)
2016’smostpopularprogramming
language:JavaScript
StackOverflow2016DeveloperSurveyhRp://stackoverflow.com/research/developer-survey-2016
1JavaScript2Java3PHP4Python5C#5C++5Ruby8CSS9C10Objec]ve-C
RedMonkTop10ProgrammingLanguagesJanuary2016
hRp://redmonk.com/sogrady/2016/02/19/language-rankings-1-16/
![Page 4: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/4.jpg)
hRp://www.robert-drummond.com/2015/06/19/in-what-universe-is-javascript-the-new-c/
![Page 5: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/5.jpg)
EachCompu]ngErahashadCanonicalProgrammingLanguages
CorporateCompu]ngEra–COBOL/FortranPersonalCompu]ngEra–C/C++family
JavaScript:TheCanonicalLanguageoftheAmbientCompu]ngEra
![Page 6: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/6.jpg)
TC39isn’tjustarubberstampstandardsbody.
It’sthedesignteamforthisera’s
canonicalprogramminglanguage.
AsJavaScriptgrowsandevolves,
somustTC39
![Page 7: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/7.jpg)
Today,TC-39isn’tlikeeitherofthese
![Page 8: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/8.jpg)
Challenge:HowcanTC39scaletothis
![Page 9: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/9.jpg)
Challenge:
Isitatallmeaningfultotalkaboutachievingconsensusata100+
personmee]ng?
![Page 10: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/10.jpg)
Challenge:
WithoutaBDFL,howdowecon]nuetoevolveJavaScriptwhilepreservinga
coherentdesignesthe]c
![Page 11: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/11.jpg)
FirstversionAug2009UpdatedasneedThissnapshotJuly2011
hRp://wiki.ecmascript.org:80/doku.php?id=harmony:harmony
Harmony/ES6hadaplan
![Page 12: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/12.jpg)
APossibleExemplar:WG21
≈1oopeople
hRps://isocpp.org/std/the-commiRee
TheC++commiReeholdstwoorthreefullweek-longface-to-facemee]ngsayear.Onemee]ngayearistradi]onallyheldoutsidethecon]nentalUnitedStates–ofeninEurope,butperiodicallyinCanadaorHawaii,oroccasionallyintheCaribbean,Japan,orAustralia.TypicalaRendancerangesfrom90to100people.Thesearefive-orsix-daymee]ngs(Mon-FriorMon-Sat),andbeginandendwitheveryoneinthesameroomforaplenarysession:OnMondaymorning,wemeettogethertoorganizeworkfortheweek,andattheendoftheweekwemeettoconsiderchangerecommenda]onsreadytobebroughtbeforethewholecommiReeforapprovalpolls.Therestofthe]meisspentinsmallersubgroupswheremostofthetechnicaldiscussionsoccur.
![Page 13: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/13.jpg)
![Page 14: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/14.jpg)
Part2
Some]mesit’sagoodideatoreexaminefundamentalassump]ons
andearlydesigndecisions
![Page 15: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/15.jpg)
ECMA-262Edi]on1Clause4,Paragraph1
ECMA-262,Edi]on1(1997)said:
ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects within a host environment. ECMAScript as defined here is not intended to be computationally self-sufficient; indeed, there are no provisions in this specification for input of external data or output of computed results. Instead, it is expected that the computational environment of an ECMAScript program will provide not only the objects and other facilities described in this specification but also certain environment-specific host objects, whose description and behaviour are beyond the scope of this specification except to indicate that they may provide certain properties that can be accessed and certain functions that can be called from an ECMAScript program.
DrafECMA-2622018says:
![Page 16: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/16.jpg)
WhyDoesECMAScriptNeeda“Host”?
![Page 17: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/17.jpg)
GeneralPurposeandSpecializedLibraries
HostedECMAScriptPlanormIntegra]on
Processor+OS
MainProgram+AppModules
AbstractedPlanormSeman]cs
Planorm
“TheHost”
Applica]onProgramLibraries
StandardLanguageSeman]cs“Engine”Host/EngineAPI
Host’sDomainSpecificAbstrac]onsandProcesses
HostDomainObjects
ExtendedESLanguageSeman]cs
HostDefinedPlanormObjs
HostDefinedExternalObjs
ImplementAbstractedPlanormSeman]cs
Added-valueServices
ForeignLibraries
![Page 18: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/18.jpg)
GeneralPurposeandSpecializedLibraries
HostedECMAScriptPlanormIntegra]onw/HostFFI
Processor+OS
MainProgram+AppModules
AbstractedPlanormSeman]cs
Planorm
“TheHost”
Applica]onProgramLibraries
StandardLanguageSeman]cs“Engine”Host/EngineAPI
Host’sDomainSpecificAbstrac]onsandProcesses
HostDomainObjects
ExtendedESLanguageSeman]cs
HostDefinedPlanormObjs
HostDefinedExternalObjs
ImplementAbstractedPlanormSeman]cs
Foreignfunc]on
callsupport Added-value
Services
ForeignLibraries
![Page 19: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/19.jpg)
GeneralPurposeandSpecializedLibraries
Conven]onalProgrammingLanguagePlanormIntegra]on
Processor+OS
MainProgram+AppModules
StandardLanguageSeman]csAbstractedPlanormSeman]cs
Planorm
Added-valueServicesRun]meSupport
Applica]onProgram
LibrariesForeignLibraries
![Page 20: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/20.jpg)
GeneralPurposeandSpecializedLibraries
Conven]onalProgrammingLanguagePlanormIntegra]onw/FFI
Processor+OS
MainProgram+AppModules
StandardLanguageSeman]csAbstractedPlanormSeman]cs
Planorm
Added-valueServicesRun]meSupport
Applica]onProgramExternal/Foreigncallinterface
LibrariesForeignLibraries
![Page 21: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/21.jpg)
GeneralPurposeandSpecializedLibraries
HostlessECMAScriptPlanormIntegra]on?
Processor+OS
MainProgram+AppModules
StandardLanguageSeman]cs AbstractedPlanormSeman]cs
Planorm
Added-valueServicesRun]meSupport
Applica]onProgramExternal/Foreigncallinterface
LibrariesForeignLibraries
![Page 22: TC39 and ECMAScript What’s in store for the next 20 years? · ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects](https://reader033.vdocuments.site/reader033/viewer/2022042310/5ed792d967b53e06555d28d9/html5/thumbnails/22.jpg)
Couldwebuildthistoday?Notquite🙁
• Thingsthataremissingandcurrentlydefinedbyhosts– Incompletesetofabstractedplanormseman]cs;notcurrentlyspecifiedintheECMAScriptstandards• Even]ng• Worker/Agent/ThreadsandcontrolAPI• Realms• Moduleloadingreflec]on
– AstandardForeignFunc]onInterfacespecifica]on• EG,defineaFFImodulesyntax