写点什么

JavaScript 无处不在

Fernando Doglio

  • 2022-03-10
  • 本文字数:2377 字

    阅读完需:约 8 分钟

JavaScript 无处不在

你知道那个梗吗?就是有人试图在任何带有屏幕和某种输入界面的电子设备上运行 Doom 游戏那个?

 

结果今天我们开始在 JavaScript 这边也看到这种现象了。由于这种语言的通用性以及它背后社区的规模和活跃程度,JavaScript 的使用场景变得越来越多,远远超出了它一开始只用于浏览器的设计目标。

 

那么我们就来看看我们最喜欢的编程语言到底能做多少事情,以至于我们可以开始展望一个完全由 JavaScript 塑造的未来了。

开发人员在哪里都能见到它


很难向非开发人员解释为什么某件事情是用 JavaScript 来做的,因为他们很难理解背后的必然性。但我们开发人员是可以看到幕后的原因的,我们很了解自己最喜欢的产品背后使用的技术究竟有着怎样的优势。

 

正如我们即将看到的那样,JavaScript 可以成为我们技术生活和个人生活的一部分。因为如前所述,我们在几年前就超越了浏览器的限制。这主要归功于 Node.js,它让我们都意识到自己可以在任何后端中运行 JS 了,而这一切都是从那时开始的。

硬件上的 JavaScript


这可能是让 JS 融入我们日常生活的最大用例。

 

Johnny-Five这样的库允许你将 JS 代码嵌入到几乎任何类型的开源硬件中运行。虽然这里当然会有很多限制,你也不能随便拿起什么芯片就用 JS 对其编程,但只要你愿意改一下你的电子设备并在你的产品中放一个 Arduino(举个例子),你就可以创建任何运行在 JavaScript 上的硬件。

 

不信我的话?甚至还有一个名为Espruino的项目,它提供了所有的硬件、手册,甚至是开发环境,供你学习和使用 JS 来做各种事情。

 

我觉得这只是一个开始,考虑到这种语言是如此简单和灵活,它将推动可编程硬件的崛起,这种趋势会一年比一年火热。甚至有一个开源的 SmartWatch 可以用 JavaScript 来编程,名为Bangle.js

 

开放硬件,再加上开源软件和快速发展的 3D 打印机等创建工具,为新一代黑客提供了绝佳的成长环境。他们能直接在家中构建自己的电子产品和电器,并使用以 JS 编写的高级 API 对其进行编程。

用于人工智能的 JavaScript


虽然 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


虽然你还没听说过完全用 JavaScript 编写的 3A 游戏,但这种语言正在慢慢走近这个行业。

 

例如,虽然 Unity 确实放弃了对类 JS 语言的支持,但 JavaScript 本身就拥有制作游戏所需的一切特性,至少可以用来制作运行在浏览器上的游戏。

 

不要误会我的意思,这本身并不是一件坏事。浏览器图形渲染能力比起早期已经有了很大发展,你可以直接在浏览器上获得一些有趣的结果,并且也能充分利用计算机的 GPU 性能。

 

诚然,距离 3A 游戏行业接受 JS 作为他们的标准之一还有很长的路要走,但这项技术已经有了自己的位置。浏览器 API 可以给你提供从处理输入到硬件加速所需的一切支持,因此我们迟早会看到第一个独立游戏工作室为节省成本而用 JS 打造的 3A 级游戏。

 

其实我的目光放的更远一些,如果在 2012 年的时候这个家伙就可以在当年的 XBOX 上运行完整的 JS 运行时,那么我们迟早会看到所有主要平台上都会有 JS 运行时。一旦一家公司开发出来并获得批准,许多公司就会效仿。

 

如果你只对 Web 游戏开发感兴趣,你可能需要查看用 JS 开发游戏时用到的 top 9 库列表:2020年9个顶级JS游戏引擎和库

Web3 时代和 JavaScript 在这个新世界中的影响力


所有人都在谈论这个话题,或者为它写文章,抑或浏览这个话题的相关内容。我说的就是新一代 Web,基于分布式和区块链技术:Web3。

 

他们说这是 Web 的未来。它也完全依赖 JS,至少目前是这样。

 

虽然你不会很快使用 JavaScript 编写智能以太坊合约,但你将使用Web3.js等库与区块链交互来创建自己的 dApp(你的分布式应用程序)。

 

