Webassembly Is NOT What You Think!

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ม.ค. 2025

ความคิดเห็น • 102

  • @zyzzyva303
    @zyzzyva303 2 หลายเดือนก่อน +44

    Underrated presentation.

  • @lhxperimental
    @lhxperimental 2 หลายเดือนก่อน +6

    This is almost a few months of intense learning and a few years of passive reading and assimilation condensed into an hour. Thank you, I take a bow. 🙏

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +4

      Seeing comments like yours really make all the efforts and the suffering (writer's blocks, self-doubt etc.) worth it. Thank you!

  • @DavidLindes
    @DavidLindes หลายเดือนก่อน +1

    34:56 - your comment in the sidebar about NEVER running curl | bash just earned you a subscription. I HATE that that's so common these days!!!
    (Interesting video overall, too. A bit off target for what I was hoping to learn today, but super interesting!)

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  หลายเดือนก่อน +1

      Thank you for the feedback! Yeah, basic shell hygiene somehow got out of fashion lately.

  • @johanngambolputty5351
    @johanngambolputty5351 2 หลายเดือนก่อน +17

    Huh, I was already fairly pleased with being able to run egui rust apps in the browser (I'm not really a web guy and still don't really know any js or html), but using it as a sort of intermediate language for plugins really blew my mind. I guess next is running a wasm runtime in wasm so that you can have multilanguage plugins in your wasm app, all client side.

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +1

      Wasm in a wasm runtime will definitely happen at some point.

  • @nitsanbh
    @nitsanbh 2 หลายเดือนก่อน +4

    to summarize, WebAssembly for server-side is basically a JVM for C/C++/Rust

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +2

      In part, yes.

    • @__Brandon__
      @__Brandon__ 2 หลายเดือนก่อน +3

      @@nitsanbh and java byte code can be compiled into wasm. It truly is the compile once run everywhere. We are just counting on a good posix compliant runtime so we can use the standard library

  • @petemoss3160
    @petemoss3160 2 หลายเดือนก่อน +8

    WASMCLOUD got me interested in this idea of a k8s replacement or something like BEAMVM with any lang, then i realized it was NATS doing the heavy lifting with a 'wasm module' wrapper.

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +3

      Yes, it seems a lot of the "magic" in wasmcloud is done with NATS.

    • @ArcRCG
      @ArcRCG 2 หลายเดือนก่อน +1

      NATS is awesome

  • @Foundingfatherfuzzy
    @Foundingfatherfuzzy 2 หลายเดือนก่อน

    Thank you genuinely for making this video! I did a small amount of research into WASM and decided AGAINST pursuing it further due to my own misconceptions. Thank you for making this video. You've completely changed my mind about WASM. You probably literally changed my life by making this video. Thanks so much!

  • @isaacdruin
    @isaacdruin 2 หลายเดือนก่อน +1

    I literally just learned about Nginx and what it does - and now I'm here, somehow (thanks algorithm).
    This is all very intimidating. How does a person ever understand enough to build this stuff in the first place?
    Great video. Very impressive presentation. Thanks!

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน

      Thank you for the feedback!
      Nginx is an amazing piece of technology. Have you also checked openresty? Back in the day I've built a file sharing service with expiring download links using just openresty and lua. It was fun and performed really well.

    • @bobsawey
      @bobsawey 2 หลายเดือนก่อน

      by learning how to think and learn every single time there is either or both:
      a new attempt to get familiar with new theory, either in breadth or depth( 🤔 )
      or
      *whilst in some fuge state drenched delusions of simplicity*, we experiment with, or attempt to, put theory into practice under new rules, conditions, or some other imaginary construct that makes what we are calling trying the out be unique or not-unique to what we understand our prior experience to be, in whole or in its parts, even if it absolutely is or is not or otherwise
      that's how. good luck!

  • @AustinClemLive
    @AustinClemLive 2 หลายเดือนก่อน +7

    Subbed for this HIGH QUALITY CONTENT thank you!

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน

      Thank you :)

    • @MissionaryCat
      @MissionaryCat 2 หลายเดือนก่อน

      same, mindblowing actually, just got my remote setup with zellij ready and this just opened way broader picture of what could be possible. thanks to author.

  • @IndigoVFX
    @IndigoVFX 2 หลายเดือนก่อน +3

    Absolutely superb content, well researched and very much appreciated. Haven't come across your channel before - needless to say, a very happy new subscriber. Thank you for the hype-less succinct and quality content and detailed explanations with examples.

  • @menmikimen
    @menmikimen 2 หลายเดือนก่อน +3

    Great video. I cannot wait for wasm ecosystem to mature.

  • @drivetrainerYT
    @drivetrainerYT 2 หลายเดือนก่อน

    I did not know I needed this. Then this 1hr novel made me check twice if I'm subsribed.
    Thx brother, a mountain of respect and kudos to you for your work.

  • @pirolas001
    @pirolas001 2 หลายเดือนก่อน

    I stable across your video at 2 am and here am I at the end of it: I learned so much with you and I will test some stuff out! You have my deepest gratitude and appreciate to all the resources and research you made! I'm subscribing and liked your video! Hope other people find your work! Amazing! Keep going!

  • @victorpinasarnault9135
    @victorpinasarnault9135 2 หลายเดือนก่อน +4

    This is the most concise, detailed and deep explanation of WebAssembly that I ever heard!

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +1

      Thank you so much for the feedback! Glad you liked it :)

  • @DerSolinski
    @DerSolinski 2 หลายเดือนก่อน +1

    They are working on a WASM GC.
    It's still young and unripe.
    It will be distilled once WASM APIs become the norm.
    And I'm pretty certain it will take over IOT, then mandatory HW vendor based dev env will only be relevant to implement the WASI standards.

  • @ramonpereira4460
    @ramonpereira4460 2 หลายเดือนก่อน +7

    We all thought JS was gone. Plot twist: Webassembly is just a trojan horse for JS taking over servers once and for all

  • @EverRusting
    @EverRusting 2 หลายเดือนก่อน +1

    Why don't we use LLVM for this, I know LLVM is used to compile to machine code but we can still make a runtime for LLVM byte code

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน

      Good question for which I don't have an answer :).

  • @MuradBeybalaev
    @MuradBeybalaev 2 หลายเดือนก่อน

    41:52 Idioms mixed:
    "Right off the bat."
    "Right out of the box."

  • @cloud-native-corner
    @cloud-native-corner 2 หลายเดือนก่อน +2

    Excellent explanation!

  • @pythonBlender7
    @pythonBlender7 2 หลายเดือนก่อน +1

    Whars the background music?

  • @Jebusankel
    @Jebusankel 2 หลายเดือนก่อน

    Read up on wasm gc. It's a newer extension only barely supported, but it will allow gc'd languages to use the host runtime's garbage collector.

  • @dus10dnd
    @dus10dnd 2 หลายเดือนก่อน +1

    It isn't really a virtual CPU or a virtual machine, as the JVM has described it... it is machine code for a virtual CPU architecture.

  • @philippzimmermann2546
    @philippzimmermann2546 2 หลายเดือนก่อน +1

    Hello @The Art Of the Termina i like your video :),
    I am writing my Masters thesis about WebAssembly and have a question. (Minute 16:02 & 26:25)
    I developed a infrastucture that distributes webassembly to IOT devices. My IOT devices execute webbrowsers to execute webassembly, can you please explain why a wasm runtime (Wasm 3) is superior to a browser here?
    Edit: My goal is to do client-side/edege computing with WebAssembly

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +1

      Thank you @philippzimmermann2546.
      Well, if your wasm application doesn't need a graphical interface, then you don't need a browser and in such a case wasm3 would be a better choice. Simply because without a browser there will be less overhead in terms of disk space and RAM. I also think that the deployment process of your app could become simpler without a browser.

    • @philippzimmermann2546
      @philippzimmermann2546 2 หลายเดือนก่อน

      @@TheArtOfTheTerminal Thank you very much for your response. I will give it a try.
      Did I understand correctly that using a wasm runtime instead of a browser could imporove performance at the edge?

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +1

      @@philippzimmermann2546 Well, there IS a wasm runtime in a browser. But there's also a lot of other stuff that you probably don't need. So giving a try to a standalone wasm runtime makes sense.

    • @arjix8738
      @arjix8738 2 หลายเดือนก่อน +2

      you are writing a master thesis, yet you think this is not obvious?
      Have you used an IoT device before?
      Don't you know that they are usually really cheap and won't be able to run a whole ass browser?
      Have you never opened a resource monitor on your computer to see the memory hog named chrome/Firefox?

    • @erkintek
      @erkintek 2 หลายเดือนก่อน

      Think a big truck, and it's engine,

  • @edhahaz
    @edhahaz 2 หลายเดือนก่อน +1

    This video is packed with info. 👍🏻

  • @blueyon
    @blueyon 2 หลายเดือนก่อน +1

    Needs to be a webassembly os

    • @MissionaryCat
      @MissionaryCat 2 หลายเดือนก่อน +1

      zellij is written in rust and supports webassembly plugins, wonder if it could act more like os than multiplexer?

  • @AmalChandran-k8v
    @AmalChandran-k8v 2 หลายเดือนก่อน

    Really great video appreciate your efforts to explore and show case the use cases.🎉

  • @JorgeMendes75
    @JorgeMendes75 2 หลายเดือนก่อน

    Great video. Very thorough and educative. Thank you.

  • @sineptic
    @sineptic 2 หลายเดือนก่อน

    tell me please, what font do you use

  • @whtiequillBj
    @whtiequillBj 2 หลายเดือนก่อน +1

    after watching the video I don't think Flash was killed because of security. I feel it was killed cause it wasn't able to be used in business settings. It was made as a tool for making cool things like games and animations. It was never made for the purpose that Adobe wanted to make it be. Creativity is being locked behind paywalls.
    This is similar to why Skype was killed it wasn't made for the purpose that Microsoft wanted it put it to. It was a quirky, fun messaging application.

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +2

      Well, yes, I do agree there were other contributing factors like, say, HTML5 advancements. And of course, the financial dept at Adobe didn't see flash performing well. But I think that the bad rep caused by security issues hyperaccelerated all of that and eventually put this tech to sleep.

  • @johnbox5540
    @johnbox5540 2 หลายเดือนก่อน +1

    nice recommendation, subscribed to the channel. great content!

  • @SavagePlay
    @SavagePlay 2 หลายเดือนก่อน

    font pls

  • @figs3284
    @figs3284 2 หลายเดือนก่อน +2

    Fantastic video!

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน

      Glad you liked it. Thank you for the feedback!

  • @GrishTech
    @GrishTech 2 หลายเดือนก่อน +2

    This needs to go viral. What a good presentation.

  • @victorpinasarnault9135
    @victorpinasarnault9135 2 หลายเดือนก่อน

    Liked, subscribed and saved the video to my favorites.

  • @capability-snob
    @capability-snob 2 หลายเดือนก่อน +2

    A capability is an unforgeable reference that can be used to access a resource. Unforgeable in the sense that the only way to get one is to be given a reference (here, via the configuration). Capability systems have easy to audit security properties - we've been using them in high assurance environments for nearly 60 years.

    • @TheArtOfTheTerminal
      @TheArtOfTheTerminal  2 หลายเดือนก่อน +3

      Yes, good ideas never disappear, they resurface in their new "incarnations".

  • @mcol3
    @mcol3 2 หลายเดือนก่อน

    If you are confused, SMGS is asm.js

  • @couffin
    @couffin 2 หลายเดือนก่อน +3

    еще одно легендарное видео

  • @GreeneThumbs
    @GreeneThumbs 2 หลายเดือนก่อน

    Excellent video

  • @LaurentLaborde
    @LaurentLaborde 2 หลายเดือนก่อน

    i'll take anything that "replace" containers/K8S, but what kind of idiot think that wasm would ? wasm ain't bad though, it's just another VM.

    • @LaurentLaborde
      @LaurentLaborde 2 หลายเดือนก่อน

      probably the same idiots who thought that docker was a good idea ... (well, wasm is a good idea)

  • @vitalyl1327
    @vitalyl1327 2 หลายเดือนก่อน +2

    There is one fatal flaw in webassembly - it does not allow irreducible CFG. This alone renders it just a fancy toy.

    • @Heater-v1.0.0
      @Heater-v1.0.0 2 หลายเดือนก่อน

      By "irreducible CFG." I gather you mean that web assembly does not allow creation of the kind of spaghetti code one can make with GOTO. On the face of it that sounds like a good idea and I'm sure the creators have good reasons for not allowing that. Please explain how this makes web assembly a "fancy toy"?

    • @vitalyl1327
      @vitalyl1327 2 หลายเดือนก่อน +1

      @Heater-v1.0.0 take a few small methods - nice, perfectly procedural CFG. They call each other. Oopsie, once you consider the global control flow it is already likely not procedural. Then try to inline the methods. You get irreducible CFG. And your high level compiler may have a lot more information on what to inline, so you cannot defer it to the webassembly engine to do it in the last moment.
      Second example - any sufficiently complex FSM is irreducible. Any bytecode engine. Any parser or even a regular expression. Want to implement them efficiently? You won't, unless your underlying engine supports irreducible control flow, or, even better, computed goto. Want a threaded code VM? No chance without a computed goto (i.e., indirect jumps).

    • @nandoflorestan
      @nandoflorestan 2 หลายเดือนก่อน +2

      I think I could have understood you, if you didn't speak in alien.
      Also, to express certain things you might need to write a blog post or a book, instead of a comment.

    • @vitalyl1327
      @vitalyl1327 2 หลายเดือนก่อน +3

      @nandoflorestan huh? Graph reducibility is a concept everyone must know from an introductory course on compilers. To explain it simpler: WebAssembly is limited to the constraints of procedural programming, and does not allow any control flow that cannot be expressed as a combination of if-then, for, while, do and such.

    • @Heater-v1.0.0
      @Heater-v1.0.0 2 หลายเดือนก่อน +1

      @@vitalyl1327 Everyone must know? Don't forget that 99.999% of all humans and precious few software engineers have taken an introductory course on compilers. You are right WebAssembly retracts itself to those structured blocks. Back in the day we called it "structured programming" rather than "procedural programming" but never mind. I suspect that this that designed WebAssembly have indeed taken introductory courses on compilers or otherwise know what they are doing. Seems to me likely that such restrictions are there on purpose so as to satisfy security considerations in the browser and other sandboxes. Far from being a "fancy toy".

  • @parlor3115
    @parlor3115 2 หลายเดือนก่อน

    TLDR?

  • @arjix8738
    @arjix8738 2 หลายเดือนก่อน

    So it was exactly what i thought of it...clickbait title 😬