作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
亚历杭德罗埃尔南德斯
验证专家 在工程

Alej和ro是JavaScript项目的全栈架构师, 他对建筑的经验和理解最具影响力的是什么.

以前在

Globant
分享

每个市场都有一些共同的概念,JavaScript开发也不例外.

产品生命周期是一个概念,您可以将其应用于几个不同的环境,以理解和预测它们的行为. 它是一个商业概念,帮助我们理解产品在其生命周期中所经历的阶段, 在大多数情况下,解释这些阶段对其受欢迎程度的影响, 销售. 如果我们观察市场行为模式, 我们可以估计产品的当前阶段,从而对其受欢迎程度做出一些预测.

产品开发生命周期图

有四个阶段:介绍, 增长, 成熟, 和衰退, 在上面的图表中, 您可以看到每个阶段对预期产品销售的影响. 例如,智能手机的销量增长不如五年前事实上,情况正好相反——所以我们可以说智能手机正在进入成熟阶段.

在过去的几年里, 我们已经看到JavaScript中引入了很多新技术, 但我们需要时间来观察市场将如何接受它们. 没有人愿意成为另一项前途光明的技术的专家,但最终却没有人采用. 然而,现在是时候重新审视一下了. 在本文中, 我将介绍一下JavaScript的流行程度,以及可能影响这种流行的因素, 我将尝试预测JavaScript的未来会是什么样子.

JavaScript语言特性的未来

自从欧洲计算机制造商协会(ECMA)建立了 按年发布周期ECMAScript, 标准化的JavaScript规范, 我们还没有看到很多新特性进入这门语言——每年只有几个. 这可能是我们看到越来越多的人采用像ES5这样的编译语言的原因之一 打印稿 or ReasonML,两者都为语言带来了社区高度要求的特性. 这并不新鲜,javascript之前就经历过这个过程。CoffeeScript),, 最后, 这些特性最终被合并到语言标准本身中, 这可能就是我们可以期待的未来 输入 功能,也.

但是现在我们开始看到一个游戏规则改变者在编译到js的市场上移动 网络Assembly 在浏览器中. 现在, 我们可以使用几乎任何语言并将其编译成以几乎本地速度在浏览器中运行, 更重要的是, 我们开始看到对一些面向未来的功能的支持,比如 支持线程 这将使我们能够利用多处理器架构的优势 不可避免的未来 在所有设备中.