如果需要,你甚至可以使用 JavaScript 创建自己的区块链。这仍然是一个全新的领域,很难准确预测它将如何演变,但我可以肯定的是,JS 将在这一演变中发挥重要作用。

用于移动开发的 JavaScript


考虑到我们多年来一直有能力使用 JS 为移动设备编写混合应用程序,这个主题大家都应该很熟悉了。

 

但是感谢 React Native 之类的项目,你还可以创建使用手机的原生 API 来渲染 UI 的应用程序。这种路径在性能上绝对优于混合方法,并且由于它依旧兼容主流移动操作系统,你仍然可以获得在所有平台上使用单一语言的好处。

 

Skype、Facebook、Uber、Discord 等应用程序已经在利用这种原生技术了,这很明显地告诉了我们移动行业的未来会是什么样子:由 JavaScript 打造。

 

有人可能会说,在接下来的几年内我们将不断看到 JavaScript 的新用例出现在各种各样的地方。这种观点可能是正确的,因为这种语言自身的演变趋势表明,它正在适应其不知疲倦的社区不断创造出来的新需求,这个社区希望让 JS 无处不在。

 

我们接下来还会在哪里看到 JavaScript 呢?我的猜测是,一旦我们意识到它是多么强大的工具,以及将它嵌入到可穿戴等设备上是多么容易,我们就会在更多设备中看到它。一旦游戏工作室开始意识到这种语言的力量及其游戏制作能力,我们也将在游戏主机上见到它的身影。

 

你呢?你认为 JavaScript 在不久的将来会出现在哪里?

 

原文链接:https://blog.bitsrc.io/a-future-made-of-javascript-5ab417f34355

2022-03-10 16:2411684

评论

发布
暂无评论
发现更多内容

第一章 认识产品经理(下)

郭栋

产品经理训练营第一周总结

happy-黑皮

产品经理训练营

JVM性能调优实战:让你的IntelliJ Idea纵享丝滑

Silently9527

Java jvm调优

产品训练营作业:1、认识产品经理

Geek_06d2e5

产品经理训练营第一周作业

happy-黑皮

产品经理训练营

细说MAC地址漂移

如果公司要找一个人代替我,该是个咋样的人?

再见陛下

offer

G20210639010067-产品训练营第一次作业

Wangyunnfei

产品策略经理岗位要求

赵志广

网络安全 产品安全 产品经理训练营 极客大学产品经理训练营

安全白帽子可能会为DevSecOps铺平道路

啸天

DevSecOps 应用安全 开发安全

杭州产品岗位现状分析

王振

产品经理训练营第一章作业

王德文

产品经理训练营

Windows DHCP最佳实践(一)

BigYoung

windows Windows Server 2012 R2 DHCP

产品经理训练营——第一周总结

小匚

产品经理训练营 极客大学产品经理训练营

产品经理训练营-第一次作业

Jophie

产品经理训练营

动力电池知识皮毛(28天写作 Day11/28)

mtfelix

自动驾驶 28天写作 电动汽车

产品经理训练营-第一章作业

Ryun

重学JS | cookie和localstorage的哪个更安全?

梁龙先森

面试 大前端 编程语言 28天写作

产品训练营第一周作业【撰写岗位模型】

马悦

学习 产品 产品经理训练营

【HTML】<blockquote> 和 <q>

德育处主任

CSS html html5 大前端 28天写作

产品经理训练营——作业1

小匚

Python 字节跳动 产品经理训练营 极客大学产品经理训练营

高仿书旗小说 Flutter 版,学起来

GitHub指北

产品经理训练营第一周作业

朱琴

产品经理训练营

Zookeeper面试常见11个连环炮

田维常

面试

产品经理训练营第0期 第一次作业

孙行者

第0期 产品经理训练营

你还在担心搞不定面试官?吃透这份4000道Java面试真题合集,金三银四的黑马就是你了

Java 编程 程序员 面试

28天瞎写的第二百二十二天:五道营胡同的葡萄芽儿

树上

28天写作

你真的知道如何删除list集合中特定元素吗

万里无云

Java List remove

产品经理训练营作业 NO.1

郭栋

第一期作业

糯米~

产品经理训练营-第一周作业

月亮 😝

产品经理训练营

JavaScript 无处不在_大前端_InfoQ精选文章