Structs in JS might change everything

Поділитися
Вставка
  • Опубліковано 12 жов 2024
  • I am so hyped about structs. This proposal is way cooler than I expected, and I hope this gets y'all hyped too.
    Thank you clerk.com for sponsoring today's video!
    SOURCE
    github.com/tc3...
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏

КОМЕНТАРІ • 233

  • @JinKee
    @JinKee 2 дні тому +577

    eventually JS becomes Rust because on a long enough timeframe everything evolves into a crab.

    • @md6886
      @md6886 2 дні тому +30

      RustJS

    • @Midnightfalk
      @Midnightfalk 2 дні тому +12

      some things evolve into a crab, most evolve into crap

    • @AdamFiregate
      @AdamFiregate 2 дні тому +13

      It becomes a mutated monster like C++ 🙂

    • @_y7ya
      @_y7ya 2 дні тому +12

      RustScript, no longer any need for Oracle's JavaScript trademark :D
      I'd rather recruiters hitting me up for Rust jobs as a RustScript dev than Java jobs as a JavaScript dev.

    • @joshuachan6317
      @joshuachan6317 2 дні тому

      ​@@Midnightfalk 😂😂😂

  • @mellkam
    @mellkam 2 дні тому +125

    “This proposal is intended to be minimal” while this proposal introduces 4 new features and 3 new keywords🙃

    • @FakeRyanGuild
      @FakeRyanGuild 2 дні тому +22

      I don’t think most of these kids remember the records and slices proposal.
      A long time ago in a tc39 far far away the functional bros had rained supreme since the dawn of react 16. But even as their power was at its zenith a shadow was brewing in the halls of pallo alto. The records proposal was prophesied to be the chosen one to lead his people to the immutable promised land where const was const. Then the browser vendors attacked, it was a bloodbath, the records proposal was cast into stage 2 for all eternity because it “ChAnGEd ThE MEmORy MoDLe ToO MuCH”. The people now live in fear of the const/let debate. An there was much rejoicing

    • @SeanJMay
      @SeanJMay 2 дні тому +13

      What's the alternative spec, for shared memory access, for true spec minimalism?
      A yolo keyword that lets browser pages access memory by RAM address?

    • @PraiseYeezus
      @PraiseYeezus 2 дні тому +6

      @@FakeRyanGuild you were in the zone when you wrote this lol, let me stand up and clap

    • @anon_y_mousse
      @anon_y_mousse 2 дні тому

      @@FakeRyanGuild Funny, and while it could do with quite a few edits, I'll just point out one: s/rained/reigned/ .

    • @lu_ck
      @lu_ck День тому +2

      @@SeanJMay this is the greatest proposal i have ever seen i want yolo so bad now

  • @albbus-stack
    @albbus-stack 2 дні тому +121

    never thought I'd live long enough to see the unsafe keyword in js 🎉

    • @runaway09
      @runaway09 2 дні тому +13

      Because almost all the lines are unsafe by default

    • @helleyequeue
      @helleyequeue 2 дні тому +3

      finally a word for the obvious

    • @inexistente
      @inexistente 2 дні тому +10

      "use unsafe";

    • @vchap01
      @vchap01 2 дні тому +2

      I thought that keyword is going to allow pointers in JS.

    • @thatsalot3577
      @thatsalot3577 2 дні тому +1

      As if rest of the code is good

  • @aLfRemArShMeLlOw
    @aLfRemArShMeLlOw 2 дні тому +94

    Cue developers wrapping their whole app in unsafe blocks

  • @CottidaeSEA
    @CottidaeSEA 2 дні тому +13

    It's kind of crazy that we might be getting structs in the same language where you can overwrite and hijack pretty much any core function in the entire language.

  • @chrislanejones
    @chrislanejones 2 дні тому +31

    This is going to help WebGPU and React Three Fiber immensely.

  • @aghileslounis
    @aghileslounis 2 дні тому +19

    "Everything will be rewritten in JS" was never been this close 😃

  • @GordonChil
    @GordonChil 2 дні тому +9

    Linux guy: "when it breaks, it sucks. And that's coming from somebody whose audio doesn't work right now." omg. I literally lol'd. 🤣😂💀

  • @rokasbarasa1
    @rokasbarasa1 2 дні тому +7

    I like that JavaScript is becoming more and more like what C++ should have been.

  • @danhorus
    @danhorus 2 дні тому +28

    3:30 umm, code blocks are not closures. A closure is a function combined with an environment of names in scope

    • @thatsalot3577
      @thatsalot3577 2 дні тому +4

      In some languages like groovy, code blocks are generally referred as closures, so he might be referencing that

    • @dealloc
      @dealloc 2 дні тому

      @@thatsalot3577 Groovy uses a syntax that looks like blocks in C-style languages. It's still an actual closure under the hood (groovy.lang.Closure) that can be called later, unlike a block which groups instructions and are executed without having to "call" the block.
      It's equivalent to `const x = function () {}` or `const x = () => {}` declaration in JavaScript.

  • @elagrion
    @elagrion 2 дні тому +12

    Good to see js getting stuff from the 80s bit by bit. At this rate, by 2040 it will become a complete language.

  • @dezly-macauley
    @dezly-macauley 2 дні тому +53

    As someone who switched from TypeScript to Rust and Go I find this hilarious but also super cool.
    This is why JavaScript is the GOAT of programming languages. It is like an endlessly evolving Pokemon. 🤣

    • @AdamFiregate
      @AdamFiregate 2 дні тому +10

      Mutating Pokemon enough times becomes JS, C++ potion

    • @roccociccone597
      @roccociccone597 2 дні тому

      It’s literally becoming c++. And c++ sucks balls

    • @dezly-macauley
      @dezly-macauley 2 дні тому +1

      @@AdamFiregate I couple of months ago TS devs (Well JS devs to be fair) were bashing Rust and now look where where we are. Calling it now... Sooner or later TS and JS will become one entity and then that will morph into something that looks like Go or Rust

    • @Joshua.Developer
      @Joshua.Developer 2 дні тому

      It's not the got folks just refuse to move on past it. Elm is the goat

    • @sledgex9
      @sledgex9 2 дні тому

      "It is like an endlessly evolving Pokemon" -> You probably haven't met C++

  • @chess4964
    @chess4964 День тому +3

    All these proposals wanna make JS like Golang

  • @frankroos1167
    @frankroos1167 2 дні тому +14

    This is the cue for a whole new generation of programmers repeating the mistakes that many have made before them, and have remedied already in other languages.
    I am really wondering: Do we really need javascript to become a full-blown programming language? Do we really need to build entire applications running in a browser?
    If the answers are all yes, then this is a seriously good step into the right direction. Let the programmers without a clue about multi-threading feel the pain, and become better programmers.

    • @anon_y_mousse
      @anon_y_mousse 2 дні тому +6

      It already is a full blown programming language that people write whole apps to run in the web browser with. Some people even write whole apps that run outside of the browser using various runtimes. It was never intended for that and shouldn't be used for that now, but it won't stop people from doing such crazy things. It's like the various kernel projects that have been started over the years in languages ranging from BASIC to Java. Inappropriate isn't in some people's vocabulary.

    • @Nick12_45
      @Nick12_45 День тому +4

      I feel stupid for saying this but what the heck do you mean "a full-blown programming language"? Pretty sure it already is a language that you can make pretty much any program in

    • @jthoward
      @jthoward День тому +4

      I have a mobile app, server, and admin portal all running on JS (with TypeScript of course). I think it's fair to say it's a real language

  • @danser_theplayer01
    @danser_theplayer01 2 дні тому +9

    Ah yes an exiting proposal, now all I have to do is wait 10 fvcking years before they make it real AND supported in vanilla javascript in most environments (browsers and runtimes).

    • @kzl1nus648
      @kzl1nus648 День тому +1

      Would you rather have 10 not thought out features in a year or 1 really good feature with a solid api in 10 years?

  • @spicynoodle7419
    @spicynoodle7419 2 дні тому +18

    Finally something good in JS-land. I hope we don't have to wait 10 years for this proposal to be implemented. Temporal, where you at?

    • @rallisf1
      @rallisf1 2 дні тому

      As of now I'd say it's at least 2 years away if ever implemented.

    • @ouiVEVO
      @ouiVEVO 2 дні тому +4

      Well, temporal is obviously lost to time

    • @theairaccumulator7144
      @theairaccumulator7144 2 дні тому +2

      I'd say 59 years to be implemented because this looks pretty dumb and pointless

  • @emilemil1
    @emilemil1 2 дні тому +7

    If structs are so similar to classes, why make it its own thing and not just "sealed class"?
    It would also be sweet to have something like a shared() function that takes an arbitrary object and locks it down to basically become a struct instance, provided it meets the criteria for conversion.

    • @CottidaeSEA
      @CottidaeSEA 2 дні тому

      Don't turn your foot gun into a shotgun.

    • @dealloc
      @dealloc День тому

      Sealed classes is not the same as a fixed-layout struct. The first is a high-level paradigm in OOP, the other is a data-oriented concept in general computing.
      There is already Object.seal to to prevent extensions and Object.freeze which further can make an object immutable. But they are not zero-cost.

    • @maksymiliank5135
      @maksymiliank5135 День тому

      @@dealloc It seems to me that structs in js are going to have virtual methods as well, since they can be extended and methods can be called on instances of derived objects as well. It's still OOP in my book. The only difference is that the layout is known you don't need to store additional data to determine if a property exists or not.
      EDIT: Btw data oriented does not mean that you use structs, it just means that you design the memory layout of your program to make better use of caches on your cpu and it's easier to parallelize some parts of your code

    • @dealloc
      @dealloc 20 годин тому

      @@maksymiliank5135 Re edit: Yes, but structs are often part of data oriented design (i.e. SoA vs AoS being an example).
      Yes I agree the structs proposal for JS with "extends" and the idea of "instance" with the `new` keyword still at least feels OO.
      My point was just that it's still seperate concept from 'sealed'/'final' classes.

  • @rns10
    @rns10 2 дні тому +8

    0:49 the cool Theo finally released from basement.

  • @gadzbi123
    @gadzbi123 2 дні тому +9

    can't wait for pointers in js in the next proposal :D

  • @SeanJMay
    @SeanJMay 2 дні тому +2

    22:12 Binary Data Overlay Views
    This would replicate C's "is it just a block of memory, or is it an array of structs" behavior, where you can say "my struct starts at this memory address", and C gives you a struct to work with.
    Same deal with shader code.
    With this feature, done at a very, very low level, you could loop over an array buffer with a `for struct of arraybuffer` or implement pointers to structs. There are massive challenges to that in JS, and the struct array would serve the same purpose (as long as the struct array is 100% contiguous in memory).

  • @Exilum
    @Exilum День тому

    I like that you pointed out that it allows for everyone to get faster code. Even with how JS devs are on libraries, they tend to forget features that benefit library code eventually benefits them.

  • @pokefreak2112
    @pokefreak2112 2 дні тому +1

    Not a fan of introducing that many keywords in a single proposal but holy moly am I excited for this

  • @fitzdigital7534
    @fitzdigital7534 День тому

    I love that you're doing skits for your sponsors because it's a perfect example of a growth mindset, in a sense that is rarely seen in public view -- going from (I'm sure you know) noticeably amateur, to ever so gradually improving each time. You've got a ways to go, but the trajectory is clear, and I hope that's as validating to everyone else who needs to go "all in" on trying to grow as it is to me. Every video, my disbelief gets a little bit closer to suspending. It rules. Good shit!
    Also yeah structs would be neat to have!

  • @aaaidan
    @aaaidan 2 дні тому +1

    6:43 “expert programmers and also the primeagen” casual but brutal dunk 😂

  • @YourConsole
    @YourConsole 2 дні тому +2

    That audio jab at linux from the ad was too real...

  • @EngineerNick
    @EngineerNick 2 дні тому +8

    struct.... but fields are undefined at the start... oh no. methods wut? inheritance?! hold on... unsafe? They should leave off methods, and add traits instead.

    • @maksymiliank5135
      @maksymiliank5135 День тому

      Yup, it's just like a class in every other language. Instead of having prototypical inheritance and the ability to attach random properties to existing objects

  • @soyattle
    @soyattle 2 дні тому

    Binary data overlay views is a lot more words that means the “flyweight pattern” and I’m legit excited for that.

  • @MommysGoodPuppy
    @MommysGoodPuppy 2 дні тому +4

    as a webworker aficionado and someone who does a lot of ffi in deno, this is super exciting

    • @SERWERWARMINEPL
      @SERWERWARMINEPL 2 дні тому +1

      troon

    • @RustIsWinning
      @RustIsWinning 2 дні тому

      ​@@SERWERWARMINEPLTron is a great movie I agree.

    • @SERWERWARMINEPL
      @SERWERWARMINEPL 2 дні тому +1

      @@RustIsWinning funny coincidence you code in rust

    • @RustIsWinning
      @RustIsWinning 2 дні тому +1

      @@SERWERWARMINEPL funny coincidence that the average polish male meme exists kek

    • @MommysGoodPuppy
      @MommysGoodPuppy 2 дні тому +1

      ​@@SERWERWARMINEPL you know this is a video about javascript right?

  • @HermesSoilder
    @HermesSoilder 2 дні тому +6

    This doesn’t make JS more confusing to yall??

  • @ShaharHarshuv
    @ShaharHarshuv День тому

    I actually might have a usecase for this in my app code. We do a lot of in-memory calculation in the client, and being able to share memory between threads could really help.

  • @grumpylibrarian
    @grumpylibrarian День тому +1

    A couple of quick concerns. But I do like the basics of what this is trying to accomplish, so this is already miles beyond the many piles of garbage JS proposals that pop up every month or so.
    First, the syntax of the 'unsafe{...}; block. The semantics are spot-on; make it mandatory to mark the block to demonstrate you're a professional and please stand back. But the syntax of "unsafe{...}' is unlike anything else in JS, while also being painfully close to two other valid JS syntaxes:
    unsafe: {...} // This is just labeling a code block
    unsafe(){...} // This is our ol' buddy the function
    A better approach is one I was thinking of throughout the video, then the proposal itself alluded to it, the "use strict" directive. Why can't this be a directive?
    {
    "unsafe";
    ...
    }
    This has the advantage of not having to introduce entirely new parsing rules and even backwards compatibility. One could transpile "struct" to "class" and have the execution environment cheerfully ignore the "unsafe"; directives, and the code will work. It won't have the safety rails, but it would work.
    The second concern is just my lack of knowledge of how this is going to work with 'instanceof' and static members, especially MyStructure[Symbol.hasInstance](item). If these must be placed within the structure declaration or even if I can't change the Symbol.hasInstance property of a structure definition, I can live with that, as long as the defaults are sensible. Such as MyStructureChild extends MyStructureParent, const structure=new MyStructureChild, (structure instanceof MyStructureParent)===true.
    Oh, that reminds me of another concern. Are these typeof structure=='object'? Something else? The Record and Tuple proposal introduced new base types. This sounds like it just produces automatically-sealed objects, which I would expect would have a typeof 'object'. But a typeof 'struct' wouldn't be surprising and could be useful.

  • @Fanaro
    @Fanaro 2 дні тому +1

    Structs are so awesome, so simple and effective.

  • @jaysistar2711
    @jaysistar2711 2 дні тому

    I actually thought that the proposals would go toward optimized access of `ArrayBuffer`s with a `struct` just being like a special kind of `DataView`. That's actually what WASM does, and it's similar to Common LISP, where a vector (like an ArrayBuffer) gets macros made to access them at specific places with specific alignments (the `struct` fields), which are all different sizes. Although this proposal may be very benefical, they really should think about how to make it orthoganal to the existing language.

  • @michaelgaziotis2538
    @michaelgaziotis2538 2 дні тому +1

    Good initiative overall, will help certain libs to become faster. I don't see the Rust analogies some are talking about though, unless it's just for jokes. Because a) there's nothing analogous to Rust's compile-time memory safety features like the borrow checker. And b) this still feels quite primitive compared to what you can do inside unsafe blocks in most application-level languages, never mind Rust, which is usually near-full access to process memory via pointers... if you're feeling risky.

  • @veronikawinters6435
    @veronikawinters6435 День тому

    You taught me something before prime. Good job

  • @ezekielchentnik
    @ezekielchentnik 2 дні тому

    this would be a game changer for real-time webgl rendering

  • @themanimal07
    @themanimal07 2 дні тому

    I have no idea what any of this is coming into it but damn is it interesting and helpful in understanding what code is capable of.

  • @orionh5535
    @orionh5535 День тому

    In the words of the Sr javascript developer, I love it.

  • @akrishnadevotee
    @akrishnadevotee 2 дні тому +8

    React to the latest Deno 2.0 ad!

  • @alexsmart2612
    @alexsmart2612 День тому

    Oh shared mutable state, always such a promising idea! Nothing to worry about here at all.

  • @varhar3296
    @varhar3296 2 дні тому +1

    Shared structs can wait, but give me structs right now! Multiple times i debated wether to use a class for readability, or an array for performance. A struct ( btw const class ) gives both

  • @zlatkoiliev8927
    @zlatkoiliev8927 2 дні тому

    Are we going back to OOP then?!? Structs are really cool! I first saw them on swift and I absolutely love them. Was kinda sad they miss in JS. Seems like it won’t be for much longer 😊

  • @ShantanuAryan67
    @ShantanuAryan67 День тому

    Imagine the potential if you can also share data between WASM and JS engines using structs!!

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff 2 дні тому +1

    16:58 it they didn't implement that (tear free property read write) web pages could cause native access violations or access memory that should not be accessible

  • @akam9919
    @akam9919 2 дні тому

    Real fast with four ways to get a substring, of which only two don't suck.

  • @dtory
    @dtory 2 дні тому +3

    I know it a short sponsorship but can you do another video explaining what that service is actually is. Have seen a lot of ads and i still don't know what it is ?

    • @Alex-Clerk
      @Alex-Clerk 2 дні тому

      Hi @dtory - Alex from Clerk here 👋- Clerk is a complete suite of embeddable UIs, flexible APIs, and admin dashboards to authenticate and manage your users. We offer secure pre-built components for sign-up, sign-in, and user profile so you don't have to build and maintain that aspect of your application. You might find this short overview video (

  • @JLarky
    @JLarky 2 дні тому

    10:25 I think this example was there to show that you can't change "this" of distance method you have to call that method only on the object

  • @guppy13
    @guppy13 2 дні тому +3

    this is amazing TC39 should add as manyfeatures to javascript as possible so javascript can become the first everything-lang that supports all programming features imaginable that would be awesome

  • @ProtectMeYou
    @ProtectMeYou День тому

    This is huge. Hope they release it pronto

  • @marcuss.abildskov7175
    @marcuss.abildskov7175 2 дні тому

    Now we just need built in TypeScript runtime types... oh wait we already have that

  • @dr_nyt4041
    @dr_nyt4041 2 дні тому +2

    And now we have unsafe in JS before GTA 6

    • @ristekostadinov2820
      @ristekostadinov2820 2 дні тому +1

      the funniest thing is they will have unsafe before strict types

  • @huzaifac137
    @huzaifac137 2 дні тому

    Its good as long they dont make struct like typescript made the interface term which has completely different use in other languages but in typescript its just a way to shape an object or other types

  • @AutisticThinker
    @AutisticThinker 2 дні тому +1

    You'all huffing paint

  • @seannewell397
    @seannewell397 2 дні тому +1

    this changes everything

  • @lautarodapin
    @lautarodapin 2 дні тому

    I use a lot web workers with tan stack query to transform polygons, this would be huge for that I guess

  • @advaithaj303
    @advaithaj303 День тому

    From what I understood, this is gonna help with sharing the data between threads through postmessage, i.e, it is gonna bypass(?) the serialisation. But how is it gonna be affected by something like JSON.stringify and JSON.parse? Is there any usecase outside multithreading that will significantly affect the performance?

  • @measureman168
    @measureman168 2 дні тому

    Tearing: As you're writing your name on a piece of paper, your annoying classmate is add af and rips it from your hands

  • @DP-ym4dg
    @DP-ym4dg 2 дні тому

    So actual classes are coming. Cool, cool.

  • @akritworanithiphong
    @akritworanithiphong 2 дні тому +1

    This is actually really cool.

  • @snatvb
    @snatvb 2 дні тому +1

    please, add option, result and mattern patching, and let's go rusty! :D

  • @BR-lx7py
    @BR-lx7py 2 дні тому +1

    I wonder if there will be a shared version of mutex for readonly access.

  • @pengurrito7136
    @pengurrito7136 День тому +1

    How can you possibly have fixed size structs without strict typing?

  • @affanyunas7693
    @affanyunas7693 11 годин тому

    js is not made for low level stuff, that's why we don't see structs and for example for low level we will find that js uses OOP heavily. It's just a matter of paradigm.

  • @BboyKeny
    @BboyKeny 2 дні тому

    I want this to be an easy way to share objects with wasm instances

  • @samtoohey93
    @samtoohey93 2 дні тому +5

    The audio not working comment makes me feel seen, and hurt at the same time 🤣

  • @kocokan
    @kocokan 2 дні тому +5

    Everything will be written in javascript

  • @Maxjoker98
    @Maxjoker98 День тому

    I don't think bolting on new features to JS really helps. JS needs a complete re-design. In fact, I think the whole way we're executing code in the browser needs a complete architectural re-design. How about a standardized VM and DOM API for that VM, so you can choose whatever language is most useful, instead of trying to fix a language that is fundamentally broken.
    I don't even hate JS, it's organically-adapted language design makes it somewhat well-suited to write web browser stuff, but adding features without removing others never leaves you with a clean language design(It needs to die in a fire, just to rise again like a phoenix bird). It's the same reason no actual developer wants to target or use Windows: All the stupid legacy stuff is preventing the platform from being great. The reason you won't ever have a good, built-in package manager in Windows is because M$ will always keep support for ancient InstallShield wizards etc. because some company doesn't want to upgrade their license, and M$ doesn't want to break their software. Such a package manager in parallel would never have a reasonable fraction of software support, and you could never depend on the package manager because some software doesn't support it.

  • @mateuszabramek7015
    @mateuszabramek7015 День тому

    Yeah, IDK about using this for speed. People will probably still use acceleration libs that use web assembly or other tricks like GPU computation in web dev through WebGL shader parameters. Not because this proposal sucks, but because they don't have to refactor code, just continue to use same libs as always.

  • @smithastley1616
    @smithastley1616 День тому

    I want to write this JavaScript code yesterday

  • @thelvadam5269
    @thelvadam5269 День тому

    Maybe we shouldn't be trying to turn JavaScript into the Everything language. Maybe there are some use cases better left to other languages. Just a thought.

  • @richardbray
    @richardbray 2 дні тому

    What is assertThrows()? Is that some library, or new JS syntax?

  • @bules12
    @bules12 2 дні тому

    My small hacking experience tells me: this will help someone to find a vulnerability to access memory that shouldn’t be accessible and making your browser behave as it shouldn’t (:

    • @lu_ck
      @lu_ck День тому

      i think the people making javascript (possibly the most tightly sandboxed language ever) won't have much of an issue implementing something every other language has had for a decade lol

  • @paw565
    @paw565 2 дні тому +1

    Just give me signals already!

  • @roccociccone597
    @roccociccone597 2 дні тому +16

    If you want fast and multithreaded software just use a language that is actually made for it like Go and rust. What’s the point of making JS behave this way, when the type system still sucks and you have nothing even resembling strict typing at run time. Just use something else and leave the Js bubble, its worth it. Imagine the horrendous mess you can produce with this.

    • @everythingisfine9988
      @everythingisfine9988 2 дні тому

      Reduced payroll. No need to hire out for specialized knowledge. Sat in on a hire up meeting discussing this very thing. In that conversation only React was to be used for all WebApp development for this reason 🫰💵

    • @girl_frotter
      @girl_frotter 2 дні тому

      Some times you just need stuff in the browser to go fast. Admittedly its rare that you'd need stuff like this but it would be nice to have a better way to share information between the main js thread and workers/wasm threads. The amount of memory copies you end up doing because of the existing browser apis is an actual limitation for running stuff like complex video/image manipulation pipelines in mobile browsers. Which ig you could argue people shouldn't be trying to do in the browser but wheres the fun in that?

    • @samuelmorkbednarzkepler
      @samuelmorkbednarzkepler 2 дні тому +4

      JS is the language of the web. You cant just "leave" it. What you're saying makes no sense.

    • @shapelessed
      @shapelessed 2 дні тому +3

      All this sounds like an absolutist/cultist trying to convince "the sheep" to wake up and give up... You give up! People will use whatever they want, some freaks like me like JS. Heck, I even wrote a filesystem in JS. Acknowledge the flaws, praise the parts that shine and move on...

    • @anon_y_mousse
      @anon_y_mousse 2 дні тому +1

      @@samuelmorkbednarzkepler While it is currently the language of the web, it wasn't always, doesn't have to be, doesn't deserve to be, and most definitely should be replaced.
      Does anyone remember VBScript?
      How about Java applets?
      Yeah, both sucked, but we still shouldn't be using JavaScript.

  • @omri9325
    @omri9325 2 дні тому

    They could've made the MicrosoftSharePoint worker to send a resignation message

  • @DanielVox.
    @DanielVox. 2 дні тому +2

    always love your videos sir! I always watch them to myself up to date on the latest tech news. Cheers man!

  • @boblol1465
    @boblol1465 2 дні тому

    1:00 NOOO AAAAAAAAAAAA HOWWWWW DID YOU KNOWW😭
    My audio actually works but everytime i start my laptop i have to mute it, and unmute it, or else it wont work

  • @rodnoycry
    @rodnoycry День тому

    18:13 That was rough

  • @gerritweiermann79
    @gerritweiermann79 2 дні тому

    How many keywords do you want to add? yes

  • @BrandonZacharie
    @BrandonZacharie День тому

    @3:35 "...most JS is already unsafe.." ... idk. i was under the impression that JS today is very much in the realm of memory-safe; mostly, by virtue of being single threaded. unsafe, to me, means c, c++, assembly, etc.

  • @onlycasual1
    @onlycasual1 2 дні тому +1

    Everything is having a rough time of it lately, it's getting changed all the time apparently lol

  • @ulrich-tonmoy
    @ulrich-tonmoy 2 дні тому

    JS on its way to rule them all
    Any application that can be written in JavaScript, will eventually be written in JavaScript

  • @phillipanselmo8540
    @phillipanselmo8540 2 дні тому +2

    the lengths that people will go in order not to use closures is astounding

    • @jacksonlevine9236
      @jacksonlevine9236 2 дні тому +1

      Odd, how would the problem solved here be solved by closures? I assumed closures were just a fun way to waste memory in js

  • @vetrivendhan6122
    @vetrivendhan6122 2 дні тому

    Why don't they just use Functional programming style for concurrency? Please refer how Elixir lang approach this concept. I really hate to work with inheritance and its disadvantages.

  • @magicsweet
    @magicsweet 2 дні тому

    It all kinda reminds me of objects in Java, for some reason.

  • @aymenbachiri-yh2hd
    @aymenbachiri-yh2hd 2 дні тому

    thank you for this video

  • @rafaeldeleon3386
    @rafaeldeleon3386 День тому

    I am still waiting for Record and Tuple to get added.

  • @SXsoft99
    @SXsoft99 2 дні тому +1

    as a person that has been using JS for the past 10 years in different projects(mainly frontend no serverside) I'm starting to not know JS any more
    but the struct thing, making a un-chagable class could have been fixed with a one time use parameter in it that if it's true then you can't change it from outside (basiacally what other languages did with allow dynamic attributes default off). The struct now makes me want to use typescript even less since it was the main thing that people advocate for

  • @TofuBug24
    @TofuBug24 2 дні тому

    So we've looped all the way back around to C?

  • @しめい-l4m
    @しめい-l4m 11 годин тому

    why don't they just admit that the idea to run applications that require highly performant concurrency on JS f.cked up and make a new language that looks like JS? (or even better, doesn't look like JS)
    JS was only intended to be a scripting language in the browser...

  • @maximilianlosch7479
    @maximilianlosch7479 2 дні тому +4

    This will just make a lot of bad code possible, whilst still requiring a ton of runtime checks. It will not believe, that the performance will be drastically better, without hard data. Doing anything this high performance should be a wasm only optimisation imho.
    These optimisations would be need to be done in the JIT in the Runtime, since there is no build step for JS. We then will see tradeoffs between Running stuff in a single thread vs. incuring startup cost with the optimisation steps.
    If you want optimal assembly, then ship optimal to the browser, dont just hope the browser will build that for you. Think of it as SSR for high-performance code.

  • @mateusvmv
    @mateusvmv 2 дні тому +1

    yoo js will become a real language
    we'll do FFI without hassle! want a database? sure champ, just memcpy this into that file lmao
    and if this gets into the browser we'll have zero copy WASM

  • @n30v4
    @n30v4 День тому +1

    More skill gaps create more opportunities for real programmers.

  • @AndrewSmithDev
    @AndrewSmithDev 2 дні тому +1

    One of the best things about JS is it's async nature and the event loop. This would ruin that. Writing with mutexs and locks is terrible.

  • @owenwexler7214
    @owenwexler7214 День тому

    So we have types, objects, classes, interfaces, and now structs. Oh JavaScript…

  • @skuwamy
    @skuwamy 2 дні тому +1

    Waiting for them to touch Lifetimes since they want to be Rust hahahahahahhaah

  • @boblol1465
    @boblol1465 2 дні тому

    bro, luajit had this years before yall, and even better, its called ffi

  • @yunica
    @yunica 2 дні тому

    When are you uploading the thing you did with Dan

  • @LlamaPony
    @LlamaPony 2 дні тому +2

    well now js is unsafe++

  • @Jam-ht2ky
    @Jam-ht2ky День тому

    We need different numeric types, pointers and real something closer to multithreading that's all