您所在的位置:首页 - 好文分享 - 正文好文分享

又一个大前端工具与TS和平分手

流量卡推荐网 流量卡推荐网 2023-11-14 【好文分享】 1295人已围观

摘要本篇关于WebAssembly介绍文章来源:作者小精原创,公众号<前端精湛掌握> 2023-11-13发表于北京欢迎搜索并关注。又一个大前端工具与TS和平分手“前端工具链Turbo宣布将在8.0版本放弃TypeScript。三个月前,前端框架Svelte宣布将在4.0版本从TypeScript切换到使用JSDoc的JavaScript。如今,又一大前端工具Turbo宣布放弃TypeScript。TypeScript究竟存在哪些问题,让这些工具都宣布放弃使用?

本篇关于WebAssembly介绍文章来源: 作者小精原创,公众号<前端精湛掌握>  2023-11-13 发表于北京 欢迎搜索并关注。

又一个大前端工具与TS和平分手

前端工具链 Turbo 宣布将在 8.0 版本放弃 TypeScript。三个月前, 前端框架 Svelte 宣布将在 4.0 版本从 TypeScript 切换到使用 JSDoc 的 JavaScript。如今,又一大前端工具 Turbo 宣布放弃 TypeScript。TypeScript 究竟存在哪些问题,让这些工具都宣布放弃使用?


往期回顾 : Next.js 14  重磅来袭!

Vercel 推出并开源了下一代打包工具:Turbopack。

Turbopack 是针对 JavaScript 和TypeScript 优化的增量打包工具,由 Webpack 的创建者 Tobias Koppers 和 Next.js 团队使用 Rust 编写。

什么是 Turbo

一个专门为 Web 构建的更聪明、更快的包管理器

比 Yarn 和 NPM 快 5 倍,可以在本地浏览器中运行

Turbo 是一个速度极快的 NPM 客户端,最初是为 StackBlitz 创建的:

安装包的速度最少是 Yarn 和 NPM 的五倍 ??

将 node_modules 的大小减少到两个数量级??

用于生产级可靠性的多层冗余 ??

完全在 Web 浏览器中工作,能够拥有闪电般的开发环境

Turbo 的速度和效率大部分是通过利用与现代前端应用程序相同的技术来完成的,他们使用了

snappy performance—tree-shaking

懒加载

gzip压缩

普通 XHR/fetch 请求

这几种技术

Turbo8正在放弃 TypeScript的原因

TypeScript污染代码,只是障碍?

Turbo本身并不是最受欢迎的框架之一,但近年来,在Rails世界中,它和Hotwire还是受到了不少关注。

Hotwire 作为一种Web开发的新方法,旨在编写全栈式Web应用时尽可能简化Web开发过程,减少对JavaScript的使用依赖,其中Turbo是Hotwire 的核心组件之一。

借助 Turbo,可以让服务端直接发布 HTML,这意味着所有业务逻辑都能或多或少地只用你所喜欢的编程语言即可实现。所有的逻辑都位于服务端,而浏览器只处理最终的 HTML。

关于为什么要放弃TypeScript?

DHH直接发文表示:“TypeScript 对我来说只是阻碍。

不仅因为它需要显式的编译步骤,还因为它用类型体操(Type Gymnastics)污染了代码。“这让他的开发体验苦多乐少,且常常会化简为繁,徒增困扰。

简言之,对Trobo而言,TypeScript有些“麻烦”。

首先,使用TypeScript需要进行额外的编译步骤,而且需要配置设置,这会增加不必要的复杂性。弃用TypeScript将使Turbo 8的编译过程更加迅速,开发流程更为简洁。这将释放出更多宝贵的时间和资源,用来进行其他创新和改进。

其次,类型系统很棒,但类型的引入也可能导致代码变得繁复而冗长,让代码体积变过于庞大。而且有时候,某些简单的事情反而会因为类型相关的限制变得事倍功半。

再者,TypeScript 团队早就意识到无法完全替代 JavaScript,因此他们努力实现了两者的完全兼容。这意味着即使不使用TypeScript,仍然可以使用 JavaScript 编写代码,并且能够使用用TypeScript编写的库。

最后,放弃TypeScript并不意味着Turbo 8放弃了类型安全和可维护性的重要性。

相反,Turbo 8承诺将加大对JavaScript生态系统的支持,通过引入新的功能和工具,来提高代码质量和开发速度。更加聚焦于JavaScript生态系统的发展可以让Turbo 8能够更专注于提供出色的开发体验。

