当前位置: 首页 > Web前端 > JavaScript

开发者热议:微软新提案或将“彻底”改变JavaScript和TypeScript!

时间:2023-03-27 15:54:18 JavaScript

上个月,微软刚刚宣布支持一项“关于进一步开发JavaScript和TypeScript”的提案。虽然这只是一个所谓的phase0提案,但微软已经宣布希望提交这个提案。有业内开发者表示,如果该提案被采纳并实施,将给JavaScript和TypeScript带来翻天覆地的变化。(相关阅读:https://segmentfault.com/a/11...)JavaScript20年的奋进史回顾过去的20年,如果我们时不时对比一下web开发,就会发现JavaScript虽然是A编程语言已经发展了很多,但围绕JavaScript的生态系统已经进步并成长了很多。原因是:第一,JavaScript社区在过去20年中变得更加专业;第二,互联网的一个根本问题变得越来越重要。同时,以上两点互为必要。我们都知道,作为开发人员,我们无法控制用户使用哪些浏览器。也就是说,用户只有定期更新浏览器才能使用JavaScript的最新功能。当然这也是个人用户情况的总结,因为现在很多浏览器都是自动更新的,或者不问就提示更新。但对于公司而言,情况并非如此(可能是由于公司对软件和软件更新有严格的规定)。很多公司经常使用过时的软件,或者用过时的浏览器上网,这也会影响到HTML和CSS,编程语言也需要各自的浏览器来解释,所以有很大的依赖性。此时,作为Web开发人员,我们将不得不在两个概念之间做出选择:要么依赖简化编程或在可用性方面带来更好结果的现代JavaScript、CSS或HTML功能,要么依赖过时的浏览器而无法提供这些现代功能适用于所有人(升级可能会导致一定数量的用户出现错误)。除此之外,几十年来一直没有像样的JavaScript模块系统。Node.js通过CommonJS获得了标准,但仅限于服务器。大约十年前,浏览器中很长一段时间没有发生任何事情,这就是Bundler与转译器一起出现的原因。即使您使用的是一种运行良好的JIT(即时)编译编程语言,您也总是需要处理一个复杂的构建过程,将源代码转换为实际代码,然后执行和解释在浏览器中(这是大约十年前的情况)。TypeScript的兴起十年前,微软发明了TypeScript。根据微软的说法,“如果你需要一个转译器在部署之前转换JavaScript代码,那么在此构建过程中添加一个步骤并不是什么大问题”。在此过程中,开发人员获得了一个将现代JavaScript转换为纯JavaScript的转换器。此外,TypeScript是一种静态类型系统,它使JavaScript更具可扩展性,为团队高效开发JavaScript做出了重要贡献。难怪TypeScript迅速站稳脚跟,成为当今企业JavaScript开发的标准。十年后的今天,世界已经变了。虽然不更新的浏览器仍然“活着”,但它们今天的作用比过去小得多。因此,对于像Evergreen这样的浏览器,它现在可以在没有转译器的情况下工作,并且可以使用ESM(ECMAScript模块),它还包括一个基于JavaScript的本机模块系统,可以在服务器端和客户端工作。这样一来,捆绑器就没有必要了,至少从技术角度来看是这样。捆绑器只是优化HTTP请求的另一个步骤,以便从服务器加载更少的小文件,并且只加载几个大文件。同时,构建过程将变得越来越简单或相关性越来越小。目前,微软预计未来唯一剩下的必要工具就是TypeScript编译器,因为Web浏览器和其他JavaScript运行时环境根本无法理解TypeScript。也就是说,微软或TypeScript突然从一个非常有用的工具变成了一个相当“烦人”的东西。对此,微软表示,他们不想成为阻碍,相反,他们想激励开发者。当然,微软也会为此担心——迟早有一天,JavaScript的开发会像20年前一样快速、直接、高效,因为如果不使用TypeScript,Transpiler迟早会被淘汰。目前,消除担忧的一种方法是要求将TypeScript作为JavaScript的替代编程语言集成到Web浏览器和其他运行时环境中。从理论上讲,这并不牵强。此外,TypeScript现在是一种更复杂的编程语言,微软并不希望将TypeScript编译器的所有功能直接集成到常见的网络浏览器中。这将是一项非常复杂的工作,需要苹果、谷歌、Mozilla等公司合作,整合一个新的大标准。当然,微软应该不想那么做,所以在三月有一个新提案“关于进一步发展JavaScript和TypeScript”。那么,TypeScript是应该保持完全独立,还是会成为“新JavaScript”?无论如何,我们可能会在未来几年看到有关该提案的进展。