你知道那个梗吗?就是有人试图在任何带有屏幕和某种输入界面的电子设备上运行 Doom 游戏那个?
结果今天我们开始在 JavaScript 这边也看到这种现象了。由于这种语言的通用性以及它背后社区的规模和活跃程度,JavaScript 的使用场景变得越来越多,远远超出了它一开始只用于浏览器的设计目标。
那么我们就来看看我们最喜欢的编程语言到底能做多少事情,以至于我们可以开始展望一个完全由 JavaScript 塑造的未来了。
很难向非开发人员解释为什么某件事情是用 JavaScript 来做的,因为他们很难理解背后的必然性。但我们开发人员是可以看到幕后的原因的,我们很了解自己最喜欢的产品背后使用的技术究竟有着怎样的优势。
正如我们即将看到的那样,JavaScript 可以成为我们技术生活和个人生活的一部分。因为如前所述,我们在几年前就超越了浏览器的限制。这主要归功于 Node.js,它让我们都意识到自己可以在任何后端中运行 JS 了,而这一切都是从那时开始的。
这可能是让 JS 融入我们日常生活的最大用例。
像 Johnny-Five 这样的库允许你将 JS 代码嵌入到几乎任何类型的开源硬件中运行。虽然这里当然会有很多限制,你也不能随便拿起什么芯片就用 JS 对其编程,但只要你愿意改一下你的电子设备并在你的产品中放一个 Arduino(举个例子),你就可以创建任何运行在 JavaScript 上的硬件。
不信我的话?甚至还有一个名为 Espruino 的项目,它提供了所有的硬件、手册,甚至是开发环境,供你学习和使用 JS 来做各种事情。
我觉得这只是一个开始,考虑到这种语言是如此简单和灵活,它将推动可编程硬件的崛起,这种趋势会一年比一年火热。甚至有一个开源的 SmartWatch 可以用 JavaScript 来编程,名为 Bangle.js。
开放硬件,再加上开源软件和快速发展的 3D 打印机等创建工具,为新一代黑客提供了绝佳的成长环境。他们能直接在家中构建自己的电子产品和电器,并使用以 JS 编写的高级 API 对其进行编程。
虽然 Python 在进行一些严肃的 AI 编程工作(我指的是开发新的 ML 模型或进行一些繁重的数据处理)时仍然是更受欢迎的选择,但 JS 也不甘落后。
事实上,借助以下库,你已经可以使用 JavaScript 编写软件,利用经过训练的 ML 模型了:
TensorFlow.js 允许你直接从浏览器或指定的运行时运行经过训练的机器学习模型。
Brain.js,一个使用 GPU 执行神经网络优化的库,可以在浏览器和 Node.js 上运行。
ML5.js 构建在 Tensorflow 之上,可进一步简化直接从 JavaScript 访问机器学习模型的过程。
Syntaptic.js,另一个用于直接在浏览器或其他兼容运行时(例如 Node.js)上创建神经网络的库。
其他社区为 AI 领域提供的生态系统与 JavaScript 所提供的生态系统之间仍然存在一定差距,而且考虑到 JavaScript 每年都在被移植到更多平台上,这种差距只会继续扩大。借助 JS,AI 社区迟早会发现他们能将 AI 带到世界的每一个角落。
虽然你还没听说过完全用 JavaScript 编写的 3A 游戏,但这种语言正在慢慢走近这个行业。
例如,虽然 Unity 确实放弃了对类 JS 语言的支持,但 JavaScript 本身就拥有制作游戏所需的一切特性,至少可以用来制作运行在浏览器上的游戏。
不要误会我的意思,这本身并不是一件坏事。浏览器图形渲染能力比起早期已经有了很大发展,你可以直接在浏览器上获得一些有趣的结果,并且也能充分利用计算机的 GPU 性能。
诚然,距离 3A 游戏行业接受 JS 作为他们的标准之一还有很长的路要走,但这项技术已经有了自己的位置。浏览器 API 可以给你提供从处理输入到硬件加速所需的一切支持,因此我们迟早会看到第一个独立游戏工作室为节省成本而用 JS 打造的 3A 级游戏。
其实我的目光放的更远一些,如果在 2012 年的时候这个家伙就可以在当年的 XBOX 上运行完整的 JS 运行时,那么我们迟早会看到所有主要平台上都会有 JS 运行时。一旦一家公司开发出来并获得批准,许多公司就会效仿。
如果你只对 Web 游戏开发感兴趣,你可能需要查看用 JS 开发游戏时用到的 top 9 库列表:2020 年 9 个顶级 JS 游戏引擎和库。(https://blog.bitsrc.io/9-top-js-gaming-engines-and-libraries-for-2020-81707d9f095)
所有人都在谈论这个话题,或者为它写文章,抑或浏览这个话题的相关内容。我说的就是新一代 Web,基于分布式和区块链技术:Web3。
他们说这是 Web 的未来。它也完全依赖 JS,至少目前是这样。
虽然你不会很快使用 JavaScript 编写智能以太坊合约,但你将使用 Web3.js 等库与区块链交互来创建自己的 dApp(你的分布式应用程序)。
如果需要,你甚至可以使用 JavaScript 创建自己的区块链。这仍然是一个全新的领域,很难准确预测它将如何演变,但我可以肯定的是,JS 将在这一演变中发挥重要作用。
考虑到我们多年来一直有能力使用 JS 为移动设备编写混合应用程序,这个主题大家都应该很熟悉了。
但是感谢 React Native 之类的项目,你还可以创建使用手机的原生 API 来渲染 UI 的应用程序。这种路径在性能上绝对优于混合方法,并且由于它依旧兼容主流移动操作系统,你仍然可以获得在所有平台上使用单一语言的好处。
Skype、Facebook、Uber、Discord 等应用程序已经在利用这种原生技术了,这很明显地告诉了我们移动行业的未来会是什么样子:由 JavaScript 打造。
有人可能会说,在接下来的几年内我们将不断看到 JavaScript 的新用例出现在各种各样的地方。这种观点可能是正确的,因为这种语言自身的演变趋势表明,它正在适应其不知疲倦的社区不断创造出来的新需求,这个社区希望让 JS 无处不在。
我们接下来还会在哪里看到 JavaScript 呢?我的猜测是,一旦我们意识到它是多么强大的工具,以及将它嵌入到可穿戴等设备上是多么容易,我们就会在更多设备中看到它。一旦游戏工作室开始意识到这种语言的力量及其游戏制作能力,我们也将在游戏主机上见到它的身影。
你呢?你认为 JavaScript 在不久的将来会出现在哪里?
原文链接:
https://blog.bitsrc.io/a-future-made-of-javascript-5ab417f34355
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
我国互联网遭境外网络攻击;俄罗斯或将多家外企“国有化”;Linux内核被发现易于利用的漏洞|Q资讯
活动推荐
号外号外,首届写作平台 InfoQ 会员周上线啦!3 月 7 日 -3 月 13 日,参与活动即可抽苹果 Airpods 耳机、华为手环 6、JBL 蓝牙智能音箱……限时 7 天速速参加 http://gk.link/a/11dRl
点个在看少个 bug 👇