写点什么

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:2411553

评论

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

大数据培训flink8 个高频面试实战题分享

@零度

大数据 flink

Pycharm那些隐藏的实用小技巧,yyds,某大厂开发者对于Python多线程的总结

程序媛可鸥

Python 程序员 面试

python DataFrame常用描述性统计分析方法,熬夜整理华为最新Python笔试题

程序媛可鸥

Python 程序员 面试

Python 初学者进阶的九大技能,Python校招面试指南

程序媛可鸥

Python 程序员 面试

Python 实现数据结构中的的栈,队列,Python面试自我介绍

程序媛可鸥

Python 程序员 面试

JSON Schema 实现复杂结构表单数据展示

全象云低代码

前端 低代码 表单 JSON Schema

最好的 6 款 React 后台管理系统模板和框架

蒋川

React

iuap助力中国一汽数智化转型

用友BIP

用友 用友iuap

First——tornaod环境搭建及基本框架搭建,2021最新爱奇艺Python社招面试题目

程序媛可鸥

Python 程序员 面试

python 两种排序方法 sort() sorted(),高级Python工程师面试题

程序媛可鸥

Python 程序员 面试

Python-Matplotlib可视化(8),毕业工作5年被裁

程序媛可鸥

Python 程序员 面试

云小课|如何实现数据跨链交互?

华为云开发者联盟

区块链 数据 跨链 数据跨链 可信跨链服务

Python——Scipy库,熬夜整理华为最新Python笔试题

程序媛可鸥

Python 程序员 面试

龙蜥社区新增100+家合作伙伴,堡塔、东方通、宝德等头部企业均已加入

OpenAnolis小助手

开源 适配 合作伙伴 龙蜥社区 龙头企业

40行不到的Python代码实现超燃动态排序图,成为一名合格Python架构师

程序媛可鸥

Python 程序员 面试

eNSP检测不到网卡信息——WinPacp,附带学习经验

程序媛可鸥

Python 程序员 面试

Kafka 常用命令总结,小白必看

程序媛可鸥

Python 程序员 面试

Python 提取音乐频谱并可视化,字节面试官

程序媛可鸥

Python 程序员 面试

一个数据顾问的成长之路

用友BIP

用友 用友iuap

谭中意:玩魔兽、爱做饭、看毛选,而我是个开源人

腾源会

开源 腾源会

Python 实现二叉树前序,中序,后序,三面美团Python岗

程序媛可鸥

Python 程序员 面试

python下载酷狗音乐上的歌曲,作为一个Python程序员你还不会JetPack

程序媛可鸥

Python 程序员 面试

带你了解2022两会黑科技:阿里云视频云「AI编辑部3.0」

阿里云CloudImagine

云计算 阿里云 AI 音视频 视频云

Python 3000 中的 reduce() 的命运 作者Guido van van Rossum

程序媛可鸥

Python 程序员 面试

Python3十大经典错误及解决办法,这操作真香

程序媛可鸥

Python 程序员 面试

DataFrame转字典、列表、元组操作汇总,学生会面试题选择题

程序媛可鸥

Python 程序员 面试

技术平台&应用开发专题月 | 应用多实例调试—开发者的福音

用友BIP

用友 用友iuap

技术平台&应用开发专题月 | 赋能企业业务快速创新,实现云原生自由

用友BIP

用友 用友iuap

python DataFrame的shift()方法,从三流Python外包到秒杀阿里P7,

程序媛可鸥

Python 程序员 面试

JVM自定义类加载器在代码扩展性的实践

vivo互联网技术

JVM java 编程

Java培训基础高频面试题八股文分享

@零度

JAVA开发

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