Redian新闻
>
TypeScript 被放弃!又一知名前端利器决意转回JS,社区不满:这在开倒车!

TypeScript 被放弃!又一知名前端利器决意转回JS,社区不满:这在开倒车!

公众号新闻

推荐关注↓

转自:51CTO技术栈 - 千山

日前,Ruby on Rails的创建者David Heinemeier Hansson(DHH)宣布,将从前端工具链Turbo的8.0版本开始删除TypeScript,这一决定引起了开发社区极大的震惊与不满。

         

TypeScript作为广受欢迎的语言,以其强大的类型系统和优秀的可维护性而出名。所以Turbo 8的决定受到了很多人的质疑。很多Turbo用户表示,这个决定不仅仓促,而且是“不受欢迎的”。

         

但如果你有留意过前端工具的发展动态,也许会记得,数月前,前端框架Svelte曾宣布将在4.0版本从 TypeScript 迁移到 JavaScript JSDoc。如今,又一个前端工具选择放弃TypeScript,这到底意味着什么?是技术的倒退,还是TypeScript的某种“不合时宜”,或者另有隐情?         

         

图源:X(推特)@DHH



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、因为争论是徒劳的,所以我拒绝解决人们对这个武断决定的担忧。老实说,如果他只是说‘我正在做一个武断的决定’,而不是用冗长、半生不熟的辩解来表达它,我会更能接受。”


图源:Reddit

         

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


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



一切只是选择:

放弃TypeScript,放过自己


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

         

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

         

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

         

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

         

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

         

图源:X(推特)@dan_abramov

         

参考链接:

https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01

https://www.reddit.com/r/programming/comments/16bufc7/turbo_8_is_dropping_typescript/

https://devclass.com/2023/09/07/ruby-on-rails-creator-removes-typescript-from-turbo-framework-upsets-community


- EOF -

推荐阅读  点击标题可跳转

1、程序员未写出赌博程序被拔掉 14 颗牙

2、这个国产自主 IDE 要钉上耻辱柱了吧? 

3、微软宣布 Python 与 Excel “大合体”!!!

4、为什么都是技术合伙人被踢出局?


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
老海归回国的原因洛县公园可疑男子徘徊拍照,社区不安突传噩耗!又一知名演员去世:一个时代落幕了...刷屏!又一知名女演员被曝偷税漏税!乌克兰亿万富翁被捕,什么情况?俄第一道防线被突破?C# 和 TypeScript 之父亲自带队开源 TypeChat,又一 AI 技术瓶颈被攻破?茅台x飞猪联名“茅房”,炸翻热搜!今秋新流量密码:茅台联名!网友不满:快把自己玩成料酒了!Typisch deutsch! 那些只会在德国发生的事...又一知名证交所和微软合作大模型,监管警告:AI或引发金融危机JS三大运行时对比:Deno、Bun和Node.js为什么你非常不适应 TypeScript“根本不需要TypeScript,JS+JSDoc够了”,大佬说我想多了体积减小20%,TypeScript的npm包逐渐变小Next.js支持在前端代码中写SQL,开倒车还是遥遥领先?澳洲建筑业震荡!又一知名建筑公司破产,百余工人失业,$10亿项目或将搁浅又一知名女演员被举报!iPhone将放弃lighting接口,全面拥抱Type-C在 Linux 终端利用 Asciiquarium 打造海底世界 | Linux 中国墨华人区知名私人医院扩建项目遭反对,社区称:这么做很没品!如何用Kubernetes实战快速搭建typecho个人博客?又一知名证交所和微软合作大模型,监管警告:AI 或引发金融危机就在这周!安省最低时薪上调!打工人不满:多伦多必须涨到这个数!小米一开源项目被批“三无”,项目导师回应;Ruby on Rails之父将TypeScript从Turbo框架中移除 | Q资讯4天内5家出事!墨尔本又一知名建筑商破产!客户急疯:交完定金公司没了中国代表回应以色列不满:把中国当对手,选错了对象!《祖国圆舞曲》&《你在终点等我》美麗阿拉斯加(二)安克雷奇 (Anchorage)一个袋子$15!Coles惊现高价纸袋,引发顾客不满:太无耻2023回国 一真一假的两家店突发!又一知名歌手被捕:多次荣登央视,警方通报来了....俄罗斯在开历史倒车?TypeScript 刚刚流行起来,为什么大牛们就开始抛弃了?极致性能优化:前端SSR渲染利器Qwik.jsUnity新收费模式引不满,最早的用户社区Boston Unity Group宣布解散TypeScript刚刚流行起来,为什么大牛们就开始抛弃了?中年爱情2 倒霉的男人
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。