官方工具链网络Assembly 会帮助你编译C/ c++吗, 但是有很多社区为不同的语言提供了编译器, 就像 生锈, Python, Java, Blazor (c#).

特别是, 生锈 社区非常活跃,我们开始看到完整的前端框架,比如 紫杉Dodrio.

这为基于浏览器的应用程序带来了许多新的可能性, 你只需要测试一些用 网络Assembly 如今,基于浏览器的原生应用已经成为现实.g., 草图大师 or 玛格南.

采用编译到ES5的类型化语言已经足够成熟, 球员们已经很成熟了, 它们不会在不久的将来消失(或与ES合并), 但我们将看到一个缓慢的转变,有利于类型语言 网络Assembly.

网络

前端框架

每年,我们都会看到一个 大吵 在web前端框架市场,和 反应 是过去无可争议的赢家吗 几年自从他们引进了改变游戏规则的技术, 虚拟DOM, 我们看到,为了在战斗中保持相关性,他们的对手几乎是义不容辞地采用了这种技术.

几年前, 我们看到了一种全新的web应用程序开发方法的引入 苗条的,”编译器框架这个问题在编译时就消失了,剩下的是小而高效的JavaScript代码. 然而, 这个特性不足以说服社区迁移到苗条的, 但随着最近推出的 苗条的3.0,他们介绍 真正的响应式编程 进入框架和社区都很兴奋, 所以也许我们正在见证前端框架的下一个大事件.

受到 命运的运营商:

Var a = 10;
var b <= a + 1;
a = 20;
断言.b AreEqual(21日);

苗条的 的重载使用为JavaScript带来了响应性 label 在编译时具有响应性的语句,方法是指示代码在中执行 拓扑顺序:

Var a = 10;
$: b = a + 1;
a = 20;
断言.b AreEqual(21日);

这是一个激进的新想法,可能会在不同的情况下有所帮助,所以创造者 苗条的 也在研究 svelte-gl,一个编译器框架,它将生成低级 网络GL 指令直接从3D场景图中声明 HTMLx.

不用说了 反应, , Vue.js 不会在一夜之间消失, 他们的社区很大, 在未来的几年里,它们还会保持相关性——我们甚至不确定 苗条的 会是真正的继任者吗, 但我们可以肯定的是:我们迟早会使用不同的东西.

网络XR和沉浸式网络的未来

虚拟现实一直在苦苦挣扎 过去60年 想要在主流中找到一席之地,但当时的技术还没有准备好. 不到十年前,那时 乔恩·卡马克 加入 眼睛虚拟现实 (现在是Facebook Technologies的一部分, 有限责任公司), 新的VR浪潮开始兴起, 从那时起, 我们已经看到了许多支持不同类型VR的新设备,当然也看到了支持VR的应用程序的激增.

浏览器厂商不想失去这个机会,所以他们加入了 网络VR规范 允许在JavaScript中创建虚拟世界 网络GL 还有一些完善的图书馆 三个.js. 但是,用户的市场占有率与 6个自由度 对于大规模的网络部署来说,设备仍然无足轻重, 但移动网络仍然能够提供3D体验 设备定向API,所以我们看到a 一堆实验 还有很多 360个视频 有一段时间.

2017年,随着 ARKit桃色,新的功能被带到移动设备和各种各样的应用程序 ARMR 经历.

然而,当你在探索你周围的世界时,为一个特定的AR体验下载一个特定的应用程序仍然感觉有点不自然. 如果我们只能有一个应用程序来探索不同的体验,这听起来很熟悉. 我们过去用浏览器解决了这个问题,为什么不给它呢 另一个镜头?

去年, Mozilla介绍网络XR设备API规范 (他的最后一份工作草案, 在写这篇文章的时候, 从两周前开始)带来AR, VR, 和MR(因此XR)功能的浏览器.

其中的一些 最重要的浏览器供应商 然后是它们的实施, 但有一个重要的例外:移动版Safari, 为了证明他们的观点, Mozilla在iOS平台下发布了一款支持网络XR的浏览器 网络XR查看器.

现在,这是重要的一步,因为AR和VR的结合带来了 6个自由度 移动设备和基于移动设备的耳机 谷歌纸板 或者是 三星Gear VR,如你所见 这个例子, 大幅增加6个自由度设备的市场份额,并使大规模web部署成为可能.

同时, Mozilla的家伙们一直在开发一个新的web框架,以促进3D世界和应用程序的创建 人字形一个基于组件的声明性框架,其HTML语法基于 三个.js网络GL我只有一个想法,那就是让web编程重现乐趣和易用性.

这是他们讨伐的一部分 身临其境的网络,这是一套关于未来网络应该是什么样子的新想法. 幸运的是,他们是 不是一个人我们将开始在网络上看到越来越多的沉浸式体验.

如果你想尝试一下,请下载 网络XR查看器 和访问 这个网站 看到沉浸式网络的可能性.

再说一次,标准的基于浏览器的应用程序不会在一两年内消失——我们可能会一直有它们. 但3D应用和XR体验正在增长,市场已经准备好并渴望拥有它们.

对ES6的本地支持

在过去十年中,几乎每一项JavaScript技术都是为了解决浏览器底层实现所产生的问题, 但在过去的几年里,这个平台本身已经成熟了很多, 这些问题大部分都消失了, 我们可以看到 Lodash该公司曾在性能基准上占据主导地位.

DOM也是如此, 谁的问题曾经是创建web应用程序框架的真正灵感. 现在是a 成熟的API 你可以使用 没有框架 创建应用程序——实际上,就是这样 web组件 是. 它们是平台的“框架”,用于创建基于组件的应用程序.

平台发展的另一个有趣部分是语言本身. 我们一直在使用 巴别塔.js 为了能够使用ECMAScript的最新特性, 但由于标准本身在过去几年开始停滞不前, 这段时间足以让浏览器厂商实现他们的大部分功能, 的本地支持 静态导入语句. 那么现在,我们可以开始考虑创建应用程序了 巴别塔.js 或者其他编译器,因为我们有(再次)平台本身的语言特性支持, 由于 节点.js 使用相同的 V8 VM as 谷歌Chrome我们已经开始看到对ES6的更强有力的支持 节点.js方法下的静态导入语句也是如此 experimental-modules国旗.

这并不意味着我们将不再看到以专业水平编译的应用程序, 但这意味着,从一个基于浏览器的应用程序开始,将会像以前一样简单而有趣.

服务器端JavaScript

尽管JavaScript始于1995年的服务器端 网景企业服务器直到《欧博体育app下载》 演讲 2009年,JavaScript开始被认真考虑用于服务器端应用程序. 很多 事情发生了 在过去的十年中,节点.js. 它进化和成熟了很多, 再一次为颠覆和新技术创造了机会.

在这种情况下,它来自它自己的创造者,瑞安·达尔,他一直在做一个 新视角 的服务器端安全应用程序 Deno, 一个原生支持最新语言特性的平台,如async/await, 还有最流行的编译成js的语言打印稿, 目标是最佳性能,这要归功于它们在 生锈 的用法 东京,但更重要的是一个新的 安全理念 这是它与大多数服务器端平台(如 Python, Ruby, or Java). 受浏览器安全模型的启发, Deno 只有在用户显式地授予进程权限后,才允许您使用主机的资源, 这听起来可能有点乏味, 但是允许我们在安全的环境中运行不安全的代码,只需要信任平台,这可能会产生很多影响.

节点.js 将来还会存在,但也许我们会开始看到无服务器服务,比如 AWSλAzure的功能 提供 Deno 作为在其系统上提供不安全的服务器端代码执行的替代功能.

结论

这是JavaScript世界中激动人心的时刻——许多技术已经足够成熟,为创新留下了空间, 活跃的社区从未停止用他们聪明和令人难以置信的想法给我们带来惊喜, we expect a lot of new alternatives to well-established tools since 的ir mature stages 是 arriving quickly; we won’t stop using 的m since a lot of 的m 是 really good 和 的re is plenty of proof in 的 battlefield, 但新的令人兴奋的市场将开始出现, 你最好做好准备.

跟上JavaScript世界的最新动态并不容易, 因为发展的速度, 但有一些来源确实可以帮助. 首先,在我看来,最重要的新闻来源是 回声JS,在那里你每小时都能看到数量惊人的新内容. 但是,如果你没有时间,那么 JavaScript每周 时事通讯是对本周JS的一个很好的总结. 除了这, 关注世界各地的会议也很重要, 和YouTube频道, JSConf, 反应之, 谷歌Chrome开发人员 非常有帮助.

相反, 如果你对JavaScript的发展方向有兴趣的话, 我推荐阅读 作为一个JS开发者,这就是让我夜不能寐的原因 通过的 JavaScript开发人员 Justen罗伯逊.

关于总博客的进一步阅读:

了解基本知识

  • 为什么JavaScript如此重要?

    如果你想使用web,最终你将不得不处理JavaScript. 也, 由于其受欢迎程度, JavaScript有很多机会成为编程语言的“通用语言”. 所有这些都使它变得非常重要.

  • JavaScript会被替换吗??

    JavaScript最终会被取代,在遥远的将来. 但是现在, 至少在接下来的十年左右, 我们可以肯定,我们的JavaScript知识将是有用的.

  • JavaScript是最流行的编程语言吗?

    是的,是这样的. 我们通常倾向于考虑世界上JavaScript编译器的数量, 但现在我们可以考虑到节点等平台的成功.js, 反应本地, 电子, 和Johnny-Five, 以及要求在网络之外使用JS的社区.

聘请Toptal这方面的专家.
现在雇佣
亚历杭德罗埃尔南德斯

亚历杭德罗埃尔南德斯

验证专家 在工程

Córdoba,阿根廷科尔多瓦

2012年10月30日成为会员

作者简介

Alej和ro是JavaScript项目的全栈架构师, 他对建筑的经验和理解最具影响力的是什么.

作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

以前在

Globant

世界级的文章,每周发一次.

<为m aria-label="Sticky subscribe 为m" class="_2ABsLCza P7bQLARO -Ulx1zbi">

订阅意味着同意我们的 隐私政策

世界级的文章,每周发一次.

<为m aria-label="Bottom subscribe 为m" class="_2ABsLCza P7bQLARO -Ulx1zbi">

订阅意味着同意我们的 隐私政策

Toptal开发者

加入总冠军® 社区.