2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

力扣题 - 29 解析大佬题解

Geek_663541

Java算法

Flink任务执行-3

小知识点

大数据 flink

Docker入门与简单使用

Simon

Docker Linux

不说再见

太以

疫情 毕业季 遗憾 大学

常用SQL语句分享

Simon

MySQL sql

云上攻击太多怎么办?不妨试试这些工具

华为云开发者联盟

黑客 云服务 数据安全 华为云 企业上云

CSS属性整理

kidd

领导发表的报告,你真的读懂了吗?

罗小龙

工作经验

MySQL下的DB Link

Simon

MySQL

[High Performance TIDB] Leeson 01:TIDB整体架构---作业

远鹏

高性能 #TiDB

不完满的选择,要不要放弃

zhoo299

随笔杂谈

LeetCode152-乘积最大子数组-medium

书旅

LeetCode 动态规划

Docker从入门到放弃---基础篇

书旅

Docker 容器

MySQL容器化详细教程

Simon

MySQL Docker 容器

安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?

诸葛小猿

加密解密 非对称加密 rsa 签名验签

糖果不需要意义

zhoo299

随笔杂谈 电影

疫情按下快进键,电商抢占市场红利需可靠的助力

华为云开发者联盟

高并发 电商 华为云 流量 云服务器

TypeScript 设计模式之发布-订阅模式

Geek_z9ygea

typescript 大前端 设计模式

学习源码的第八个月,我成了Spring的开源贡献者

程序员DMZ

spring 开源

带着面试题学习红黑树操作原理,解析什么时候染色、怎么进行旋转、与2-3树有什么关联

小傅哥

Java 数据结构 小傅哥 红黑树 2-3树

Docker 架构及工作原理

哈喽沃德先生

Docker 容器 微服务

ARTS打卡第一周(200511-200517)

老胡爱分享

ARTS 打卡计划 ARTS活动

MySQL中几种常见的日志

Simon

MySQL 日志

我与游戏相伴【自我访谈】

叶阳夏烟

系列 游戏 游戏观 访谈录

LeetCode题解:11. 盛最多水的容器,while循环双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

CDN百科11 | 担心纸质病例被洪水淹没?ECS+CDN+OSS如何助力医疗上云

阿里云Edge Plus

CDN 存储 云服务器

高效程序员的45个习惯:敏捷开发修炼之道(4)

石云升

读书笔记 敏捷开发

学习笔记2

Qx

学习

SecureBoost算法

soolaugust

学习 同态加密 secureboost

GrowingIO 数据采集 iOS SDK 测试实践

GrowingIO技术专栏

ios 数据采集 sdk

Apache Pulsar 在 BIGO 的性能调优实战(上)

Apache Pulsar

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