顺便说一下 , 在 WebAssembly 的帮助下 , Adobe Photoshop 也搬到了网络上 。
Microsoft Blazor
文章插图
Blazor 是 Microsoft 通过 WebAssembly 使用其主要后端语言 C# 开发 Web 前端的产品 。正如它的口号所说 , 目标是在不编写 Javascript 的情况下构建全栈 Web 应用程序 , 但为什么呢? 这个想法可能是微软开发人员非常喜欢 C# 并希望在任何地方都使用它 。
// A Blazor component@page "/counter"CounterCounter
Current count: @currentCount
Click me// C# below@code {private int currentCount = 0;[Parameter]public int IncrementAmount { get; set; } = 1;private void IncrementCount()currentCount += IncrementAmount;
接触过微软生态的人可能会马上问:这是Silverlight复活了吗? 不 , 这不对 。Silverlight 是专有技术 , 需要安装 , 并且没有通用的浏览器支持 。相反 , Blazor 基于 WebAssembly , 它现在是 Web 标准的一部分 。
尽管它的价值主张有点奇怪 , 但 Blazor 很好地展示了 WebAssembly 为浏览器带来更多编程语言的潜力 。我认为任何此类努力都不会威胁到 Javascript 的统治地位 , 但在某些有趣的小众场景中 , 这可能非常有用 。例如 , 直接在浏览器中运行 Python/ target=_blank class=infotextkey>Python , 你可以在不运行本地 python 服务器的情况下使用 Jupyter notebook:
文章插图
服务器端
WebAssembly 的创建者在创建该技术时可能已经想到了在非浏览器环境中运行的可能性 , 但是服务器端开发人员的热情却大大超出了他们的预期 。
这种兴奋是可以理解的——WebAssembly 提供了一种在服务器上执行不受信任代码的理想方式——它具有可移植性、更易于保护、使用的内存比 JVM 或 Docker 少得多 , 并且是将许多高级语言编译成的自然目标 。对于托管在您的 IDC 中的长时间运行的 Web 服务器进程来说 , 这可能意义不大 , 但对于某些场景来说可能是有益的:
需要为其租户大规模运行短期例程的无服务器托管提供商 - 快速启动、低占用空间和沙盒至关重要 。
支持运行用户或社区提供的插件的 SaaS 产品
资源非常紧张的边缘环境
WASI 规范的创建开启了服务器端 WASM 的蓬勃发展 。WASI 是 WASM 的同行规范 , 旨在标准化 WASM 代码如何与其托管环境交互 。在浏览器中 , 这不是必需的 , 因为 WASM 是对 Javascript 的增强 , 它已经可以通过 DOM、BOM 和 Web API 访问其托管环境(浏览器) 。在服务器上时 , WASM 是独立的 , 如果它不能与其环境交互 , 它就不是很有用 。
如果您对现实世界的进展感兴趣 , 请查看以下将服务器端 WASM 包装到服务中的公司 。随着技术的成熟 , 它们可能成为传统的基于容器的 PaaS/FaaS 供应商的严峻挑战者 。很长一段时间以来 , 云业务一直渴望小型、可移植、安全的应用程序运行时 。
Cosmonic
文章插图
Fermyon
文章插图
What's Next
WebAssembly 仍然是一项年轻的技术 。在浏览器端 , 用例是可靠的 。然而 , 它仍然需要发展成为一种更令人愉快的开发方式——今天 , 你不能像 ES 模块那样直接加载 WASM , 需要复杂的 Javascript 胶水代码来连接它 。在服务器端 , 它更不成熟 , 它的价值值得商榷 。它等待着主要的行业参与者对其下注并加速其采用 。
看看 WebAssembly 将如何在 2023 年进一步突破 Web 开发的界限将会很有趣 。
推荐阅读
- 女性如何丰胸(如何丰胸乳房)
- 粉圆怎么煮
- 低糖的水果有哪些(低糖低脂低热量的水果有哪些)
- 10个腰果的热量
- 10万元如何理财(目前有10万元怎么理财)
- 做一个app要多少钱(app制作费用)
- 车贷利率是多少(车贷提前还款是大忌)
- 新鲜豌豆煮多久才能熟
- 网贷多久会停止轰炸(网贷一般多久停止催收)
- 携程退款多久到账(携程酒店退款技巧)