AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

评论

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

想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中

华为云开发者联盟

MySQL 运维 测试 MySQL数据库 Kubernetes 集群

Java 面试的“完美圣经”,有了这些还愁面试吗?

Java 程序员 架构 面试 后端

OpenCV学习(三):三重境界

轻口味

OpenCV图像处理 10月月更

ShardingSphere X Google 编程之夏:同学,开源你怎么看?

SphereEx

开源社区 ShardingSphere 谷歌 编程之夏

机器翻译是否能替代人工翻译?从前世今生说起

博文视点Broadview

双减来了!人工智能如何促进教育领域转型?

京东科技开发者

人工智能 大数据 AI 教育行业

一个约定让全球数万AI爱好者相聚,它是如何做到的?

硬科技星球

声网 2020 实时大会后的弱网对抗实践

声网

音视频 网络环境 视频编解码 弱网下的极限实时视频通信

Python代码阅读(第35篇):完全(深度)展开嵌套列表

Felix

Python 编程 Code Programing 阅读代码

“828页Java面试手册”在我手,何愁offer不到手!

Java 程序员 架构 面试 后端

还在苦恼网络协议?阿里大佬这份笔记带你从入门到精通!

Java 架构 面试 程序人生 编程语言

车云一体的应用价值

SOA开发者

10月活动推荐:2021上汽集团“新四化”技术高峰论坛

SOA开发者

解读业界5种主流的深度网络模型

华为云开发者联盟

模型 网络模型 模型优化 模型量化 深度网络

AUTOSAR基础篇之OS(上)

SOA开发者

万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践

JackJiang

websocket 即时通讯 IM

Vue进阶(幺叁幺):父子组件传值实现数据深拷贝

No Silver Bullet

Vue 深拷贝 10月月更

再见收费的Navicat!操作所有数据库靠它就够了!

Java 数据库 架构 开源项目

The Data Way Vol.5|这里有一场资本与开源的 battle

SphereEx

开源 播客 ShardingSphere SphereEx

[架构实战营]模块九作业

xyu

#架构实战营

每一个用到canvas的小伙伴都应该了解的fabric.js

荣顶

JavaScript 大前端 canvas 图形处理 画布

明道云当选“中国电子商会数据资源服务创新专业委员会”理事单位

明道云

我用 10000 张图片合成我们美好的瞬间

荣顶

JavaScript 大前端 canvas 图形处理

为了让你搞定数据库选型,这些工程师重写了 26 万行代码

SphereEx

数据库 架构 架构设计 ShardingSphere SphereEx

实时音频抗弱网技术揭秘

百度开发者中心

最佳实践 经验分享 智能视频

Docgeni 1.1.0 正式发布!

PingCode研发中心

标签 Docgeni 文档目录 进度展示 日志展示

MongoDB中文社区 Freetalk,一起来玩快闪!

MongoDB中文社区

mongodb

GitHub标星过万!阿里内部流传的JDK源码剖析手册到底有多强?

程序员 jdk 面试 java

用21张图,把Git 工作原理彻底说清楚

git 架构 面试 后端

2021年9月国产数据库大事记

墨天轮

数据库 华为云 国产数据库 达梦 人大金仓

嵌入式软件时序(1)— C语言是怎么编译出来的

SOA开发者

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