Uh, I amLynnClark, and I makecodecartoons, and I alsoworkatMozillaonthingslike, whatassembly?
Whichiswe'llbetalkingabouttoday, and I'm joinedbyTellSchneider, right, wholeadsourWebassemblytoolingeffortsandwhowillbefullynutsinonsomeoftheirwork.
SoFirstOffwonhisWebassembly.
Whatassemblyis a wayofrunningprogramminglanguagesotherthanJavascriptontheWeb, upuntilnowtoruncodeon a Webpage, theonlylanguagehecouldusehisjob.
A script.
Butnowthatthere's Webassemblycanuseotherlanguageslike C, you're c++ orRust, I'venoticedthatsomepeoplehave a misconceptionaboutWebassembly, thoughpeoplethinkthatthe M V P thatlandedinbrowsersand 2017 isthefinalversionofWebassembly.
And I canunderstandwherethatmisconceptioncomesfrombecausetheWebAssemblyCDisreallycommittedtobackwardscompatibility.
Instead, theyneeded a newlanguage, onethatwasdesignedspecificallytobecompiledThio, andthatwasWebassembly.
SowhatweretheskillsneededforthesomeBP, thisminimumviableproductrunning C and C plusplusontheWebwebsiteleast, designersknewthateventuallytheywouldwanttosupportlanguagesotherthanjustseein C++.
Sotheyneeded a languageagnosticcompiledtarget, somethingliketheassemblylanguagethatthingslikedesktopapplicationsarecompiledtolike X 86.
We'realsoworkingon a newoptimizingcompilercalledCraneLiftandCreamLiftisdesignedtoactuallyspeedupthatinitialcompiletimesocancompilecodeandparallelat a functionbyfunctionlevel.
For 1064 wehave a goodpictureofhowthisisgoingtowork, andthat's prettysimilartohow X 86 orarmgotsupportfor 64 bitaddressingandFirefoxaddedstreamingcompilationlastyearinFirefox.
It's alsomeantforregularsmallmodulesWebdevelopment, thekindofWebdevelopmentthatyou'reusedtoifyouhave a modulethatdoes a lotofheavycomputationorprocessing, that's a goodusecaseforWebassembly.
Sothere's a subgroupoftheWebassemblyCGthatisworkingonspecifyingthat, andthetailcallsproposalisalsounderwayoncethoseareallinplacewillhaveunlockedJsframeworks, andmanycompiletwoJslanguages.
Butit's notjustthatwhatassemblyalsogivesus a waytotaketheseothertwocapabilitiesoftheWeb, theportabilityinthesecuritymodelandbringthemtousecasesthatneedthemtooutsideoftheWeb.
Thesecapabilities, thingslikedirectfileaccesstoyoursystem, arethedangeroustoysthataren't availableinthebrowsersandbox, eventhoughthey'redangerous, thoughforthekindsofusecasesthatnotewasbuiltforthese, he's a P.
I domake a certainkindofsense.
Thiskindofaccessmakes a certainkindofsense.
Thething I wanttomakeclearhereisthatnotemade a choice, really?
Isthatno, I had a choicetomakeforjazzmodules.
Itcouldhavegonewith a sandboxstyleapproach.
Butfornativemodules, Notehadlessof a choicebecauseit's reallyhardtosandboxnativecode.
Sonoticemadethischoice.
Basically, ifyou'rerunning a noteapplicationtodayonyourcomputer, youbasicallysaid I trustthiscode, althoughthenodedevelopersareactuallylookingat a waythattheycanchangethisinthefuture.
TheonlyproblemhereisthatWebassemblydoesn't havedirectaccesstothesystem's resourceiswewouldneedtopassandfunctionstotheWebassemblymodulesotheycanworkwiththeoperatingsystemnowforknowthiswillprobablyinclude a lotofthefunctionalityofthingsliketheseastandardlibraryandthingsthatarepartofposits.
Butforplatformsthatcouldmakeuseofthem, therewouldbe a unified a p I forcallingthesefunctions, nomatterwhichplatformyourcodewasrunningon, andthiswouldmakeuniversalmodulesonesthatrunacrossboththeWebandnotesomucheasier.
Soisthissomethingthatcouldactuallyhappen?
Well, weandothersareworkingonit, and I thinkwehave a prettygoodchance.
We'realsoseeing a lotoffdemandforthisfrom a widerangeoffwithdifferentdomains.
Oneoftheseremainsistheremainsoffcityendsoffserverlessandoffthatcomputingthefastestcityand, forexample, serves a significantfractionofftheentireInternettraffic.
Andthey'removingfromservingjuststaticfiles.
A cityanswerfistaredonetorunningtheircustomerscoatoneveryincomingrequest, andthey'redoingthiswithoutadding 10 timesasmanymachinestotheirnetwork, whichisreallywhattheywouldhavetodoiftheyweretousemoretraditionalSeveralarchitectureswhereyou'd usesomethinglikecontainersorotherheavywagemechanismstookonetwistedcodeinstead, Weaponsomebodygivesthemthescentboxingtheyneedatthespeedandatthescalethattheyneed.
Peoplearealsoworkingonbuildingblockchimpplatformswithweapons, MDdissentwithinthe I O.
I don't ifyouuseweaponsassemblytogetherwithJavaScriptinthebrowseror a note, thenJavaScriptisusedtoletweaponssimplytalktotheoutsideworldyouusefetchtoload a filefromtheserverinthebrowser.
Allofthis a standardizedsoyoucanrelyonitandyouusenotes.
F s start.
We'd filetoread a file, andyoucanalsorelyonthis, butfor a differentreason.
There's reallyonly 11 timeyouwouldusenote, becausenoteisthedefectivestandardsyouknowtheFBI's youcanuseandcarpet I own.
Ideally, we'llhave a similarsituationwithweaponsassembly, whereyouknowwhatFBI's youcanworkwith, butnotwhere 11 timebeingcompletelydominant.
Instead, we'reworkingtowardsthestandardizedonetimeenvironment, whichmeansthey'llbe a setoffunctionsthatyoucanrelyonforthingslikefileaccessornetworkaccess.
Thatmeansyoucancompilecodeonesandplanetinallofthesedifferentenvironmentsandinanyonetimethatprovidesthesefunctions, orinthebrotherwherethisfunctioncanbeimplementedusingJavascriptusingexistingdoll, maybeeyes, andthenyoucanhave, um, oneTimesaid, a reallytailoredtowardstheirexactusecaseinsteadofhavingtorelyon a onesizefitsall.