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

Meta并不是唯一青睐VR人才的公司

Sep 11, 2022

根据Revelio实验室和彭博社的一项新研究,如果你觉得只有Meta将其生存的关键押注于“Metaverse”或虚拟现实和增强现实(AR)应用的生态系统,那你就大错特错了。

解析网络安全分析师学位和教育路径

Nov 20, 2023

网络安全分析师在保护组织的数字资产和信息免受网络威胁和攻击方面发挥着至关重要的作用。

2021大厂数科面试五大Python经典题目

May 26, 2021

对于任何数据岗位相关的面试,Python编程是一项必要技能,因此它也是面试中必须去准备的一环今天就和大家一起讨论几个Python经典题目。

Leave a Comment

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

Comment *