Why WebAssembly is the future of Web development

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 พ.ค. 2024
  • WebAssembly (WASM). A game changer for web development? Maybe!
    Sources and mentions:
    - Stack overflow Developer Survey 2019: insights.stackoverflow.com/su...
    - Google I/O 2019 (WebAssembly talk): • WebAssembly for Web De...
    - Doom 3 Webassembly demo: wasm.continuation-labs.com/d3...
    - Arxwasm Game: wasm.continuation-labs.com/ar...
    - Squoosh App: squoosh.app/
    - Webassembly Studio: webassembly.studio
    Social links:
    Twitter: / roulzhq
    Github: github.com/roulzhq
    Instagram: / roulzhq
    Discord: roulz.com/discord
  • บันเทิง

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

  • @calitts4708
    @calitts4708 2 ปีที่แล้ว +153

    I really thought Web Assembly was some kind of low level language to write more efficient frontend code. But now that I understand it? Dude, this thing is awesome!

    • @cytroyd
      @cytroyd 2 ปีที่แล้ว +18

      Assembly should be the universal language. Kids these days.

    • @lmao4982
      @lmao4982 2 ปีที่แล้ว +8

      @@cytroyd no what the actual fuck

    • @user-gu6tw4dn4w
      @user-gu6tw4dn4w 2 ปีที่แล้ว +28

      @@cytroyd The whole idea of assembly is not being universal. Kids these days.

    • @miloradowicz
      @miloradowicz ปีที่แล้ว

      ​@@user-gu6tw4dn4w it's an intermediate language, it can be universal.

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

      @@miloradowicz it's actually not an intermediate language, it's the definition of not being universal. Do your research kids xD

  • @Legapur9
    @Legapur9 2 ปีที่แล้ว +121

    figma uses webassembly! I think that is one of the best examples. It's a real product that tons of people use, and webassembly is a core reason as to why it's succesful. It's a pretty heavy weight application, but it runs smoothly right in the browser because of webassembly.

    • @maninthecrowd5076
      @maninthecrowd5076 2 ปีที่แล้ว +10

      AutoCAD uses webassembly. It is one of the bulkiest softwares and has become a mammoth and even that runs on web now.

    • @semmu93
      @semmu93 2 ปีที่แล้ว +1

      came here to mention figma too, glad it is the top comment, should be pinned

    • @DiogoSilva-xx8nz
      @DiogoSilva-xx8nz 2 ปีที่แล้ว +3

      figma is very buggy

    • @tdsora
      @tdsora 2 ปีที่แล้ว +7

      figma has the worst user experience

    • @kyronne1
      @kyronne1 ปีที่แล้ว +1

      Figma is the only website that would crash my laptop browser with 8gb ram consistently

  • @diligencehumility6971
    @diligencehumility6971 2 ปีที่แล้ว +224

    WebAssembly can do so much more than we realize. Right now you can run the original Diablo game in the browser. You can literally run everything. The ultimate cross platform opportunity, nobody really is grabbing. MS is building Blazor on top of WASM. But why build traditional limited HTML based apps? We can use Canvas to draw whatever we want. We could render our own components, completely cross platform single codebase

    • @DavidAlsh
      @DavidAlsh 2 ปีที่แล้ว +26

      Are you suggesting the idea of rendering an entire interface using a fullscreen canvas and building a UI kit on top of that? It's an interesting proposition and has the potential to be very performant

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +57

      Yes I agree! Though rendering UIs in a canvas has some downsides as well, for example accessablility. It's a long way until we can move away from the DOM, but it will happen eventually

    • @atinyflame265
      @atinyflame265 2 ปีที่แล้ว +27

      @@DavidAlsh Flutter does that already

    • @DavidAlsh
      @DavidAlsh 2 ปีที่แล้ว +3

      @@atinyflame265 pretty cool - would be cool to know what kind of performance impact that has on the various measures
      Do they have to ship a canvas runtime or something? Is it bulky? What about parse performance?

    • @DavidAlsh
      @DavidAlsh 2 ปีที่แล้ว +2

      @@cowCuddler I actually love C but from an ergonomics perspective I dislike its lack of structural interface types and lack of type parameters (generics).
      Some people say to use C++ for that but C++ comes with other baggage too

  • @Ari-ez1vj
    @Ari-ez1vj 2 ปีที่แล้ว +6

    Didn't expect much, but I was pleasantly surprised by this video.

  • @akaRong
    @akaRong 2 ปีที่แล้ว +2

    Thanks you so much for the effort of this beautiful video. Keep it up 🙏🎉

  • @ICoulntThinkofAUserNam547
    @ICoulntThinkofAUserNam547 ปีที่แล้ว +19

    In its current state, it's a game changer for a tiny subset of work that is done on the web.
    if you're asking front end devs to switch from a dynamically typed lower learning curve language to something that is designed for systems (Rust C++) just to
    make the button point to a new URL so you can gain a couple ms of performance (That you don't need) you'll lose that battle - cost of switching is massive.
    it's cool you can do heavy computation in browser, but I'm not seeing a lot of use cases outside of games and CAD

    • @fieryscorpion
      @fieryscorpion ปีที่แล้ว +3

      The benefits of using WebAssembly is that you can write frontend apps using backend language like C#.
      Give Blazor a try if you want to see an example.
      It’s a joy to work on.

    • @stevenismart
      @stevenismart ปีที่แล้ว +2

      You get job security if you learn niche skills. Building anything that can be done on WordPress or other low-code tools is bad. Its also the ultimate cost saving tool if you don't mind losing a few ms.
      My friend got $1million dollars from venture capitalist for a WordPress site. Then he hired a few low salary WordPress guys from south east Asia to do their thing.
      The bankers, especially older ones, don't know web development and it shows. I just think he's so freaking lucky and makes me angry I took the time to learn web development.

  • @kilianlindberg
    @kilianlindberg 2 ปีที่แล้ว +12

    At around @3:00 minutes in its mentioned one of the cool things. 1) It’s more like a virtual machine than (only) a language per say; that can run C / C++ / Rust and will most likely run Python (if not already) and be used for Modular NodeJS. 2) Distribution; it works in basic form on all devices. 3) Wild adaption; there’s practically no webpage without JavaScript so the community is so large; even as a C# coder in Unity things can be converted to Js; the easiness of getting started and building advanced stuff has a huge community.
    But sure there was this thing called Actionscript for Flash and I’m amazed over how long it took before JavaScript could approach its level of apps. I mean 15 years ago I had this DJ-app in the browser and there’s almost none at that level I’ve seen. So things can happen: Apple / iPhone kind of killed ActionScript by skipping it completely; for some a reason: it could really eat cpu/power and ofcourse wouldn’t give apple its AppStore with Billions of billions in revenue.
    So let’s say a new cool revolutionary phone comes out.. many have tried but lost that game. But one day it will happen, it might be Tesla 😅 and such a company could ofcourse include JS-support, but start to create amazing app-toolkits and even their own small changes to JavaScript and wohaa, suddenly it has changed name and no previous JS coders can live without all the extras.
    For me, as a coder for 20+ years I think all languages and coding are doing the same thing, all is same but different ..
    I would although bet that JavaScript could be around a 1000 years from now, it might change name to TeslaScript .. but hey, it will be around 😁

  • @bmeares
    @bmeares 2 ปีที่แล้ว +1

    Calling it now - your channel is going to blow up. Keep with it! Just subscribed.

  • @eddyk564
    @eddyk564 2 ปีที่แล้ว +216

    I think WASM is mostly needed for websites that demand more computing power. If you were to make a website that has some sort of interaction in a 3D space (like a game or simulation), I think WASM would be crucial, however for most websites I think it's unnecessary.

    • @nolimit4156
      @nolimit4156 2 ปีที่แล้ว +17

      exactly, it's a niche tech

    • @----__---
      @----__--- 2 ปีที่แล้ว +38

      Not really. Javascript and websites created with it and its tens of different frontend frameworks are the bloat. Web is slow because of javascript and people abusing its flexibility and dynamism. Once WASM gets the direct access to DOM and browser APIs instead of using JS FFI, it will make much more sense to code everything in it.

    • @imt3206
      @imt3206 2 ปีที่แล้ว +2

      Holy shit, no way. I was going to make a 3d web application, but really do not want to learn assembly

    • @wanderingthewastes6159
      @wanderingthewastes6159 2 ปีที่แล้ว +3

      yc exactly, it's hard to not look at the OP's last line when the same could be said about js in so many sites. JS just ain't it anymore , and WASM might just be the fresh the industry needs.

    • @dachimshvidobadze2286
      @dachimshvidobadze2286 2 ปีที่แล้ว +13

      @@imt3206 webassembly isn't assembly and isn't just for the web, so don't worry :D

  • @JacoblBroughton
    @JacoblBroughton 2 ปีที่แล้ว +6

    Awesome video! I'm for sure subscribing, this is a high quality video, honestly can't believe you don't have more subscribers. They will come!

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      Thank you! Much appreciated :)

    • @robertmrobo8954
      @robertmrobo8954 2 ปีที่แล้ว +2

      I'm one of those whom you've predicted they'll come. 😊
      Lovely video indeed.

  • @ChrispyChris3
    @ChrispyChris3 2 ปีที่แล้ว +1

    Great video bro! I'm going to look into wasm now haha.

  • @victorstone3720
    @victorstone3720 2 ปีที่แล้ว

    Really nice explanation.
    Thank you 👍🏽

  • @krystianderdzinski9013
    @krystianderdzinski9013 2 ปีที่แล้ว

    I was honestly disappointed that there are only 2 videos on your channel. Keep it going! :)))

  • @ashish_sunny
    @ashish_sunny 2 ปีที่แล้ว

    this was insightful! will tune in for more..

  • @astroid-ws4py
    @astroid-ws4py 2 ปีที่แล้ว +23

    There is also a project named Cheerp C++ compiler which enables C++ calling directly into JavaScript’s web APIs and compiles the C++ code down into an efficient mixture of WebAssembly and JavaScript code.

    • @Giigigi1122
      @Giigigi1122 2 ปีที่แล้ว

      Like what NextJS is doing with Rust compiler. WA will take over the frontend but the frontend dev will still code in JS. Which is win-win i guess.

  • @DigitalSwirls
    @DigitalSwirls 2 ปีที่แล้ว +2

    I liked this video! Nice work!

  • @roulzhq
    @roulzhq  2 ปีที่แล้ว +25

    Let me know what I can do better next Video. I learned a lot with this one, but I already know a lot I want to improve

    • @zakyvids6566
      @zakyvids6566 2 ปีที่แล้ว +2

      Hi there can you please make a short 30-1 hour long crashcourse on WASM with projects thanks

    • @Chrisknot94
      @Chrisknot94 2 ปีที่แล้ว +2

      When showing code, zoom in / scale up the text.
      Background music is odd... but then that's a matter of opinion. The outro music was cool though.
      Good voice, good english, almost accent free 👍🏻 Servus aus Österreich btw.
      I like it. Subbed.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +1

      @@Chrisknot94 thanks mate, some great feedback right there :) Greetings back from germany

  • @danieleccleston7928
    @danieleccleston7928 2 ปีที่แล้ว +3

    I am am a novice web dev(just a college student not even sure if I want to do web dev) but wasm really sparks my interest. In a way wasm behaves like the opposite of electron. Electron brought web apps to the desktop while wasm can bring desktop apps to the web...that's cool.

  • @andythedishwasher1117
    @andythedishwasher1117 ปีที่แล้ว +3

    I'm getting really excited about the prospects of browser-native game development in the future. We're way past the days of Homestar Runner now. Trogdor 2023 could be a banger with Web Assembly.

  • @crobes4155
    @crobes4155 2 ปีที่แล้ว

    Amazing video! Your channel is going to go places! :)

  • @rankarat
    @rankarat 2 ปีที่แล้ว +6

    Blazor.
    The best wasm experience.

  • @naxcall
    @naxcall 2 ปีที่แล้ว

    I get fireship vibes from this, good work 👍

  • @frustbox
    @frustbox 2 ปีที่แล้ว +16

    One of the reason the industry is flocking to WASM is … control. Proprietary codes. No amount of obfuscation will change the fact that HTML and JavaScript are open technologies. Everyone can see what is happening. Just right click and "inspect".
    I guess a lot of companies want proprietary components, i.e. Copyright for video streaming things, cut off the ability of browser extensions for ad-blocking, etc.
    So, suffice to say, as cool as this technology is, I'm having some major concerns for user's freedoms. That's a thing we should not ignore.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +6

      Very good point! Though the code is still shiped to the client, so there is always the possibility of disassembling the code.

    • @t1enne
      @t1enne 2 ปีที่แล้ว +6

      Much of the logic is still on the server, and you can't really see that. Also js obfuscation is a thing. The web used to be open in that sense, now not so much. You can't just right click -> inspect Netflix and get something valuable from it. You can work with the dom with custom css and js (like tampermonkey), but that's about it

    • @nhanimaah786
      @nhanimaah786 ปีที่แล้ว +2

      @@t1enne there is still a lot of front end logic that companies might want to protect. Also, javascript obfuscation is a joke and can be reassembled by any decent developer. Companies are hiding their code from other geniuses, not from gen z brogrammers

  • @adds-kz3oc
    @adds-kz3oc 2 ปีที่แล้ว +22

    No mention of C# Blazor WebAssembly :( It's a game changer for C# developers, allowing client side web apps to be fully written in C#.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +4

      Definitely! That's probably the best example

    • @akzual50
      @akzual50 2 ปีที่แล้ว +1

      Client and ssr.
      There's also markup free aspects.
      Markup is an antipattern.

  • @KennethBoneth
    @KennethBoneth 2 ปีที่แล้ว +1

    Really well done.

  • @Krzysiekoy
    @Krzysiekoy 2 ปีที่แล้ว

    This year for sure!

  • @vaijns
    @vaijns ปีที่แล้ว +2

    One use-case I'm surprised people aren't talking about much: Compiling your models to WASM so you can use it on the frontend and the backend.
    That's something I'm trying to achieve rn with a fullstack app I'm building. My backend being written in C++ and my frontend being Typescript with Angular.
    So I have a model that I'm sending from the server to the client which then just displays it. And when something gets changed there it would get sent back to the server. So I'm using the same model on both the server (backend, written in C++) and the client (frontend, written in Typescript) for which I have to copy the same exact model. Why not just compile the server-model to WASM and simply use it from within the client-code? I could have the exact same code/algorithms for (de-)serializing (for sending it via HTTP) the objects which means whenever I change the server-model I just have to compile the WASM binaries and the client would be up-to-date as well.
    Maybe I'll learn about some problems with that, as I'm just about to really implement that. :D
    The few issues I found so far were that I couldn't just pass a JS Array for a C++ std::vector and Typescript definitions, which I wish could be generated while compiling the WASM binaries (Which is already possible for Rust WASM, so probably just a matter of time someone creates a good solution for this).
    I think JavaScript/TypeScript and it's frameworks are great for what they're supposed to do, which is all kinds of UI stuff. While I still prefer languages such as C++, Rust, C#, Java, ... for writing backends. I don't really like the "one language for everything" idea. But for that it'd be just a cool way to use WASM to save some time.

  • @Switcher321
    @Switcher321 2 ปีที่แล้ว +46

    Personally I think it won’t replace much of the traditional web, instead it allows more things to move to the browser that would not have been feasible before (like what is currently still a desktop applications or pc game).
    However I don’t see people lining up to write things in C (or other supported languages) that could have just as well been written using a modern web stack (which has been developed for decades for exactly this purpose) 😃

    • @NukeCloudstalker
      @NukeCloudstalker 2 ปีที่แล้ว +8

      The modern webstack is horrible though.

    • @jord019
      @jord019 2 ปีที่แล้ว +8

      Yeah the modern webstack is awful if you want to write actually performant and efficient applications. You can't replace C with JS no matter how hard you try lol you can write desktop apps in something like Electron, but they perform awfully (MS Teams for example)

    • @Switcher321
      @Switcher321 2 ปีที่แล้ว +3

      @@jord019 Agreed - when people try to use Web technologies to "replace C" or in general for things they are not meant for 👍 But my point was about the "normal web" (web sites and web apps).
      I don't see C (or similar) being a viable alternative to Javascript (or modern web stack in general) for these use cases. It might very well be that you can make traditional web applications load 0,15 seconds faster (while probably doubling the development time), but in most cases the only person who cares about that kind of performance improvement is the developer - not the user, not the decision makers (in my experience at least).

    • @jord019
      @jord019 2 ปีที่แล้ว +2

      @@Switcher321 oh yes I totally agree with this. I think I misunderstood and was thinking more of the reverse, trying to write desktop apps in Web technologies, rather than using traditional tech to write Web apps, but certainly agree with what you have said

    • @intoTheEther1
      @intoTheEther1 2 ปีที่แล้ว +4

      @@jord019 VS Code is also written in Electron and performs well.

  • @Viralvlogvideos
    @Viralvlogvideos 2 ปีที่แล้ว

    Good explanation. js will be ruling because of react native.

  • @JanKosowski
    @JanKosowski 2 ปีที่แล้ว +24

    Great video, but you picked niche examples while we have things like Figma. Figma dominated the world of web design vastly because of the power of WASM. Contrary to Adobe Cloud or Sketch, it works on any operating system with desktop-class performance and all benefits of being a web app at the same time.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +4

      Thank you for the feedback 🔥! I did think about including Figma and things like blazor pages, should have done it... Maybe I'll do a follow-up in the future, when there is some WASM-related news

    • @nhanimaah786
      @nhanimaah786 ปีที่แล้ว

      I'm not sure if they run on "desktop class" performance.

    • @JanKosowski
      @JanKosowski ปีที่แล้ว +1

      @@nhanimaah786 Have you used it? Yes, they do. Actually, it feels faster than Adobe XD, or even Sketch, etc. There is nothing web-like in the Figma performance.

    • @nhanimaah786
      @nhanimaah786 ปีที่แล้ว

      @@JanKosowski lol figma is not an example to use when talking about performance intensive applications. I will want to know how Cubase, after effect, davinci resolve, or unreal engine 5 can run on web assembly. That would be literally impossible even 100 years from now. Web assembly does not have access to the operating system's resources as a native app does. It still has to go through the web browser and there are just some bottlenecks. Even a web assembly written in c will never be as fast and powerful as a well written java desktop application.

    • @JanKosowski
      @JanKosowski ปีที่แล้ว +1

      @@nhanimaah786 Because you're familiar with music production, but not with heavy design work. You probably never opened a Sketch board with over 100 complex artboards.

  • @amansetia8655
    @amansetia8655 2 ปีที่แล้ว +12

    WOW, i didn't know web assembly was this Powerful, i would love to make a server on client side, a local server made from a site, amazing

    • @KangJangkrik
      @KangJangkrik 2 ปีที่แล้ว +3

      Well... Not that fast, you don't want hacker control your device because of this power

    • @amansetia8655
      @amansetia8655 2 ปีที่แล้ว

      @@KangJangkrik unless i do want that cuz i am the hacker

    • @KangJangkrik
      @KangJangkrik 2 ปีที่แล้ว

      @@amansetia8655 lmao real hacker won't expose their identity

    • @amansetia8655
      @amansetia8655 2 ปีที่แล้ว

      @@KangJangkrik it was hypothetical haha, plus how do you know it's my real identity

    • @girirajrdx7277
      @girirajrdx7277 2 ปีที่แล้ว

      @@amansetia8655
      If you are real hacker
      Then be my sensei!

  • @JulienTeyteau
    @JulienTeyteau 2 ปีที่แล้ว

    I think that AssemblyScript will make creating websites & high-perf applications even better. That will probably make whole new framework stacks possible.

    • @JulienTeyteau
      @JulienTeyteau ปีที่แล้ว

      @CosmicDamian I was thinking about MVC frameworks like Angular, or backend server frameworks like Next or Nest. That would be awesome and I would be very surprised if no one thought of doing that.

  • @opst1704
    @opst1704 2 ปีที่แล้ว +4

    Even the creators said that it won't replace webtrio... and it won't.
    html css js are doing great job, and won't be replaced any time soon.
    Replacing 99% webpages that work perfectly fine is beyond ridiculous.

    • @DevMeloy
      @DevMeloy 2 ปีที่แล้ว +3

      JS development has hit a wall and has become needlessly complex... if something like Blazor can bring development back to a single IDE and return the build process down to something that doesn't need to be transpiled, minified and all the other "cool" things needed to run a simple web app, I think WASM stands a good chance at taking a chunk out of the holy trinity.

    • @opst1704
      @opst1704 2 ปีที่แล้ว +3

      @@DevMeloy Of course, for web apps. For simple webpages ( mostly informative content) no.

    • @phoenixamaranth
      @phoenixamaranth 2 ปีที่แล้ว +1

      @@opst1704 But lets be real, the truth is this may open the door to those "simple webpages" being made more interactive or graphically impressive. It's like back in late 90s/early 2000s when finally bandwidth limits and tech "broke through" so to speak and the internet took off with multimedia websites. Sure there will still be a lot of companies that aren't really online based who still use basic pages, but for all the online/hybrid businesses, this might lead to some new standard level of interaction and display to the customer.

  • @proismael7198
    @proismael7198 2 ปีที่แล้ว

    Good subject 🙂

  • @jeffdege4786
    @jeffdege4786 2 ปีที่แล้ว +9

    The Java Virtual Machine was created for Java the language.
    And then many new languages were developed that ran on the JVM.
    Given a byte machine that runs in the browser, the same thing will happen.
    And you can be sure that these new languages won't make the same mistakes as were made in JavaScript.
    The critical step, though, will be access to the Document Object Model. Last time I looked at Web Assembly it could not. You could write code that would run in the browser, you still needed JavaScript to drive the UI.

    • @adriatic123
      @adriatic123 2 ปีที่แล้ว +2

      So far javascript fits perfectly its purpose, thanks

    • @DemPilafian
      @DemPilafian 2 ปีที่แล้ว +7

      *Wasm* is the shiny new *Java bytecode!*

    • @overtomanu123
      @overtomanu123 2 ปีที่แล้ว +2

      i think you meant Document Object Model (DOM)

  • @fruschikante1939
    @fruschikante1939 2 ปีที่แล้ว +2

    looks interesting indeed! does anyone know how the performance is compared to native compiled c/c++ on given system?

    • @xrafter
      @xrafter 2 ปีที่แล้ว

      They say it is close to native performance . Others say it can be the same performance as the native counterpart.
      But they all liars with no proof to provide you.

  • @t6hp
    @t6hp ปีที่แล้ว

    Hello, I'm just one year old in the programming world @ 28 years of age. I would like to learn more about how can I utilize C++ to create web pages or servers and stuff since I'm kind stuck with it for now while I try to practice problem solving.
    Do you have any specific recommendations? Most resources I found are not beginner friendly at all..

  • @coder-x7440
    @coder-x7440 ปีที่แล้ว +2

    I can’t imagine doing a greenfield web app outside of web assembly at this point.

  • @CryptoMar
    @CryptoMar 2 ปีที่แล้ว +11

    Watch Primeagen’s video about it. Netflix is using WASM because they have algorithms that currently run in JavaScript that could be much faster in C++. Very interesting stuff

  • @schemagroup1
    @schemagroup1 2 ปีที่แล้ว

    Wow amazing 😮

  • @amansetia8655
    @amansetia8655 2 ปีที่แล้ว +1

    subscribed

  • @gigamoment
    @gigamoment 2 ปีที่แล้ว +3

    WebAssembly is much more powerful than you all think. It is a "meeting point" for all programming languages! 2 or more teams could write code in different languages and all together can run seamlessly at the end! Also, WebAssembly isn't restricted to web, you can run WebAssembly everywhere, like in backend or platform apps. Given these, it gives you an amazing flexibility and the bests are coming.

    • @gigamoment
      @gigamoment ปีที่แล้ว

      @CosmicDamian I do not mean anything. I am just telling you the facts. DYOR

  • @wrong1029
    @wrong1029 2 ปีที่แล้ว +18

    wasm has me hugely excited, but it cannot be the 'future of web development' without direct DOM access.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +2

      Absolutely! They're working on it :)

    • @KangJangkrik
      @KangJangkrik 2 ปีที่แล้ว +1

      Yea direct DOM access is blessing curse due to security concern

    • @Yawhatnever
      @Yawhatnever 2 ปีที่แล้ว +1

      @@KangJangkrik in what way? Wasm can't do anything more to the DOM than javascript can already do.

    • @KangJangkrik
      @KangJangkrik 2 ปีที่แล้ว +2

      @@Yawhatnever undiscovered buffer overflow, even our trusty "sudo" command experience multiple times

    • @astroid-ws4py
      @astroid-ws4py 2 ปีที่แล้ว

      Check out Cheerp C++ Compiler, It gives C++ direct DOM and JavaScript libraries access and compiles the C++ code down into an efficient mixture of JavaScript and WebAssembly code

  • @RESIDENTECH1
    @RESIDENTECH1 2 ปีที่แล้ว

    Are you by any chance talking about blazor ?

  • @faiqkhan7545
    @faiqkhan7545 2 ปีที่แล้ว

    Post more videos about wasm or like this.
    Gonna subscribe for now .

  • @jimmyj.6792
    @jimmyj.6792 2 ปีที่แล้ว +1

    Excellent explaination 👌 could be nice if you can produce an example from scratch 🙂

  • @csaratakij6339
    @csaratakij6339 11 หลายเดือนก่อน

    Yeah, we came full circle with how common language runtime (CLR) works with web browser at the additional overhead.

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

    just a heads-up, the WebAssembly Studio domain you've linked seems to be inactive.

  • @SCTproductionsJ5
    @SCTproductionsJ5 2 ปีที่แล้ว

    So... Does this remove the privacy (fingerprinting and such) concerns of JavaScript?

  • @AndrieMC
    @AndrieMC 3 หลายเดือนก่อน

    JavaScript won't ever be replaced, You need it to load web assembly, your wasm uses functions written in javascript

  • @yash1152
    @yash1152 2 ปีที่แล้ว

    5:13 QT is using Webasm too?? but wasnt it for making normal native applications?

  • @tak68tak
    @tak68tak 2 ปีที่แล้ว +1

    You should mention Amazon Prime Video implemented in WASM.

  • @thomasct614
    @thomasct614 2 ปีที่แล้ว

    What about for mobile app development? Will WASM be used for that as well?

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +2

      Definitely possible, but I don't see it coming in the near future.

  • @PerpetualPreponderer
    @PerpetualPreponderer 2 ปีที่แล้ว

    So is this like creating a PDF file, but for publishing to the web instead?

  • @datguy4104
    @datguy4104 ปีที่แล้ว +2

    Web browsers will be the operating systems of the future.

  • @GameCyborgCh
    @GameCyborgCh 2 ปีที่แล้ว +1

    now you can use php for front- and backend

  • @garytunnicliff3649
    @garytunnicliff3649 2 ปีที่แล้ว +1

    What about the OS's in the binary format especially in the cloud NOT just the browser.. Could not agree more ...

  • @TheChrisey
    @TheChrisey ปีที่แล้ว +7

    I'm glad we finally got WebAssembly. We are no longer forced to use that terribly sloppy JS syntax and we can gain some performance too.

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

      Yeah, but if you need to do DOM manipulations (which is basically web development) you still need that sloppy JS.

  • @obscuredc662
    @obscuredc662 2 ปีที่แล้ว +24

    WASM is going to be an interesting technology, although I feel it will take a few years to take off. However, it is a powerful cross language tool that could enhance our lives and get rid of JavaScripts inaccuracies / weird cases. I hope that the wasm specificatioj will become easier to find / read so developers could make custom deployment to wasm options for maybe lesser known language. Anyways, great video, and I wonder how this will go! 😊

    • @srpenguinbr
      @srpenguinbr 2 ปีที่แล้ว +4

      I hope this will mean less Electron apps for the end user

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

    This makes me do that FUUUUTURE squidward meme

    • @roulzhq
      @roulzhq  4 หลายเดือนก่อน

      😂😂

  • @magicnightcn
    @magicnightcn 2 ปีที่แล้ว

    Yes, I belive it will be the future, but not sure when.

  • @Mitoforma
    @Mitoforma 2 ปีที่แล้ว +3

    Web Assembly has some niche applications where performance is the most important thing, like on games. But no, we won't move away from the dom.
    There are dozens of reasons. For example, there are 20 (plus) years of code which are writing with js and that haven't had breaking changes since then. Web applications build upon that. People need those services online and won't care to rewrite them. We didn't choose JS because it's performant, we choosed it because it's approachable, people already know it and there is a lot of thought on how information should be shared.
    Why do people write applications in electron instead of java or c++? Why are we choosing node js instead of go, lua or rust? Why are some mobile apps not written in native code but executed in web view?
    We aren't moving towards less abstraction layers, development in general has been moving in the opposite direction, we are building supersets of js like typescript or jsx. There is so much inertia on the bandwagon of js you will never stop it

    • @NukeCloudstalker
      @NukeCloudstalker 2 ปีที่แล้ว +1

      These are all reasons why people stick to a sub-par solutions, not reasons why the current webstack is good. Just reasons for why it exists to this day.
      If anything, this cargo-cult programming mentality is exactly why something like webassembly could completely dominate the market by producing websites that do things better, faster and with less development pains that html/css/js causes.

    • @Mitoforma
      @Mitoforma 2 ปีที่แล้ว +7

      @@NukeCloudstalker web assembly has only shown to execute things faster (for which it has niche applications). What developments issues has it solved?
      How is going to achieve user interaction, graphical rendering, user data fetch, etc? Is it going to use MVC all over again? How is it gonna decide how things should be done? What are the development tools? How is it going to boilerplate code? Will it need to tightly integrate design to present content and information? When it decides those things it would be only be building the web all over again.
      People have tried to make a web stack without Html, Css and JS since 2001, things like spring, ruby on rails, cocoa, treefrog, asp.net, Delphi mvc, aurora , catalyst, laravel, etc. The only difference is that the compilation target was js and now it's byte code. Arguably the only successful one has been the .NET stack.
      Is retro compatibility not important? Try to break 2 billion websites. Be my guest.
      The reality is that web assembly has existed for 5 years and on those years outside of cool game demos on the browser it has mainly been used to execute malicious code, like crypto mining. Will you execute some random bytecode on the web when looking for some basic text and images? JS exists somewhat sandboxed in what it can do. WebAssembly and Bytecode have a lot more security concerns.
      Sure, it would be nice to have tensor flow written in something more performant than JS. But at the end of the day development time, good user interfaces and a good ecosystem are more important for front end applications than execution speed.

    • @blu3_enjoy
      @blu3_enjoy 2 ปีที่แล้ว

      You didn't choose JS.

    • @nhanimaah786
      @nhanimaah786 ปีที่แล้ว

      Actual programmers will switch to a superior technology. Bubblegum gen z "programmers" can keep using their javascript. Also, no serious programmers builds desktop apps with electron.

    • @josephp.3341
      @josephp.3341 ปีที่แล้ว +2

      @@nhanimaah786 MS Teams and VS Code are built with electron, so you're objectively wrong. Sorry.

  • @chaboxx159c
    @chaboxx159c 2 ปีที่แล้ว

    what language do u recomend for web assembly ?

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      I personally enjoy writing Go code the most, but Rust is very well optimized for webassembly. I would just choose the language you like the most, as long as you don't have any very strict requirements :)

  • @roulzhq
    @roulzhq  2 ปีที่แล้ว +3

    By the way, a couple of days after I made this video, the webassembly.studio website went down.. :D

  • @RobertoGPuentesDiaz
    @RobertoGPuentesDiaz 2 ปีที่แล้ว +2

    Wasm can improve ReactJs Apps?

    • @eddyk564
      @eddyk564 2 ปีที่แล้ว +5

      In my opinion, the type of apps that one would develop with React and WASM would be quite different. React is slower than JS (generally), so the sort of apps made with React would generally not be highly demanding, but rather one that needs to be stable and very reliable.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +4

      Take Figma (the design tool) as an example. The main UI is built with React, but it also features a high-performance graphical Editor that's powered by webassembly. And then there is things like the Yew framework, that uses rust to power entire UIs. Endless possibilities

  • @noertri618
    @noertri618 ปีที่แล้ว

    I think webassembly is the bridge to run python in the browser, so this webassembly is like compiling code to exe but for browser??

  • @mehmetdemir-lf2vm
    @mehmetdemir-lf2vm 2 ปีที่แล้ว

    running native code in a sandbox would be much easier and faster. it's like a sandboxed activex module. just the dom interface is required to be defined.
    webassembly is a big spec for an easy problem.

  • @prabeshsenpai5396
    @prabeshsenpai5396 2 ปีที่แล้ว

    When you find a popular TH-cam channel before it blows up 😄

  • @programaths
    @programaths 2 ปีที่แล้ว +14

    Part of the final exam for system in my Bachelor degree was "Write a simple shell", that included ability to list files, move around and execute programs with pipes and redirections ^^
    Yet, actual development is a bit harder as it goes 360. One has to keep tab on JS, CSS even HTML and then you have back-end frameworks. You can't even forget about older version as one usually maintain a broad range of environments. That's without tacking into consideration database administration and business analysis that have also to be done...
    If you compare this with other jobs, like hostels, it would be like cleaning, being at the reception, preparing the meals, ensuring stocks are filled, cleaning the pool and doing the finances.
    The big difference is that in IT, its the norm...
    Worse, in one of my job, I even had to maintain hardware and the network! (But I burned out and left)
    Today, I am pushing back and reminding that I am only an analyst developer ^^

    • @MechanicalMooCow
      @MechanicalMooCow 2 ปีที่แล้ว +5

      What does any of that have to do with this video?

  • @haddow777
    @haddow777 ปีที่แล้ว +4

    What would be funny is Javascript developers trying to make a Webassembly in C/C++. I grew up with Turbo Pascal and C++, fled for my life to higher level languages eventually leading to Javascript when it finally grew up with the V8 engine and became a language actually worth using. Now I'm back to C/C++ working in embedded environments and talking myself out of smashing my brains into the wall daily. Now I'm hoping for faster progress in Rust in the embedded environment so I can flee from these horrible languages again. Yes, I know they're the foundation of most software, blah, blah, blah. I just wish something as basic as passing a method as a callback, because people have mixed C++ code with C libraries wasn't such a rediculous pain along with the many other various sink holes of insanity one can trip into while doing even some of the most basic coding that holds you up forever googling through various other people's attempts to climb out of their own similar sink holes of insanity.
    Just saying, more than anything else, it would be super funny to watch a Javascript developer learn C/C++. I used to know it, forgot a lot, but I at least had an understanding of the pain involved when I waded in. Younger coders who've never experienced an old style low level language with all its pitfalls and idiosyncrasies would just be walking into a bandsaw.

  • @witherin-_-3712
    @witherin-_-3712 2 ปีที่แล้ว +1

    why do you only have 700 subs with this content

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      Thx! It's my first real video. Three weeks ago it was 18 subs. More content to come soon

    • @witherin-_-3712
      @witherin-_-3712 2 ปีที่แล้ว

      @@roulzhq Good luck 👍

  • @pm71241
    @pm71241 2 ปีที่แล้ว +3

    So ... easy now ...
    One of the reasons a language like Rust (and C) are so prominent wrt. Wasm is that they don't have a runtime.
    That's not true for a lot of other languages (golang, python ...). A program suddenly becomes a lot larger if it has to bundle the runtime.
    So for quick loaded client-side code, I doubt you can just pick "any language"

    • @retinafunk
      @retinafunk 2 ปีที่แล้ว

      Its just that the runtime for web assembly is already avaiable on 100% of clients as its all major webbrowsers so thats not a point

    • @pm71241
      @pm71241 2 ปีที่แล้ว +3

      @@retinafunk I think there's a misunderstanding here.
      Of course there's a runtime for Wasm in browsers. That has nothing to do with the issue.
      But to write your program in, say, Go, compile it to Wasm and run it in the browser will create a binary containing the Go runtime. ... That's of course true for server-side programs too, but server-side it doesn't really matter that "Hello world" in Go is many times larger than it is in Rust.

    • @retinafunk
      @retinafunk 2 ปีที่แล้ว +1

      @@pm71241 i understand now what you say , indeed a misunderstanding .

    • @MechanicalMooCow
      @MechanicalMooCow 2 ปีที่แล้ว

      @@pm71241 a render target doesn't have to care about runtime. It's a target. The developer machine runs, say, python, go, C# and the source code they wrote gets transpiled into wasm.
      If you've ever used IL2CPP, it's the same process. You hit build, your tool chain finishes everything off by giving you a binary that is comprised solely of the target language.

    • @pm71241
      @pm71241 2 ปีที่แล้ว

      @@MechanicalMooCow
      There's a lot hidden under the phrase: "solely of the target language".
      A have to remind you again that for Go (and pythong and perl and Java ...etc..) that "target language" in it's binary form is a huge runtime with garbage collector and all (compared to, say, C, C++, Rust)

  • @MrKosynus
    @MrKosynus 2 ปีที่แล้ว

    Hey guys, I am a newbie here, I have a question
    How is computing in browser different from not computing in browser? Doesn't browser use the same hardware regular programs use?

    • @MrKosynus
      @MrKosynus 2 ปีที่แล้ว

      for ex.
      Playing doom on my pc as an application vs playing doom in browser, are they different in terms of hardware usage?

    • @softwarelivre2389
      @softwarelivre2389 2 ปีที่แล้ว

      @@MrKosynus on WASM you have the WASM runtime, which can be interpreted as an abstraction layer on top of the hardware. It decreases performance, but not by much.

  • @bungkusi2432
    @bungkusi2432 2 ปีที่แล้ว

    Flash replacement?

  • @caty863
    @caty863 6 หลายเดือนก่อน

    As a data analyst, I am thrilled of the possibility of sharing my interactive shiny dashboards with colleagues without having to jump through the hoops of shiny app hosting.

  • @zinjanthropus322
    @zinjanthropus322 2 ปีที่แล้ว

    WASM is suitable for browser streamed games like Stadia tried to do.

  • @adriatic123
    @adriatic123 2 ปีที่แล้ว +18

    Every year or so someone tries to predict future, usually without much success. Web assembly is nice but needs a purpose. If you need a fast program close to the core you use C++, if you need front end and back-end application that doesn't have to be fast as a game written in C++, you use javascript. Web assembly has to find its market first.

    • @randomrfkov
      @randomrfkov 2 ปีที่แล้ว +2

      I know that there is always someone who says 'X is the future', but this is really is the future.
      This will be the Java of our decade. All you need is a web engine in a system. And that web engine will do everything for you, from browsing files, editing files, watch and play soft games at near native speeds.
      Evernote, VS Code and Discord are all desktop applications that are running on web engine with a JavaScript core using ElectronJS, so it's not a novel idea. But here is the thing: JavaScript is bloated and so its engines that are ran on top of the web engines.
      And that's a reality. We need something that is lean, small and fast. And WASM is the thing for it.
      Let JavaScript rest in peace. It had its time.

    • @kilianlindberg
      @kilianlindberg 2 ปีที่แล้ว +1

      I see, and agree in general. At around @3:00 minutes in its mentioned one of the cool things. 1) It’s more like a virtual machine that can run C / C++ / Rust and will most likely run Python (if not already) and be used for Modular NodeJS. 2) Distribution; it works in basic form on all devices.
      But sure there was actionscript that Apple / iPhone kind of killed by skipping it completely; for some a reason: it could really eat cpu/power and ofcourse wouldn’t give apple its AppStore with Billions of billions in revenue.
      For me, as a coder for 20+ years I think all languages and coding are doing the same thing, all is same but different ..
      I would although bet that JavaScript could be around a 1000 years from now 😁

    • @byc090020
      @byc090020 2 ปีที่แล้ว +5

      @@randomrfkov we will probably rest in peace long before Javascript rests in peace haha

  • @eldarshamukhamedov4521
    @eldarshamukhamedov4521 11 หลายเดือนก่อน

    Lots of things to be excited about with WASM, but I wish folks would stop saying things like "use any language to write UI", implying that Rust/C++/etc. would be a good choice for UI development, but that's really not true. High-level, relatively "loose" languages, like TS/Swift/Kotlin are ideal for UI work; no one's going to write UI in Rust/C++.

  • @gdj777
    @gdj777 ปีที่แล้ว +1

    We are free from the Javascript shackles!

  • @DanyloSyrotynskyy
    @DanyloSyrotynskyy ปีที่แล้ว

    Wasm gonna work for vr web

  • @Asdayasman
    @Asdayasman 2 ปีที่แล้ว

    If it runs in a VM what's the point? There's always going to be more work put into, on the one side optimising V8, and on the other side using the newest and coolest amd64/ARM instructions, than there is making this VM not suck.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      You can't optimize V8 for JavaScript nearly enough to match speeds that can be reached with webassembly. The VM is already pretty good, and imagine how it will perform in a couple of years. V8 includes WASM already and it's support will grow a lot soon.

  • @ItsMeChillTyme
    @ItsMeChillTyme 2 ปีที่แล้ว +5

    To me it just seems that for so many years the software world has had a separation of concerns when it comes to web and non-web product development and that has been in very large part influenced by how JS is inefficient and useless outside the browser for anything to be done efficiently. But now, people are not realising how big of a game changer this could be.

    • @softwarelivre2389
      @softwarelivre2389 2 ปีที่แล้ว +1

      Javascript might be slow when compared to Rust or C, but it is much faster than slow python, which some people use everywhere.

    • @ItsMeChillTyme
      @ItsMeChillTyme 2 ปีที่แล้ว +1

      @@softwarelivre2389 Python can be made faster, however. Cython and PyPy... the creator of Python himself states that if you want fast Python then use PyPy, of course, still slower than C or Rust.

  • @showbikshowmma3520
    @showbikshowmma3520 2 ปีที่แล้ว +1

    U mean with WASM WE CAN RUN AN Os like Windows on a browser?

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว +3

      Well, in theory it would be possible to emulate it I guess, but that would be very hard to do and kind of pointless. An OS needs direct access to hardware, which is not possible in the web (and it should not be, of course).

    • @nathanhedglin931
      @nathanhedglin931 2 ปีที่แล้ว +6

      The browser is more or less an OS at this point.

  • @TheSulross
    @TheSulross 2 ปีที่แล้ว +2

    will be great for people like me that totally despise JavaScript

    • @DevMeloy
      @DevMeloy 2 ปีที่แล้ว +1

      I used to hate JS, but have gotten used to it as I've done more frontend development. Most of my development uses Typescript which is more of a band aid then anything else.
      Hopefully WASM catches on and Blazor becomes a true competitor to JS.

    • @grygry12345
      @grygry12345 2 ปีที่แล้ว +1

      why do you despise JavaScript ? I think its best language in programming history. Especially JS+JSON could be God tier list all other languages.

  • @manuyel4845
    @manuyel4845 2 ปีที่แล้ว

    Is this your secondary channel or something? You sound like a full blown ytuber!

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      Haha thank you! It's my only channel, but I have a bit of experience :)

  • @comed1an
    @comed1an 6 วันที่ผ่านมา

    1:54 the correct pronunciation is 'woz-i'

  • @JamesSmith-ix5jd
    @JamesSmith-ix5jd 10 หลายเดือนก่อน

    So we went full circle but now your browser is your JVM?

  • @DmitryDaren
    @DmitryDaren 2 ปีที่แล้ว

    wow.

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

    Seems like webassambly purpose is different than JS. Js still is the best for ui related stuff.

  • @nonetrix3066
    @nonetrix3066 2 ปีที่แล้ว +1

    With WebAssembly you can't view the source code of an website also with canvas same applies it's going to make adblocking and more impossible :/

  • @Skeptic_Von_Rahm
    @Skeptic_Von_Rahm 2 ปีที่แล้ว +6

    web assembly is a new tool that will be used with JS not replace it, even the creators of
    WASM said that WASM was not intended to replace JS, so its like
    let web = ["html", "css", "JS"]
    and now its
    web.push("WASM")

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

    No, it has been 2 years and it hasn't happen and there is no sign is going to because WASM has no access to the DOM. WASM has been and will be used for calculations and other heavy processing stuff, but rendering will continue to be our headache with HTML+CSS+JS

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

      Very good points of course. If it does not get direct DOM access, it won't replace JS. Bur what if it did not need the DOM? Gonna drop another video soon.
      And yes I just did an ad in a comment. Capitalism won.

  • @Leto2ndAtreides
    @Leto2ndAtreides 2 ปีที่แล้ว +1

    I remember that Photoshop is aiming for a web only version.

    • @roulzhq
      @roulzhq  2 ปีที่แล้ว

      Wow I did not know that. Awesome!

  • @kh_trendy
    @kh_trendy 2 ปีที่แล้ว

    You can do things only possible, easily, in C++... In the browser.

  • @Korupshenv1
    @Korupshenv1 2 ปีที่แล้ว +2

    You just got a new subscriber. I have been thinking this same thing. WASM will take over due to it’s benefits of speed. Browsers will soon be changing to a new frontier and I am excited about that. I just wonder this: Will WASM be able to support multiple threads and not be bound to a single thread. If the answer is multi threaded, then JavaScript is D.E.A.D.!! And JavaScript being dead, makes me smile inside. 😀

  • @pokefreak2112
    @pokefreak2112 2 ปีที่แล้ว +1

    I HOPE wasm is the future but as of right now it's slower and results in bigger binaries than just using js (in most cases).

  • @JaredBroker
    @JaredBroker 2 ปีที่แล้ว +3

    (Layman question) Could WASM make operating systems obsolete with just a browser installed on a machine?

    • @jeroendeclercq7580
      @jeroendeclercq7580 2 ปีที่แล้ว +3

      Your browser will need to run on an OS of any kind. Even if wasm would replace desktop apllications, you still need an os to handle the system's resources.

    • @capability-snob
      @capability-snob 2 ปีที่แล้ว +1

      The hard parts of operating system work are hardware support and software support, which is why it's such a tough market to break into. That said, WASM as a native executable format would be nice, and it solves the problem of which machine to optimise for (can the compiler assume SSE? 64 bit support? Hardware floating point? With WASM, the computer decides, not the developer). Also, WASM gets security right in that its modules form a capability system, something that none of the modern operating systems have been able to do. So, that's an interesting space to keep an eye out for!

    • @xerotolerant
      @xerotolerant 2 ปีที่แล้ว +6

      In a word. No.
      Even if such a browser were to exist it would just be a special purpose operating system. Kind of like chromeos.

    • @diamondminer81
      @diamondminer81 2 ปีที่แล้ว

      As said in the video, running applications without a web browser is still much faster. WASM works similarly to Java, everything runs in a virtual machine and the host computer has to emulate the VM's "CPU" instructions which is much slower than having the host run instructions itself. An operating system like you described would be faster for someone who truly does want to only use a web browser. However, I think that WASM isn't deep enough. I think it would be even better if websites could send full application binaries for whatever the browser asks. Like if you were using an x86 CPU (Intel/ARM) it would send an application that could be run directly but in a sandboxed environment. However, this would rely on CPUs and the sandboxing software to not have bugs in them which is not likely.

    • @neildutoit5177
      @neildutoit5177 2 ปีที่แล้ว

      yes! The reason that the FIRST browser wars happened is precisely because Bill Gates knew then already, literally decades ago, that operating systems would start becoming obsolete as browsers took over. You could make a very strong argument that operating systems are ALREADY obsolete. How much time to you actually spend interacting with your OS compared to your browser? For me at least 70% of what I do is through a browser interface. For most people it's more. Hence why the Chromebook is a thing that can exists and people will actually pay money for. Yes, of course, your hardware needs an OS and always will. That's not the point. The point is that, when the only thing you interact with is a browser, then that's what matters. And don't even start with efficiency. Software is written so mindblowingly inefficiently these days the extra overhead of a browser means zero.

  • @cyberprompt
    @cyberprompt 2 ปีที่แล้ว

    backend really want this. I'll be retired before that happens.

  • @rothbardfreedom
    @rothbardfreedom 2 ปีที่แล้ว +1

    Even better than being able to program frontend in rust, it would be just to remove the bloat of the modern web.

  • @kcsiddhartha
    @kcsiddhartha 15 วันที่ผ่านมา

    The comments sound so smart 🤓