关于javascript:开发者热议微软新提议或将彻底改变-JavaScript-和-TypeScript

5次阅读

共计 2045 个字符,预计需要花费 6 分钟才能阅读完成。

上个月,微软刚发表反对了一项“对于进一步开发 JavaScript 和 TypeScript”的提议,只管这只是一个所谓的 0 阶段提案,但微软已发表心愿按时向 TC39(技术委员会 39)提交该提案。有业内开发者示意,如果这项提议被驳回并将失去施行,那么对于 JavaScript 和 TypeScript 来说将迎来一场巨变。
(相干浏览:https://segmentfault.com/a/11…)

JavaScript 的 20 年奋进史

回顾过去的 20 年,如果比拟一下当初和那时的 web 开发,咱们就会发现,只管 JavaScript 作为一种编程语言曾经倒退了很多,但围绕 JavaScript 的生态系统却已获得了很大提高和倒退。

究其原因,是因为:第一点,JavaScript 社区在过来 20 年里变得更加业余;第二点,互联网的一个根本问题变得越来越重要。以此同时,以上这两点是互相须要的。

家喻户晓,作为开发者,咱们无法控制用户将应用哪些浏览器。也就是说,用户只有定期更新浏览器,能力应用 JavaScript 的最新性能。当然这也是对个人用户状况的总结,因为当初很多浏览器都会自动更新,或者在未经询问的状况下批示更新。

但对于公司而言,状况并非如此(或者因为企业对软件和软件更新有严格的规定)。许多公司常常会应用过期的软件,或应用过期的浏览器上网,这也会影响 HTML 和 CSS,此外编程语言也必须由各自的浏览器进行解释,因而具备很大的依赖性。

此时,作为一名 web 开发人员,咱们将必须在两种观点之间做出抉择:要么依赖于简化编程或在可用性方面带来更好后果的古代 JavaScript、CSS 或 HTML 性能,要么因过期的浏览器而无奈为所有人提供这些古代性能(降级可能会导致肯定数量的用户呈现 bug)。

除此之外,几十年来还没有一个像样的 JavaScript 模块零碎。而 Node.js 通过 CommonJS 取得了规范,但这仅限于服务器。

大概十年前,浏览器中很长一段时间没有产生任何事件,这就是为什么 Bundler 与 transpiler 一起呈现的起因。只管您应用的是一种能够失常执行的 JIT(即时)编译编程语言,但您始终须要解决一种简单的构建过程,将源代码转换为理论代码,而后在浏览器中执行和解释(这是大概十年前的状况)。

TypeScript 的崛起

十年前,微软创造了 TypeScript。微软认为“如果你在部署之前须要一个 transpiler 来转换 JavaScript 代码,那么在这个构建过程中减少一个步骤也不会有什么大不了的”。

在这个过程中,开发者会失去一个能将古代 JavaScript 转换成一般 JavaScript 的 transpiler。此外,TypeScript 是一个动态类型零碎,它使 JavaScript 更具可伸缩性,为团队高效开发 JavaScript 做出了重要奉献。

这也难怪 TypeScript 很快建设起来,并一举成为当今企业 JavaScript 开发的规范。

十年后的明天,世界产生了变动。尽管那些不更新的浏览器当初还“活着”,但它们明天所表演的角色比过来小得多。

所以,对于 Evergreen 这样的浏览器而言,当初不应用 transpiler 也能工作,且有了 ESM(ECMAScript 模块),还包含一个可在服务器端和客户端工作的基于 JavaScript 的本地模块零碎。

这样一来,bundler 就用不着了,至多从技术角度来看是这样。bundler 只是优化 HTTP 申请的又一个步骤,这样就能够从服务器上加载更少的小文件,只需加载几个大文件。与此同时,构建过程也将逐步变得更简略或更无关紧要。

目前,微软预计将来惟一剩下的必要工具,就是 TypeScript 编译器,因为 web 浏览器和其余 JavaScript 运行时环境根本无法了解 TypeScript。

也就是说,微软或 TypeScript 忽然从一个十分实用的工具变成了一个相当“烦人”的货色。对此,微软示意他们不想成为妨碍,反之,他们想激励开发者。

当然,这样一来微软也会有所放心 —— JavaScript 开发迟早会像 20 年前一样疾速、间接、高效,因为如果不应用 TypeScript 的话,Transpiler 这些货色迟早要被淘汰掉。

目前,打消顾虑的一种形式是:要求在 web 浏览器和其余运行时环境中集成 TypeScript,以此来作为 JavaScript 的代替编程语言。实践上,这并不牵强。

此外,TypeScript 当初也成为了一种更加简单的编程语言,微软不心愿将 TypeScript 编译器的所有性能间接集成到常见的 web 浏览器中。这将是一项非常复杂的工作,须要苹果、谷歌、Mozilla 等公司的单干,能力集成一个新的大规范。

当然,微软应该不想那样做,因而也就有了 3 月份的那份“对于进一步开发 JavaScript 和 TypeScript”的新提议。

那么,TypeScript 是否应该放弃齐全独立,亦或者会变成“新的 JavaScript”呢?无论如何,咱们或者会在接下来的几年里看到对于此次提议的倒退。

正文完
 0