JavaScript会被替代吗?

Sep 17, 2021 by Zhang in  Blog

JavaScript 是全球最流行的编程语言之一。它不仅在 RedMonk、Stack Overflow和其他公司生成的编程语言中数一数二,而且还拥有世界最大的开发者社区,至少根据SlashData最近的《开发者报告》来看是这样。

对于Web开发人员来说,JavaScript 是一种必不可少的语言——在兼容性方面,它无可替代。例如,你可以使用Delphi 创建基于表单的应用程序,这些应用程序在 Windows 浏览器中运行,但没有人用这种方法。最近,一些开发人员将 Dart 视为JavaScript 替代品——但还许多浏览器创建者仍然对这领域处于未知状态。

但是,如果你厌倦了使用 JavaScript,你可以尝试开发在浏览器中运行的 Python 或 C# 应用程序。在更广泛的层面上,其他主流语言能否对 JavaScript 的“领域”构成威胁?少数 Web 开发工具可供你探索其他语言。

👍Brython:在浏览器中运行的 Python 3.0

Brython 的目标是用 Python 取代 JavaScript 作为浏览器的脚本语言。例如,下面是“Hello World!” 在浏览器中的 Python 源代码。在文本框中输入你的姓名,单击按钮,将弹出一个窗口。五行代码可以达到这个效果还不错。

这个运行过程只需要使用一个简短的HTML文件,并将Python放在脚本元素中,干净利落。这个过程可以在智能手机和现代浏览器上运行。

Brython提供了一系列Python 无法驱动的模块,内容与Web 相关,例如 Ajax、Markdown、本地存储、计时器、Web Sockets、Workers 等。我在 Chrome 上试了一下,结果不错(但据称 Firefo 的性能更好)x。

GitHub 上的 Brython Wiki 列出了一系列由 Brython 驱动的应用程序。

👉Pyodide

Bryton 的一个编程替代品是 Pyodide,通过科学堆栈将 Python 3.9 编译为 WebAssembly(科学堆栈是 NumPy、Pandas、SciPy 和超过 75 个包)。你可以通过Pyodide从 PyPi 安装纯Python wheel。

Pyodide在2018年才出现,存在时间还很短,衍生于一个未维护的 Iodide 项目。跟Brython 一样,你可以在脚本中运行 Python 程序,但在Pyodide里,你必须像这样将 Python 代码传递到函数中:

尽管Pyodide这一编程工具出现时间很晚,引人注目,但操作难度却大于 Brython。如果你想要构建 WebAssembly,Pyodide非常合适,因为它是基于WebAssembly构建的(WebAssembly 可用于提高 Brython 的性能,更加复杂)

Brython 和 Pyodide 的其他替代品包括 Skulpt 和 Transcrypt。在莱斯大学的远程课程中,我使用基于 Skulpt 的 CodeSkulptor 学习了 Python。通过Skulpt 学习 Python,再合适不过了,因为它在浏览器中运行。你可以看到左侧有一个编辑器窗口,下方有一个运行按钮,右侧有一个输出窗口;Skulpt更像是一个运行 Python 的沙箱,而不是一种开发软件工具。

Transcrypt 使用的方法不同,它将 Python 预编译为 JavaScript。脚本标签无需使用 Python,因为这会减慢速度。与 Brython 不同,它使用 JavaScript 库,而不是 Python。这个方法非常有趣,你可以用 Python 编写 JavaScript。如果你熟悉 JavaScript 和 Python,这种方法可能非常适合你。

请务必查看他们的应用程序库。

👉C# 和 Blazor

如果你更喜欢在浏览器中编写并运行 C#,那么Blazor 是你的不二之选。与 Pyodide 一样,它也出现在 2018 年,有两种版本:Server 和 WebAssembly。Blazor也是跨平台的,因此你可以在 Linux 和 Mac 以及 Windows 上开发 Blazor 应用程序。

Blazor 使用 Razor 语法在 ASP.NET 上构建,该语法混合 @code 块中的代码与HTML 。例如,当你单击按钮时,这是一个增加计数器的网页:

在服务器版本中,你的 C# 代码在服务器上运行并使用 SignalR 协议与 JavaScript 前端通信。只有在 WebAssembly 版本中,你的 C#(现在编译为 WebAssembly)才能在浏览器中运行。你可以将其托管在 Asp.Net 服务器中,以便从服务器获取数据。

总结

每一种编程技术,包括 C# Blazor WebAssembly,即使只是为了加载组件,都在以某种方式在幕后使用 JavaScript。哪怕不了解JavaScript,你也可以使用它们中的任何一个(尽管使用 Transcrypt 可能会有所帮助,因为你可以查看 Python 代码转换成的 JavaScript 代码)

除了 Blazor,我认为它们都不是主流——但 Brython、Pyodide 和 Transcrypt 有潜力成为主流。至于 WebAssembly,因为它是编译代码,所以它在运行恶意软件方面非常出众,尤其是在网站访问者的机器上进行隐藏的加密挖掘。也就是说,虽然存在的时间补偿,仍然有人会实现一种易于开发的语言输出 WebAssembly。

这些编程技术是否会对 JavaScript 构成威胁?可能不会,但如果你正在寻找 Web 开发的替代方法,不妨尝试一下。

作者:David Bolton

如何在非技术背景下转数据领域?

Nov 15, 2020

如果你是另一领域的专业人士,并且对技术专家的职业感兴趣,我们有个好消息要告诉你:在没有任何技术经验的情况下,你很有可能投身于学习你所选择的技术专业。

北美求职指北-E周报(10月第2周)

Oct 16, 2021
  • 9月非农就业人数涨幅创新低,不及预期
  • 疫情催生美国“大辞职”时代
  • 最新美国科技岗位工资报告

快速发展的公司最想招聘的两类软件工程师

Jul 13, 2021

提到软件开发,你会想到什么?

除了《星球大战》以外,电子游戏也在潜移默化中影响大家对编程的理解。

Leave a Comment

Your email address will not be published. Required fields are marked *

Comment *