{"id":327092,"date":"2021-08-18T15:33:51","date_gmt":"2021-08-18T12:33:51","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/"},"modified":"2021-08-18T15:33:51","modified_gmt":"2021-08-18T12:33:51","slug":"why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/","title":{"rendered":"#Why WebAssembly Frameworks Are the Future of the Web \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2809a7b2db8\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2809a7b2db8\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#What_Is_WebAssembly\" >What Is WebAssembly?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#JavaScript_Isnt_The_Only_Option_Anymore\" >JavaScript Isn\u2019t The Only Option Anymore<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#How_Do_WASM_Client_Frameworks_Work\" >How Do WASM Client Frameworks Work?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#How_Much_Faster_Are_We_Talking\" >How Much Faster Are We Talking?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#What_Frameworks_Work_Right_Now\" >What Frameworks Work Right Now?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/why-webassembly-frameworks-are-the-future-of-the-web-cloudsavvy-it\/#The_Future_Of_WebAssembly\" >The Future Of WebAssembly<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#Why WebAssembly Frameworks Are the Future of the Web \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-13697\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/38432d41.png?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/38432d41.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/38432d41.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1200\" height=\"675\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>WebAssembly is a new way to run code on the web. With huge tech companies behind it, it\u2019s poised to revolutionize the way we write web applications, but comes with its own quirks and limitations. Are WASM frameworks a viable competitor to Java<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">Script<\/a> libraries like React?<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Is_WebAssembly\"><\/span>What Is WebAssembly?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WebAssembly, or WASM, is the second universal programming language that all web browsers can understand and run. However, you\u2019re not going to be writing scripts in WebAssembly yourself\u2014it\u2019s a low level assembly language, designed to be very close to compiled machine code, and very close to native performance.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2020\/03\/429ee069.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Wasm can be used as a portable compilation target for other languages\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The magic of WebAssembly is that it\u2019s low level enough that it actually is an easy\u00a0<em>compilation target<\/em>.\u00a0Any reasonably fast language must go through a compiler at some point, even JIT compiled languages like JavaScript, and usually that means compiling to x86 or ARM machine code to run on modern processors.<\/p>\n<p>However, you can also compile to a different format; usually this ends up being a \u201clower level\u201d language that\u2019s closer to the eventual machine code. For example, Java compiles to Java bytecode which is sent to the JVM runtime, and C# compiles to Microsoft Inter<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>ry Language (MSIL) which is sent to the .NET runtime. You can even \u201ctranspile\u201d languages, from one high level language to another, most commonly extensions like TypeScript to JavaScript, but also weirder ones you wouldn\u2019t expect, like Python to JavaScript, though that is usually messy and bug ridden.<\/p>\n<p>WASM is just an intermediary language that is easy to compile to. In fact, it\u2019s almost exactly the same concept as Java bytecode and C# MSIL\u2014both of these formats make it easy to run the same code cross platform, using the same format running on specific runtimes made for each platform.<\/p>\n<figure style=\"width: 924px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13700 size-full\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/9bff4e33.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"924\" height=\"526\" data-crediturl=\"https:\/\/www.assemblyscript.org\/\" data-credittext=\"AssemblyScript, a version of TypeScript compiled to WASM\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.assemblyscript.org\/\">AssemblyScript, a version of TypeScript compiled to WASM<\/a><\/span><\/figcaption><\/figure>\n<p>What this means in practice is that JavaScript is no longer the only language you can run on the web. Web browsers can run any language now, if that language has a\u00a0WebAssembly compiler.<\/p>\n<p>Even traditional desktop languages like C++ and Rust can be compiled down to WASM with relative ease; AutoDesk was able to <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.infoq.com\/presentations\/autocad-webassembly\/\">port their 35 year old C\/C++ codebase over to WASM<\/a> in a few months, and Google ported Google Earth, both of which render complex 3D scenes and run at near-native performance. The Unity <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/game\/\" data-internallinksmanager029f6b8e52c=\"7\" title=\"Game\" target=\"_blank\" rel=\"noopener\">game<\/a> engine also can run in WASM.<\/p>\n<p>WASM currently runs in 94% of user browsers, with IE, UC browser, and Opera Mini support being the main things holding it back, as per usual. However, it\u2019s backed by developers from Mozilla, Microsoft, Google, and Apple, and its support in modern browsers is fast-moving. Like most web standards, it\u2019s currently managed by the W3C standards organization.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"JavaScript_Isnt_The_Only_Option_Anymore\"><\/span>JavaScript Isn\u2019t The Only Option Anymore<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Great, so what does this mean for everyone? Well, while <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.infoq.com\/news\/2019\/07\/doom3-web-assembly-port\">running DOOM 3<\/a> in a web browser is certainly a cool demo, it\u2019s not exactly game changing.<\/p>\n<p>Until now, JavaScript has been your only choice to make your web pages interactive. Whether you love it or hate it, it was never designed to be used like it is today. It was a scripting language designed to do trivial tasks like making dropdown menus animate, and over 25 years has been hacked together to run modern-day workloads. Only through the use of state-of-the-art JS engines and JIT compilation optimizations can it even be compared to native speeds.<\/p>\n<p>And so, as web pages grew to become full web applications, JavaScript client frameworks like React, Vue, and Angular propped up to meet the demand. Of course, there are still server-side frameworks\u2014you\u2019re reading this from WordPress, a PHP framework\u2014but client frameworks offer huge performance increases. With a client framework, the DOM is updated automatically after pressing a button or interacting with the app. Even realtime server-rendered frameworks must make a network request to change anything, and in the worst case, must refresh the entire page.<\/p>\n<p><em>The innovation that the web really needs is proper competitors to frameworks like React, written in languages that aren\u2019t JavaScript.<\/em><\/p>\n<p>While all of the web\u2019s frontend code is written in JavaScript, the backend code is often not. In high performance datacenter workloads, it\u2019s often beneficial to use proper desktop languages like C#, C++, Rust, and Go. After all, these can literally save you money by requiring fewer servers to meet the same demand.<\/p>\n<p>However, it also costs you money in development time, since now you have to deal with interoperability between your C# backend, and your JavaScript frontend. Simply not being able to share code, models, and libraries may increase your development complexity by up to 2x what it would be with a unified system. This reason alone is why NodeJS server backends are so popular, despite sounding like a terrible idea 20 years ago.<\/p>\n<p>Having the ability to write C#, C++, Rust, and Go code that runs on the server\u00a0<em>and client<\/em> would open the door to many more options, and remove the need for JavaScript as a programming language almost entirely. In the WASM client framework Blazor, JavaScript usage is reserved for interoperability with existing client packages, and basic scripting.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"How_Do_WASM_Client_Frameworks_Work\"><\/span>How Do WASM Client Frameworks Work?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Since WebAssembly is just a way to run code in a sort of \u201cWebAssembly environment,\u201d you can think of it like running a Docker container. For example, Microsoft\u2019s Blazor framework (by far the most popular WASM client framework so far) has two modes of operation:<\/p>\n<ul>\n<li>Blazor Server, which runs all the processing and rendering on the server, and sends updates to the HTML DOM over a WebSocket, and<\/li>\n<li>Blazor WebAssembly, which does the exact same thing, except now the processing and rendering is done on the client, through a .NET runtime compiled for WASM.<\/li>\n<\/ul>\n<p>In the latter case, the WebSocket connection is replaced with a direct link to the DOM, through JavaScript as WebAssembly currently has no way to modify the DOM directly without calling JS APIs. You also need JavaScript in any case to \u201cbootstrap\u201d the WASM app, so JS is not going away anytime soon.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13737\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/21212c80.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"802\" height=\"328\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Beyond that, WASM client frameworks work in <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/general\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"General\" target=\"_blank\" rel=\"noopener\">general<\/a> like any other framework, and the exact details will depend on the implementation.<\/p>\n<p>For example, Blazor keeps an internal state and triggers re-rendering of the app when a button is clicked or input is made. It constructs new HTML using C# code running on WASM, and then sends that HTML to the JavaScript APIs to apply to the DOM. Doing this on WebAssembly takes processing load off the server and makes the client fast and responsive. Even DOM access through JavaScript is a bit slower, it\u2019s still leagues faster than the alternative\u2014DOM access over the internet.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>What Is Microsoft&#8217;s Blazor Web Framework, and Should You Use It?<\/em><\/strong><\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"How_Much_Faster_Are_We_Talking\"><\/span>How Much Faster Are We Talking?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The question of \u201chow much faster is WASM?\u201d is hard to pin down. It\u2019s clearly faster overall, there\u2019s no doubt about that, but in some cases it\u2019s more complicated than that.<\/p>\n<p>DOM access is still a problem as it must be done through JavaScript, so it\u2019s going to be as slow as JavaScript. This is <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/WebAssembly\/interface-types\/blob\/master\/proposals\/interface-types\/Explainer.md\">getting fixed soon<\/a> though. Sometimes, JavaScript can be faster in specific benchmarks that the WASM compiler might be struggling with, simply on account of the fact that JS has 25 years of compiler iteration behind it.<\/p>\n<p>For high-performance applications that need a lot of processing power, like games and applications, WASM is usually anywhere from 1.5x \u2013 2x faster. But it might be the same speed. It also might be 20% slower than JavaScript. It also might be 10x faster for some functions. There are benchmarks out there showing all of these results, so the only thing that can be said for sure is that your mileage will vary.<\/p>\n<p>Compared to native code, it\u2019s likely to always be slower than the language it\u2019s compiling from. So while it\u2019s probably going to be fast, there are a lot of caveats, and you shouldn\u2019t be using WASM with the expectation of getting native performance on the web.<\/p>\n<p>With that all being said, WASM doesn\u2019t need crazy performance to be revolutionary. It just needs to work, not be slow, and support many languages.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Frameworks_Work_Right_Now\"><\/span>What Frameworks Work Right Now?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The most important one by far is Blazor, being developed by Microsoft. It\u2019s the first WASM client framework being backed by a major company, and will probably be the catalyst for WASM to finally get the mainstream adoption it deserves.<\/p>\n<p>Blazor WASM is only a year old, with Blazor Server being released 3 years ago, but the great thing about Blazor is that it\u2019s just an extension of ASP.NET, a 20 year old web framework that Microsoft has been constantly improving. You can use many frontend libraries already written for ASP.NET, and it\u2019s likely to be the only framework backed by a web package manager rivaling NPM.<\/p>\n<p>This isn\u2019t some side project either\u2014Microsoft has been pushing Blazor as much more than just a web framework; it\u2019s their next application programming model. They\u2019re working on Blazor Desktop, releasing in late 2021, which works a lot like Electron does to run the same Blazor web apps on the desktop. They clearly care a lot about it, which is great <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/news\/\" data-internallinksmanager029f6b8e52c=\"2\" title=\"News\" target=\"_blank\" rel=\"noopener\">news<\/a> for WASM in general.<\/p>\n<p>If you\u2019d like to learn more, you can read our guides on what Blazor is, and how to get started using it.<\/p>\n<p>The other production-ready framework is <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/yew.rs\/\">Yew<\/a>, built on Rust, a modern language similar to\u00a0C++, except with memory safety due to the weird way it handles references. Yew is fast, supports a component based model like React, and has interoperability with JS APIs.<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/mbasso\/asm-dom\">asm-dom<\/a> is a library written for C++, that doesn\u2019t do more than hook up C++ code to the DOM. Obviously you will need to bring-your-own-framework here, but most developers crazy enough to write web apps in C++ will likely do that anyway. It also has <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Asm.js\">support for falling back to asm.js<\/a>, an early version of what WebAssembly was trying to be. It\u2019s basically a subset of JavaScript restricted to only using integers (i.e., only bytes, not objects), which makes it easier to transpile C++ code to, as that\u2019s basically all C++ code uses at the end of the day. Having this support isn\u2019t very useful though as there are very few environments that won\u2019t support WASM but will support asm.js.<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/vugu\/vugu\">Vugu<\/a> is a framework written in Go, supports components and is modeled after Vue syntax, but is still experimental. There\u2019s also <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/hexops\/vecty\">Vecty<\/a>, which also a popular Go framework.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>How to Create C# Client Web Apps With Microsoft&#8217;s Blazor Web Framework<\/em><\/strong><\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"The_Future_Of_WebAssembly\"><\/span>The Future Of WebAssembly<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This has all focused on client web frameworks using WASM to manipulate the DOM and build applications. But, you can also just port entire desktop applications to the web. That\u2019s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/unoplatform\/uno\">what Uno does<\/a>\u2014uses WASM to run Universal Windows Platform (UWP) apps directly in a web container, which also comes with the added benefit of being completely cross-platform. It\u2019s actually a bit uncanny how well this works, and really feels like you\u2019re using a native Windows app. You can <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/xamlcontrolsgallery.platform.uno\/\">check it out yourself<\/a> in their gallery.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13745\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/c0afeba4.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1200\" height=\"588\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>There\u2019s a lot more to the WASM ecosystem than just these. If you\u2019d like to learn more, you should read through the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/mbasso\/awesome-wasm#web-frameworks-libraries\">awesome-wasm compilation on GitHub<\/a>, which lists a bunch of popular projects.<\/p>\n<p>The most notable one that we didn\u2019t mention here is <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/wasi.dev\/\">WASI\u2014a way to run WebAssembly portably on any system<\/a>\u00a0using a standardized system interface. As WASM becomes more and more performant, WASI could prove to be a viable way to run any kind of code on any kind of system, similar to how Docker works but without the restriction on OS. In fact, Solomon Hykes, the creator of Docker, has endorsed it wholeheartedly:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">If WASM+WASI existed in 2008, we wouldn&#8217;t have needed to created Docker. That&#8217;s how important it is. Webassembly on the server is the future of computing. A standardized system interface was the missing link. Let&#8217;s hope WASI is up to the task! <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/t.co\/wnXQg4kwa4\">https:\/\/t.co\/wnXQg4kwa4<\/a><\/p>\n<p>\u2014 Solomon Hykes (@solomonstre) <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/twitter.com\/solomonstre\/status\/1111004913222324225?ref_src=twsrc%5Etfw\">March 27, 2019<\/a><\/p>\n<\/blockquote>\n<p>WebAssembly is only a few years old. It still has plenty of room to grow, and is still picking up speed. It\u2019s not unreasonable that five years from now, frameworks like Blazor and Yew will be just as common as React, Angular, and Vue.<\/p>\n<p>This could be argued to be fragmenting the web ecosystem, but WASM is cross platform.\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/wapm.io\/\">WAPM<\/a>, a WASM package manager, may become the go-to way to share libraries between frameworks of different languages.<\/p>\n<p>In any case, web frameworks running on WebAssembly have huge potential, and with Microsoft personally backing one, we\u2019re confident that they\u2019re the future of the web.\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong>\n<\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/13696\/why-webassembly-frameworks-are-the-future-of-the-web\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#Why WebAssembly Frameworks Are the Future of the Web \u2013 CloudSavvy IT&#8221; WebAssembly is a new way to run code on the web. With huge tech companies behind it, it\u2019s poised to revolutionize the way we write web applications, but comes with its own quirks and limitations. Are WASM frameworks a viable competitor to JavaScript&#8230;<\/p>\n","protected":false},"author":1,"featured_media":327093,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/38432d41.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-327092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/327092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=327092"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/327092\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/327093"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=327092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=327092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=327092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}