What’s new in JavaScript (Google I/O ’19)

Поділитися
Вставка
  • Опубліковано 5 вер 2024
  • This presentation gives an overview of cutting-edge JavaScript development techniques to build modern web and Node.js apps. Discover which features to expect in Chrome and Node.js soon, how the V8 engine optimizes for them, and how to improve real-world performance and stability on the Web and in Node.js.
    Speakers:
    • Mathias Bynens / mathias
    • Sathya Gunasekaran / _gsathya
    More info:
    • v8.dev/
    • / v8js
    Watch more #io19 here:
    Web at Google I/O 2019 Playlist → goo.gle/io19web
    Google I/O 2019 All Sessions Playlist → goo.gle/io19al...
    Learn more on the I/O Website → google.com/io
    Subscribe to the Chrome Developers Channel → goo.gle/Chrome...
    Get started at → www.google.com...
    T60250 event: Google I/O 2019; re_ty: Publish; fullname: Mathias Bynens, Sathya Gunasekaran;

КОМЕНТАРІ • 199

  • @ibrahim47
    @ibrahim47 5 років тому +224

    private class fields 6:57
    Regex matchAll 9:16
    Numeric literals 10:19
    BigInt formatting 11:50
    flat & flatmap 13:23
    fromEntries 15:28
    Map to Object conversion 16:47
    globalThis 19:18
    Stable sort 20:00
    Intl.RelativeTimeFormat 22:45
    Intl.ListFormat 24:29
    Intl.DateTimeFormat -> formatRange 26:32
    Intl.Locale 27:10
    Top-Level await 28:12
    Promise.allSettled/Promise.any 31:13
    WeakRef 32:30

  • @samirsaeedi74
    @samirsaeedi74 5 років тому +53

    My favorite talk of I/O. Also kudos to the subtitles team for accurate subtitles (love how they write Node.js every time speakers mention Node)

    • @mathiasbynens
      @mathiasbynens 5 років тому +36

      I took care of the subtitles :) I want this presentation to be as accessible as possible. Thanks for the kind words!

    • @RimantasLiubertas
      @RimantasLiubertas 4 роки тому

      Your favourite teleprompt read, you mean?

  • @markotitel
    @markotitel 5 років тому +97

    So you two have really practiced this. Really async await.

    • @Technoholicplus
      @Technoholicplus 5 років тому

      Ha ha 😂

    • @jony1495
      @jony1495 5 років тому

      Hahaha im dyin best comment :D Loved the talk too

    • @newtonmunene
      @newtonmunene 5 років тому

      😂😂😂😂😂

    • @newtonmunene
      @newtonmunene 5 років тому +2

      It's their event loop 😂😂

  • @ArjunSarthi
    @ArjunSarthi 4 роки тому +2

    Wherever you go there's an Indian ..Proud

    • @brunodale2
      @brunodale2 4 роки тому +1

      That's true, specially for India.

  • @AAA-bo1uo
    @AAA-bo1uo 5 років тому +56

    I love how IE's compatibility is not even considered! 😂

    • @mathiasbynens
      @mathiasbynens 5 років тому +9

      Edge is adopting Chromium and V8, so it’ll soon support the same features that Chrome supports.
      This is explicitly mentioned at 00:18.

    • @finally_code
      @finally_code 5 років тому +8

      @@mathiasbynens well, edge is not IE ...

    • @nerdiloo9863
      @nerdiloo9863 5 років тому +2

      @@finally_code It's not IE but it's clearly the sign the Microsoft is on board with the idea of developing/maintaining apps once (and not waste time on bloatware for legacy stuff) that should look/run the same everywhere.

    • @user-og9nl5mt1b
      @user-og9nl5mt1b 5 років тому

      because internet explorer is the worst browser u can have

    • @7alken
      @7alken 5 років тому

      @@mathiasbynens ...isnt there some joint effort to encourage apple too?

  • @AmandeepSingh-dt2qc
    @AmandeepSingh-dt2qc 5 років тому +104

    The Internationalization API looks cool.

    • @shfunky
      @shfunky 5 років тому +10

      Would be hilarious if they actually left it as " Iñtërnâtiônàlizætiøn " for everybody to type.

    • @brymstoner
      @brymstoner 5 років тому +1

      @@shfunky Don't give them ideas!

  • @SteveHazel
    @SteveHazel 5 років тому +25

    i love whats happenin to javascript. from better to even better.

  • @evofx
    @evofx 5 років тому +15

    Love these new features.

    • @alpilatech906
      @alpilatech906 4 роки тому

      How about with chrome 85 now is better more than with Chrome 75 can using too?

  • @evolutionxbox
    @evolutionxbox 5 років тому +28

    Can we add native currying and placeholders, rather than improving "classes"?

    • @vertie2090
      @vertie2090 5 років тому +1

      that would be awesome but not sure how that would really work, JS is an imperative language

    • @luxsasha
      @luxsasha 5 років тому

      Currying is a pattern, it exists today, JS is a functional language with TCO

    • @evolutionxbox
      @evolutionxbox 5 років тому +1

      Vertie it’s multi paradigm. Imperative is only one part

    • @ELStalky
      @ELStalky 5 років тому

      If you want a curried function, you can just chain arrows, e.g. const product = x => y => x * y.
      The only thing that is ugly is the call, requiring parentheses for every argument application.

  • @xaviergonz244
    @xaviergonz244 5 років тому +11

    I'm really looking forward to finalizers, right now there's no way to automatically dispose of wasm resources other than calling a manual dispose method

    • @xerotolerant
      @xerotolerant 5 років тому +1

      Would the garbage collection mentioned in the WebAssembly presentation be a solution to this problem?

  • @xNReaperx
    @xNReaperx 5 років тому +13

    This is awesome! Can't wait for Chrome 75

    • @ahmadalfy
      @ahmadalfy 5 років тому

      It's already out if you use the dev channel :)

  • @recursiv
    @recursiv 5 років тому +19

    Is there a way to reliably know if the current environment has a stable sort implementation?

    • @jonmichaelgalindo
      @jonmichaelgalindo 5 років тому +1

      An extremely slow polyfill? That way, customers running your sort will believe their device to be slow and upgrade to a more modern system which will (hopefully) ship with a stable sort.
      Or, a browser flag would be nice, but we can't have those for every feature. For some reason.

    • @mathiasbynens
      @mathiasbynens 5 років тому +1

      Sort an array with elements [0..n-1] modulo 4 (for example). If the sort is stable, the array is partitioned into 4 parts, where each part has only increasing elements.

    • @recursiv
      @recursiv 5 років тому

      @@mathiasbynens Yes that's certainly true but that might also happen coincidentally even if the algorithm isn't generally stable. In the absence of anything more reliable I'll probably rely on something like this.

  • @subbuswaroop6122
    @subbuswaroop6122 5 років тому +5

    I'm Tamil and I feel proud of the Internalization API... Good Work Google

    • @Bigdaddy91982
      @Bigdaddy91982 5 років тому +2

      Bruh I was looking for this comment lol

    • @toequantumspace
      @toequantumspace 5 років тому

      I love Tamil alphabet it's pure art (I understand nothing though :) )

  • @decodingcode1494
    @decodingcode1494 5 років тому +1

    23:23 தமிழ் மொழி. glad to see my native language. new flatmap method quite good

  • @danielfromca
    @danielfromca 5 років тому +1

    Things move so fast and get more complicated, so have to learn all time to keep up and even then I always feel like I’m behind..

  • @GottZ
    @GottZ 5 років тому +5

    holy shiiiit.. weakref is gold

  • @YTSliv
    @YTSliv 5 років тому +3

    One of the thing I never understand is, even "flatMap" is a "conventional FP name"
    match + all -> matchAll
    find + index -> findIndex
    map + flat -> flatMap

    • @tomotomo
      @tomotomo 5 років тому +2

      match to All
      find the Index
      flat the Map

    • @DavidBlanch0
      @DavidBlanch0 5 років тому +1

      The real FP name for flatMap is >>=

    • @Knigh7z
      @Knigh7z 5 років тому

      @@DavidBlanch0 you mean bind

  • @c24r43tybb6
    @c24r43tybb6 5 років тому +22

    Omfg, this will be so easy now!
    new Promise( ... ).any( updateProgressbar ).all( processFinished )

    • @mathiasbynens
      @mathiasbynens 5 років тому +2

      That's not how the API works, though. Promise.any and Promise.all are static methods, not instance methods. Also, Promise.any should not be used to update progress bars, since it only gives you a signal once (not once for every promise). See our explainer at v8.dev/features/promise-combinators for more details.

  • @anticom1337
    @anticom1337 5 років тому +1

    General question ( 14:20 ) is .flatMap usually a .map().flat() in the functional world? I always had trouple wrapping my head arround rxjs selection of map operators for example.

    • @Knigh7z
      @Knigh7z 5 років тому

      Generally yes, you'd map over a "container" F with some function (T => F), which creates F, and "flattens" to F. Same overall outcome as flatten after a map, but their implementation is more efficient.
      In that example (if we use TypeScript types), it's an Array flatMap'd over with some (number => Array) to get an Array, rather than Array.

    • @memecomposerdotcom
      @memecomposerdotcom 5 років тому

      map is one-to-one transformation, while flatMap is one-to-many transformation

  • @dolnar
    @dolnar 4 роки тому

    What about jQuery? Do think we have to forget completely this script language to the native JavaScript. I believe the jQuery is the best way for those who have more difficulty with the native language JS. Your feedbacks are welcome.

  • @taylorsmurphy
    @taylorsmurphy 5 років тому +6

    Javascript Inventors: "Let's just make a basic thing, but no biggie, not like it will be more than a novelty"
    10 years later: This video

    • @recursiv
      @recursiv 5 років тому +5

      10 years? Maybe more like 24.

    • @brymstoner
      @brymstoner 5 років тому

      @@recursiv I've been using it since 97. Definitely more than 10 years lol. Maybe he meant 10n.

  • @peteradam4740
    @peteradam4740 5 років тому +9

    25:49 Was that a freudian slip?

    • @RarRarRarRarRarRar
      @RarRarRarRarRarRar 5 років тому

      Pretty sure my websites don't ever show that, but maybe this is a new design trend I'm not yet aware of! :P

  • @darkwolf003
    @darkwolf003 5 років тому

    Allways top notch quality! kudos

  • @Zolbat
    @Zolbat 5 років тому +35

    Safari - the Internet Explorer of browsers

    • @lucioinnocenzo2328
      @lucioinnocenzo2328 5 років тому +8

      Internet Explorer IS a browser so your joke is wrongly made.

    • @akj7
      @akj7 5 років тому +2

      Zolbat , thanks for the laugh.

    • @fxmtoeclipse
      @fxmtoeclipse 5 років тому +1

      That sentence doesn’t make any sense...

    • @KaranRaina95
      @KaranRaina95 5 років тому +1

      Isn't internet explorer the internet explorer of browsers? Oh wait..

    • @DeviousMagePkers
      @DeviousMagePkers 5 років тому +4

      ​@@lucioinnocenzo2328 Woosh. The joke is that Internet explorer isn't even considered a browser, described by a microsoft engineer as a 'compatibility tool'

  • @wenqiangliu8011
    @wenqiangliu8011 5 років тому +1

    love this talk,where can i get the slides?

  • @spektrum030
    @spektrum030 3 роки тому

    Intl.RelativeTimeFormat is just great

  • @MinusTechTips
    @MinusTechTips 5 років тому +92

    Those 6 dislikes are from PHP developers

    • @tiancihe795
      @tiancihe795 5 років тому +1

      2 more coming here to dislike the advancement of javascript, seriously, just turn to javascript already, php is no match against javascript.

    • @Microphunktv-jb3kj
      @Microphunktv-jb3kj 5 років тому +1

      @@tiancihe795 Rust *cough cough* , Node is cool tho.

    • @Manu-mr4mn
      @Manu-mr4mn 5 років тому +1

      Love node, but I love python as well, flask is pretty good. Just use whatever does the job

    • @amudhavigneshwarankmp7571
      @amudhavigneshwarankmp7571 5 років тому

      Ha ha ;)

    • @kenyadorcelus917
      @kenyadorcelus917 5 років тому

      @@Microphunktv-jb3kj Check Ryan Dahl new cool project Deno (Node? TypeScript + Rust) You'll love it!

  • @travelwithdb
    @travelwithdb 3 роки тому

    Such an informative talk.. 👍

  • @pandharipatel
    @pandharipatel 5 років тому +1

    Thanks, TC39

  • @captpierce83
    @captpierce83 5 років тому

    Are the presentation slides available?

  • @tsepoo
    @tsepoo 5 років тому

    Cool, it is worth sharing.

  • @Masterrunescapeer
    @Masterrunescapeer 5 років тому +3

    If _ was already convention for private, why reinvent and make them use # instead. Seems backwards, since you'd only "hurt" anyone who went against convention and then force them to clean up their act, making code more maintainable.
    Hash to me is a number/length of var, seems backwards to use it when we have the convention of _var for class members for a very long time.

    • @PhilipAlexanderHassialis
      @PhilipAlexanderHassialis 5 років тому +2

      On the other hand, using a new symbol which will make the engine throw a hard syntax error is better because that way you can maintain the convention for older libraries and can promote clean code with the new feature. Sure, hash is mostly used for numbers but mostly within US. Most other countries started using hash when it was used within the scope of a hashtag. Remember,JS is a language for everyone :) Although tbvfh I would prefer if they actually had field access reserved words a la private/protected/public, at least using a # is a way to both not throw everyone under a boat plus add a new feature in a nice way.

    • @mathiasbynens
      @mathiasbynens 5 років тому

      Because we cannot break backwards compatibility. Any code that relies on a property with a _ prefix being accessible would break if we turned them into private fields all of a sudden.

    • @Masterrunescapeer
      @Masterrunescapeer 5 років тому

      @@mathiasbynens rather then just add a flag that does strict enforcement or not or a flag to allow for # to be an alternative option. Most of us use underscore correctly already, having this addition without having to go back and changing code would be better than forcing users to change to hashes.

    • @stanislavsarbinski6629
      @stanislavsarbinski6629 5 років тому

      ​@@mathiasbynens It sounds like a Microsoft policy about "updating" their Windows and this is the reason why the Windows 10 now adopt Linux inside(WSL/2). IMO keeping this mindset - "do not break backwards compatibility" will be the main reason for many pitfalls in the future JavaScript.

  • @ManchesterTechGuy
    @ManchesterTechGuy 5 років тому

    I like the new LINQ like functionality in the promises

  • @korseg1990
    @korseg1990 5 років тому +1

    Does babel support this?)

  • @BrianGreigRWD
    @BrianGreigRWD 5 років тому +2

    Looks like they are favoring OOP > Functional

  • @jonmichaelgalindo
    @jonmichaelgalindo 5 років тому +5

    Stable sort! Can it be?! :-D

    • @GottZ
      @GottZ 5 років тому

      finally no need to write complex sorting functions anymore!

  • @pardal_bs
    @pardal_bs 5 років тому

    It would be nice to have private fields in constructor functions too.

  • @MrThegourav
    @MrThegourav 5 років тому +5

    I loved the globalTHis , it looks simple but it is painful to do it right

    • @safdarawn902
      @safdarawn902 3 роки тому

      no, if you have a clear knowledge of the topics then it's very useful

  • @VinsysVlogs
    @VinsysVlogs 5 років тому +2

    Happy to see it in Tamil 🤩

  • @avneeshroks
    @avneeshroks 5 років тому

    Promise.allSettled will be really helpful.

  • @johnpaulada5111
    @johnpaulada5111 5 років тому +4

    We implemented something like Promise.allSettled before. We called it Promse.allMost 😂🤣

  • @evolutionxbox
    @evolutionxbox 5 років тому +4

    Object.fromEntries
    I wonder how it compares to:
    .reduce((acc, curr) => ({
    ...acc,
    [curr[0]]: curr[1]
    }), {})

    • @entarctica
      @entarctica 5 років тому +1

      The algorithm is subtly different from that, but in almost all cases the result would be equivalent. If you mean in terms of perf, at least in v8 the fromEntries implementation is written with Turbofan, not in the ES layer, and would typically be faster (and it does not initialize a new object and spread all previous properties on every iteration as in this reducer).

    • @mathiasbynens
      @mathiasbynens 5 років тому

      Yes, this is exactly the kind of implementation you’d have to come up with yourself, previously. With Object.fromEntries, you don’t have to worry about it anymore.

    • @tiancihe795
      @tiancihe795 5 років тому +1

      Semantically

    • @lxxNFxxl
      @lxxNFxxl 5 років тому +5

      Speed! Reduce is really slow.
      Array with 1 000 entries
      fromEntries: 1.267ms vs reduce: 6795.383ms
      Array with 10 000 entries
      fromEntries: 2.434ms vs reduce: 26033.711ms

  • @miguelperezpal
    @miguelperezpal 5 років тому

    this is sick

  • @subashs2243
    @subashs2243 5 років тому +4

    😍23.00 Tamil formatting displayed 💕🤝

  • @chunpingli8235
    @chunpingli8235 5 років тому +2

    I will expect that new APIs and new virtual parsing engine for universal byte code

    • @skierpage
      @skierpage 5 років тому

      WASM replaces byte code parsing. You send either minified JS or WASM to the browser.

  • @waelalr9203
    @waelalr9203 5 років тому +2

    Where is internet explorer?? :p

  • @talentedandrew
    @talentedandrew 5 років тому

    Hope that Intl API would help me discard MomentJs soon.

  • @wanglan4255
    @wanglan4255 5 років тому

    The weak ref proposal doesn’t seem very clean.

  • @frmlsshrmn
    @frmlsshrmn 5 років тому +3

    JavaScript catching up with Java (private class member fields, underscore separators, BigInt)...

  • @AlexanderFrischbutter
    @AlexanderFrischbutter 5 років тому

    What about just use keyword private for private attributes? Why Invent new syntax

    • @ashrafal
      @ashrafal 5 років тому +1

      Adding keywords to a living language is not simple. People might have already been using "private" as their variable and function names. All that code will get effected.

  • @user-ec5oc5fb7b
    @user-ec5oc5fb7b 5 років тому +1

    The numeric separators were built-in into Python long ago.

  • @tobi3497
    @tobi3497 5 років тому +3

    What was wrong with the standard "private field"? Most people are used to this, writing in typescript (and every other language). "#field" makes no sense, and is unwieldy, especially if you wanted to quickly change the field scope. Additionally, this can't nicely be extended for other field scopes such as protected -- unless they were to introduce more arbitrary field prefixes, i.e. "$field" for protected.

    • @SirusStarTV
      @SirusStarTV 5 років тому +2

      Looks ugly and reminds python comment.

    • @zaccusbcrackus
      @zaccusbcrackus 5 років тому

      100% this!!!

    • @zaccusbcrackus
      @zaccusbcrackus 5 років тому

      Without a doubt the # is the wrong approach to this. It's not like we have dozens of languages to learn from...but it is so easy to think of all the problems with this (besides the fact that other languages has already solved syntax/grammar for access modifiers)

    • @ccjmne
      @ccjmne 5 років тому +1

      What's wrong with what you propose is that you could just try and do: myObject.field = 123... and get an error, thus knowing of the internal implementation of that class.
      #field is actually private, nobody has to know about it.
      If any consumer of your class wants to add its own data to it, it can do whatever it wants, as long as it respects the documented API, with no fear of breaking obscure internal blackboxed infrastructure. Also, you get to change your implementation of that class and publish new minor versions with no risk of breaking the code of all your users...
      React, for instance, is having tremendous troubles with their users **relying on** and **directly manipulating** a state property that was always meant to be **private**. They cannot change their implementation anymore from fear of breaking all their dependents.

  • @sagnikpradhan3594
    @sagnikpradhan3594 5 років тому +1

    Hell Yeah!!!

  • @chiboreache
    @chiboreache 5 років тому

    10:40 available only >= 75 version of Chromium if some interested in
    28:28 it looks like Coffeescript, yeah ;{ a long time ago, again...

  • @rsrini7
    @rsrini7 5 років тому +2

    Nice features.. and Tamil 💐..

  • @WinS392
    @WinS392 5 років тому

    35:45 print and tape on wall

  • @orange-one
    @orange-one 5 років тому +4

    They sound lile they switch each others voice at first😂

  • @johnhorse3525
    @johnhorse3525 4 роки тому

    Linux and google love node.js

  • @amudhavigneshwarankmp7571
    @amudhavigneshwarankmp7571 5 років тому

    Promise.allSettled is awesome. I used to write lot of code for this.

  • @mantou7189
    @mantou7189 5 років тому

    json support bigint ?

    • @solodas6490
      @solodas6490 5 років тому

      Good question. I would be annoying to have bigInt data break over API requests (for example)

    • @SirusStarTV
      @SirusStarTV 5 років тому

      Just wrap it around quotes if json doesn't support it.

  • @vertie2090
    @vertie2090 5 років тому

    How bout some operators for piping or functional composition?

  • @Noobmaster69_bro
    @Noobmaster69_bro 5 років тому +2

    I'm waiting for async in forloop like in the new c#🤨

    • @mathiasbynens
      @mathiasbynens 5 років тому +5

      JavaScript already supports async iteration through for-await-of!

    • @jonmichaelgalindo
      @jonmichaelgalindo 5 років тому +2

      Actually, it does! :-)
      Thusly: for( let i = 0; i < 10; i++ ) { await SomeAsyncFunction( i ); }

    • @UBERDHOKER
      @UBERDHOKER 5 років тому

      Await Promise.all(array.map((value) =>
      asyncCall(value))
      )
      If you don't await in the map, the entire loop will run simultaneously and return an array of resolved promises in order

  • @RajBala
    @RajBala 5 років тому +6

    Did he say தமிழ்? DID HE JUST SAY தமிழ்? 👏👏

  • @DeepakKumar-uz4xy
    @DeepakKumar-uz4xy 5 років тому

    6:44 encapsulation like in Python

  • @manishkhedawat6999
    @manishkhedawat6999 5 років тому +1

    Thanks for Promise.allSettled()

  • @latand
    @latand 5 років тому +2

    Wow... updated node! Wait, what? Python already has many of these new features? Ah...

  • @bhargavkaranam
    @bhargavkaranam 5 років тому

    Private class fields and global this

  • @BrendanBaldwin
    @BrendanBaldwin 5 років тому

    yay numeric separators like ruby!

  • @markocen
    @markocen 5 років тому +2

    Safari is the new IE 😂

    • @xali2008
      @xali2008 5 років тому

      Safari mobile still not supporting Media Source Extensions API or Full Screen API.

    • @brymstoner
      @brymstoner 5 років тому +2

      I don't even go out of my way to cater to it. If Apple can't be bothered to keep pace with everyone else, I can't be bothered to slow down for them.

  • @axcelleria
    @axcelleria 5 років тому +6

    Ms Edge: am I joke to you?

    • @mathiasbynens
      @mathiasbynens 5 років тому +2

      See 00:18. Edge is adopting Chromium and V8, so it’ll soon support the same features that Chrome supports.

  • @jonmichaelgalindo
    @jonmichaelgalindo 5 років тому

    Finalizers are cool, but I really just want some straight-forward garbage collection control in JS. >:-|

  • @bharathhs3996
    @bharathhs3996 5 років тому

    @ 8:03 is it fine not to use constructor in parent class?

    • @mathiasbynens
      @mathiasbynens 5 років тому

      In this example, we need the constructor in the `Animal` class, since we want to assign the value passed to the constructor to the `name` field.

  • @Sancarn
    @Sancarn 5 років тому

    Imo, it's actually really unfortunate private class fields were implemented. Now there will be some cases where you can't inspect the content of objects used by some other websites, which seems like both a security hazard and also just bad manners imo... Anyway, what was the problem with using _ to dictate private variables? Finally what's with the screwed up syntax? idk... Not happy about this feature personally.

  • @tommedcouk
    @tommedcouk 5 років тому

    `for( const match of string.matchAll())` - shouldn't that be `let` instead of const because the value of this variable is being reassigned?

    • @flakaal
      @flakaal 5 років тому

      The 'match' is not beign assigned in case of an iteration match is the current value.

    • @bartvankeersop8218
      @bartvankeersop8218 5 років тому

      A new block scope is created for every iteration: medium.com/@mautayro/es6-variable-declaration-for-loops-why-const-works-in-a-for-in-loop-but-not-in-a-normal-a200cc5467c2

    • @mathiasbynens
      @mathiasbynens 5 років тому

      `match` is not being re-assigned within the loop body or its condition, so it can be `const`. The code example is correct.

  • @ruhankhandaker5198
    @ruhankhandaker5198 5 років тому

    cool

  • @jijin-malayalicoder5275
    @jijin-malayalicoder5275 4 роки тому

    ❤️❤️

  • @user-tn3fo3pj2x
    @user-tn3fo3pj2x 5 років тому

    # is by convention a comment ... also javascript is famous for being a classless language everything is an object, what happens with the prototype?

  • @iraasta
    @iraasta 5 років тому +1

    Year 2019: JavaScript discovers monads exist

  • @nayaleezy
    @nayaleezy 5 років тому +10

    just become typescript already please

    • @ceaser8999
      @ceaser8999 5 років тому +2

      Lee Owen 😂😂😂😂😂😂

  • @yongzeyao1337
    @yongzeyao1337 5 років тому

    bigNumber pls?

  • @arodic
    @arodic 5 років тому

    What about Edge (not shown in browser support slides)?

    • @mathiasbynens
      @mathiasbynens 5 років тому +13

      Edge is soon going to be Chromium-based, so it’s the same as Chrome (and Opera etc.). It’s one of the first things we mention: 00:18

  • @yashmohod5947
    @yashmohod5947 4 роки тому

    hi

  • @miroslavparvanov
    @miroslavparvanov 5 років тому +9

    It's funny how they don't mention Edge like it' non-existent LOL

    • @mathiasbynens
      @mathiasbynens 5 років тому +17

      On the contrary, it’s one of the first things we mention: 00:18

    • @miroslavparvanov
      @miroslavparvanov 5 років тому

      @@mathiasbynens sorry, my bad

    • @MundoFinky
      @MundoFinky 5 років тому +1

      They don't mention it because it will use Chromium very soon so it will support everything Chrome does.

  • @dinoscheidt
    @dinoscheidt 5 років тому +1

    God that hash private field class annotation is ugly. Why could they not just use typescripts implementation? Just add private in the front of it

  • @yongkiamirson2376
    @yongkiamirson2376 2 роки тому

    Freinds
    God Blees
    Ysa Mdn

  • @RajeshKumar-ob9zy
    @RajeshKumar-ob9zy 5 років тому

    This comment is just for fun... for all others, polyfill is available... ;-)

  • @CzajekTutorialowiec
    @CzajekTutorialowiec 5 років тому

    They could have done anything to make JS better and they thought private fields is what we need? The getter/setter craze amazes me.

  • @platin2148
    @platin2148 5 років тому

    Thanks for all the great JS applications on desktop. (Huge amount of sarcasm incoming)
    JS is practically that what we don't need currently as it try's to make software more generic so it runs on any hardware but we actually need software that is build for hardware.

  • @evolutionxbox
    @evolutionxbox 5 років тому +2

    STOP STICKING NEW IN FRONT OF APIS

  • @teckyify
    @teckyify 5 років тому +4

    I wished nothing was new. JS gets increasingly like a junk heap like C#. What we need is less syntax. The only features they needed to get done are multi-threaded Array.prototype.map, Array-comprehensions, some kind of pattern-matching. Everything else is just for developers who only understand superficial things like syntax, but no semantics.

    • @memecomposerdotcom
      @memecomposerdotcom 5 років тому

      If you intended to mean "array comprehension" the same as python's list comprehension, please stop, list comprehensions in python make code very unreadable because they are usually too long, you can always you Arra.prototype.map to emulate simple list comprehensions in python

  • @WinnerSingh
    @WinnerSingh 5 років тому +1

    I want to be Professional React developer.

  • @sigmiami
    @sigmiami 4 роки тому

    Class is messing

  • @DustinDeus
    @DustinDeus 5 років тому

    Funny to see that they completly ignore Microsoft Edge but scarry that I need to support it :D

    • @ahmadalfy
      @ahmadalfy 5 років тому +1

      Edge is now built on top of Chromium. It's not on the list because it already follow the development cycle now and all the features will be available to it

    • @mathiasbynens
      @mathiasbynens 5 років тому +5

      We didn’t ignore Edge at all. In fact, Edge soon being based on Chromium is one of the first things we mention: 00:18

    • @DustinDeus
      @DustinDeus 5 років тому

      @@mathiasbynens Yeah, that's correct when we are talking about the future but the current state may differ and it will take a lot of time until an industry has migrated from Edge/IE to Edge (V8) that's the state we have to handle right now and in foreseeable future. But anyway the message is clear and keep up the great work!

  • @leksanders8908
    @leksanders8908 5 років тому +1

    there is no point to invent tons of workarounds to speedup garbage collector, it's better to have a language having no such garbage collector

    • @skierpage
      @skierpage 5 років тому

      Compile your GC-free language to WebAssembly.

  • @terencecheung1374
    @terencecheung1374 5 років тому

    82 DISLIKES FROM IE

  • @AlexanderShelestov
    @AlexanderShelestov 5 років тому

    It's a pity that so ugly language as JS, is getting popular everywhere and have the support of corporations.
    Many other languages much easier, much better, have already all these features, with not so ugly syntax and weird parts.

    • @memecomposerdotcom
      @memecomposerdotcom 5 років тому

      What is the ugly part you are talking about?

    • @skierpage
      @skierpage 5 років тому

      "getting popular"?!! JavaScript runs on 6 billion connected PCs and phones allowing universal zero-install software. Nothing else does, or is likely to. It's tricky to upgrade an ubiquitous language, I think TC39 is doing a fine job with all its constraints.