偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

TypeScript被放棄!又一知名前端利器決意轉(zhuǎn)回JS,社區(qū)不滿:這在開倒車!

原創(chuàng) 精選
開發(fā) 前端
Hotwire 作為一種Web開發(fā)的新方法,旨在編寫全棧式Web應(yīng)用時盡可能簡化Web開發(fā)過程,減少對JavaScript的使用依賴,其中Turbo是Hotwire 的核心組件之一。

撰稿丨千山

日前,Ruby on Rails的創(chuàng)建者David Heinemeier Hansson(DHH)宣布,將從前端工具鏈Turbo的8.0版本開始刪除TypeScript,這一決定引起了開發(fā)社區(qū)極大的震驚與不滿。

TypeScript作為廣受歡迎的語言,以其強大的類型系統(tǒng)和優(yōu)秀的可維護性而出名。所以Turbo 8的決定受到了很多人的質(zhì)疑。很多Turbo用戶表示,這個決定不僅倉促,而且是“不受歡迎的”。

但如果你有留意過前端工具的發(fā)展動態(tài),也許會記得,數(shù)月前,前端框架Svelte曾宣布將在4.0版本從 TypeScript 遷移到 JavaScript JSDoc。如今,又一個前端工具選擇放棄TypeScript,這到底意味著什么?是技術(shù)的倒退,還是TypeScript的某種“不合時宜”,或者另有隱情?                 

圖源:X(推特)@DHH圖源:X(推特)@DHH

1、TypeScript污染代碼,只是障礙?

Turbo本身并不是最受歡迎的框架之一,但近年來,在Rails世界中,它和Hotwire還是受到了不少關(guān)注。

Hotwire 作為一種Web開發(fā)的新方法,旨在編寫全棧式Web應(yīng)用時盡可能簡化Web開發(fā)過程,減少對JavaScript的使用依賴,其中Turbo是Hotwire 的核心組件之一。

借助 Turbo,可以讓服務(wù)端直接發(fā)布 HTML,這意味著所有業(yè)務(wù)邏輯都能或多或少地只用你所喜歡的編程語言即可實現(xiàn)。所有的邏輯都位于服務(wù)端,而瀏覽器只處理最終的 HTML。

關(guān)于為什么要放棄TypeScript?

DHH直接發(fā)文表示:“TypeScript 對我來說只是阻礙。不僅因為它需要顯式的編譯步驟,還因為它用類型體操(Type Gymnastics)污染了代碼?!斑@讓他的開發(fā)體驗苦多樂少,且常常會化簡為繁,徒增困擾。

簡言之,對Trobo而言,TypeScript有些“麻煩”。

首先,使用TypeScript需要進行額外的編譯步驟,而且需要配置設(shè)置,這會增加不必要的復(fù)雜性。棄用TypeScript將使Turbo 8的編譯過程更加迅速,開發(fā)流程更為簡潔。這將釋放出更多寶貴的時間和資源,用來進行其他創(chuàng)新和改進。

其次,類型系統(tǒng)很棒,但類型的引入也可能導(dǎo)致代碼變得繁復(fù)而冗長,讓代碼體積變過于龐大。而且有時候,某些簡單的事情反而會因為類型相關(guān)的限制變得事倍功半。

再者,TypeScript 團隊早就意識到無法完全替代 JavaScript,因此他們努力實現(xiàn)了兩者的完全兼容。這意味著即使不使用TypeScript,仍然可以使用 JavaScript 編寫代碼,并且能夠使用用TypeScript編寫的庫。

最后,放棄TypeScript并不意味著Turbo 8放棄了類型安全和可維護性的重要性。相反,Turbo 8承諾將加大對JavaScript生態(tài)系統(tǒng)的支持,通過引入新的功能和工具,來提高代碼質(zhì)量和開發(fā)速度。更加聚焦于JavaScript生態(tài)系統(tǒng)的發(fā)展可以讓Turbo 8能夠更專注于提供出色的開發(fā)體驗。

2、矛盾的激化:

不滿不僅在于更改,還在于更改的方式

微軟的Anders Hejlsberg發(fā)明了TypeScript,因為他相信用強類型語言編寫復(fù)雜的應(yīng)用程序會更健壯,更容易維護。TypeScript也的確取得了巨大的成功,這一語言在編程社區(qū)中的流行表明,許多人都贊成這一點。

但在DHH看來,TypeScript最引以為豪的“強類型”恰恰是障礙。JavaScript 是客戶端的必不可少的語言。雖然可以將其他語言編譯成JavaScript來在瀏覽器中運行,但最終還是需要用JavaScript來實際執(zhí)行代碼。因此,在這種情況下,“能夠自由、無需任何工具和強類型約束地編寫JavaScript代碼是一件幸事”。

不過,就社區(qū)的反饋來看,多數(shù)用戶都在不同程度上感到困惑和失望,而且不僅僅是因為這個決定本身,還因為決定的方式。