矛盾的激化:

不满不仅在于更改,还在于更改的方式

微软的Anders Hejlsberg发明了TypeScript,因为他相信用强类型语言编写复杂的应用程序会更健壮,更容易维护。TypeScript也的确取得了巨大的成功,这一语言在编程社区中的流行表明,许多人都赞成这一点。

但在DHH看来,TypeScript最引以为豪的“强类型”恰恰是障碍。JavaScript 是客户端的必不可少的语言。虽然可以将其他语言编译成JavaScript来在浏览器中运行,但最终还是需要用JavaScript来实际执行代码。因此,在这种情况下,“能够自由、无需任何工具和强类型约束地编写JavaScript代码是一件幸事”。

不过,就社区的反馈来看,多数用户都在不同程度上感到困惑和失望,而且不仅仅是因为这个决定本身,还因为决定的方式。

一位用户表示:“切换回JS意味着许多Hotwire生态系统包将被破坏。目前所有开放的PR现在都已完全过时。IDE将不再像以前那样提供自动完成功能。”

另一位抱怨道,“仓促做出这一重要改变,忽略了所有(我指的是所有)公开评论……开创了一个先例。Ruby on Rails也会这样开发吗?这是一个人的心血来潮吗?”

还有人直言:“大卫单方面且未经讨论就淘汰了多个贡献者的工作。这与TS无关,这关乎对社区和生态系统的尊重。”

对于反对声,DHH早有预见。他在官宣放弃TypeScript时就曾提到,“很少有程序员有兴趣改变他们对类型的看法。大多数程序员发现自己在职业生涯的早期就受到了TypeScript的强烈吸引,然后把剩下的时间花在为自己和他人合理化这一选择之上。”

有网友“翻译”了一下DHH的这段话并开了一波嘲讽:“这段话基本上就是在说,1、程序员不会改变主意。2、因为他们不会改变主意,所以关于这个决定的争论是徒劳的。3、因为争论是徒劳的,所以我拒绝解决人们对这个武断决定的担忧。老实说,如果他只是说‘我正在做一个武断的决定’,而不是用冗长、半生不熟的辩解来表达它,我会更能接受。”

随着矛盾的激化,针对少数TypeScript的激进支持者,DHH也“硬刚”了回去,再度发文称之为“绝对精神错乱的开源流氓行为”。

他依然坚持己见:“所有的爱和赞赏都献给那些喜欢TypeScript的贡献者。这是一场争论,争论不太可能改变任何人的基本立场,所以我不会试图这样做。”

一切只是选择:

放弃TypeScript,放过自己

争论尚未休止。除了反对声外,也有人觉得这个决定只是面向未来版本的战略调整,尽管会给开发者们带来一些困扰,但Turbo团队的决策还是很有勇气的。

就像当初Svelte 团队决定放弃TypeScript,转而使用JavaScript和JSDoc注释来实现类型安全。这种方法提供了所有类型安全的好处,而没有与 TypeScript 相关的缺点。

如今Turbo团队的决策到底是刚愎自用还是富有远见?尚需要时间的检验。不过,可以肯定的是,TypeScript终究只是工具,到底要不要用,好不好用,还是取决于开发团队或开发人员的特定需求和偏好。

很多开发人员之所以选择 TypeScript,是因为强类型可以减少错误,如果你追求代码的严谨可靠,并乐于在开发过程里获得更多的工具支持和类型检查,那么TypeScript会很趁手。但如果你和DHH一样,对类型限制感到痛苦,希望能更加无拘束地编写代码,那么放弃TypeScript也是放过你自己。

“小结:

就像React核心开发Dan Abramov所表达的,“如果你增加TypeScript,我会为你鼓掌。如果你移除TypeScript,我(同样)会为你鼓掌。关键在于是你在更改代码,而不是那些代码在改变你。改变意味着生活,你正生活在其中。”


Tags: 大前端工具 大前端 工具

文章评论 (暂无评论,1295人围观)

流量卡推荐网

流量卡推荐网

正规、包邮、无套路,主打安全实用!本站只做推荐,有保障!

261 文章数
7 评论数
379497 浏览数

友情链接

站点信息

  • 文章总数:261
  • 页面总数:1
  • 分类总数:9
  • 标签总数:435
  • 评论总数:7
  • 浏览总数:379497
icp粤ICP备2022093202号
取消
微信二维码
支付宝二维码

目录[+]