一位用戶表示:“切換回JS意味著許多Hotwire生態(tài)系統(tǒng)包將被破壞。目前所有開放的PR現(xiàn)在都已完全過時。IDE將不再像以前那樣提供自動完成功能。”

另一位抱怨道,“倉促做出這一重要改變,忽略了所有(我指的是所有)公開評論……開創(chuàng)了一個先例。Ruby on Rails也會這樣開發(fā)嗎?這是一個人的心血來潮嗎?”

還有人直言:“大衛(wèi)單方面且未經(jīng)討論就淘汰了多個貢獻(xiàn)者的工作。這與TS無關(guān),這關(guān)乎對社區(qū)和生態(tài)系統(tǒng)的尊重?!?/p>

對于反對聲,DHH早有預(yù)見。他在官宣放棄TypeScript時就曾提到,“很少有程序員有興趣改變他們對類型的看法。大多數(shù)程序員發(fā)現(xiàn)自己在職業(yè)生涯的早期就受到了TypeScript的強烈吸引,然后把剩下的時間花在為自己和他人合理化這一選擇之上?!?/p>

有網(wǎng)友“翻譯”了一下DHH的這段話并開了一波嘲諷:“這段話基本上就是在說,1、程序員不會改變主意。2、因為他們不會改變主意,所以關(guān)于這個決定的爭論是徒勞的。3、因為爭論是徒勞的,所以我拒絕解決人們對這個武斷決定的擔(dān)憂。老實說,如果他只是說‘我正在做一個武斷的決定’,而不是用冗長、半生不熟的辯解來表達(dá)它,我會更能接受?!?/p>

圖源:Reddit圖源:Reddit

隨著矛盾的激化,針對少數(shù)TypeScript的激進支持者,DHH也“硬剛”了回去,再度發(fā)文稱之為“絕對精神錯亂的開源流氓行為”。

他依然堅持己見:“所有的愛和贊賞都獻(xiàn)給那些喜歡TypeScript的貢獻(xiàn)者。這是一場爭論,爭論不太可能改變?nèi)魏稳说幕玖?,所以我不會試圖這樣做?!?/p>

3、一切只是選擇:

放棄TypeScript,放過自己

爭論尚未休止。除了反對聲外,也有人覺得這個決定只是面向未來版本的戰(zhàn)略調(diào)整,盡管會給開發(fā)者們帶來一些困擾,但Turbo團隊的決策還是很有勇氣的。

就像當(dāng)初Svelte 團隊決定放棄TypeScript,轉(zhuǎn)而使用JavaScript和JSDoc注釋來實現(xiàn)類型安全。這種方法提供了所有類型安全的好處,而沒有與 TypeScript 相關(guān)的缺點。

如今Turbo團隊的決策到底是剛愎自用還是富有遠(yuǎn)見?尚需要時間的檢驗。不過,可以肯定的是,TypeScript終究只是工具,到底要不要用,好不好用,還是取決于開發(fā)團隊或開發(fā)人員的特定需求和偏好。

很多開發(fā)人員之所以選擇 TypeScript,是因為強類型可以減少錯誤,如果你追求代碼的嚴(yán)謹(jǐn)可靠,并樂于在開發(fā)過程里獲得更多的工具支持和類型檢查,那么TypeScript會很趁手。但如果你和DHH一樣,對類型限制感到痛苦,希望能更加無拘束地編寫代碼,那么放棄TypeScript也是放過你自己。

就像React核心開發(fā)Dan Abramov所表達(dá)的,“如果你增加TypeScript,我會為你鼓掌。如果你移除TypeScript,我(同樣)會為你鼓掌。關(guān)鍵在于是你在更改代碼,而不是那些代碼在改變你。改變意味著生活,你正生活在其中?!?/p>

圖源:X(推特)@dan_abramov圖源: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

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2025-01-09 09:05:15

2023-10-30 07:13:56

2018-12-11 15:00:37

2023-09-08 10:21:46

TypeScript前端工具

2020-03-09 09:20:32

開源技術(shù) 軟件

2023-02-03 16:03:17

TypescriptJavaScript

2022-09-16 12:30:23

新指令項目Vue3

2016-04-18 12:02:56

前端構(gòu)建Gulp.js

2023-09-13 18:32:58

TypeScript類型API

2023-03-21 18:37:45

2020-07-23 08:24:14

CSS偽類選擇器

2023-06-13 18:24:26

TypeScriptJSDoc開發(fā)

2024-07-24 13:02:31

LodashJS分組

2022-01-18 10:27:05

開源FakerNode.js工具庫

2024-12-13 08:02:10

PythonGenerator懶加載

2023-11-09 09:02:26

TypeScriptas const

2019-05-29 10:55:01

開源Linux發(fā)行版

2012-05-24 10:09:52

ibmdw

2020-11-30 14:36:31

VSCodeissues泄露

2015-08-31 10:09:34

點贊
收藏

51CTO技術(shù)棧公眾號