大家好!今天,我們眼前正在發生一件對整個網頁開發來說真正具有重大意義的事件。就在幾天前,微軟的一個 TypeScript 語言計畫被公開。這真的很重要!
首先,底層的原始 TypeScript 編譯器在新版本 7中從 JavaScript 轉移到 Go。也就是說,會有條件地出現 TypeScript 6(JS)和 TypeScript 7(Go)。這樣做主要是因為在非常大的專案中使用時會出現擴展問題,當然也因為速度的問題。
如今,新專案在一些測試中表現出了10倍的成長,這讓它非常有前景。當然,最重要的是程式碼編輯器。如果我們談論的是速度,那麼如果你沒有一些英特爾酷睿 i9-13900K 處理器(原則上一切都無關緊要),但是速度較慢的處理器或筆記型電腦,那麼你都會遇到這樣的事實:你的 VS Code 專案啟動起來確實需要很長時間。也就是說,如果它是一個文件 - 還可以,但是如果我們談論的是一個有 100 個頁面和 1000 個文件的現代 Next.js 應用程式,那麼筆記型電腦就像一台舊洗衣機一樣出現故障,直到它啟動為止。
因此,版本 7 最大限度地減少了所有這些麻煩,並且使用新版本的 VS Code 將允許您更快地啟動專案。
當然,在 Web 開發的背景下談論 Go 是不尋常的,因為它通常與後端相關,但現在仍然值得。為什麼您選擇 Go 而不是其他語言,例如 Rust 或其他語言?
以下是選擇 Go 的簡單原因:
「迄今為止最重要的方面是我們需要盡可能保持新程式碼庫的兼容性,無論是在語義方面還是在程式碼結構方面......Idiomatic Go 與 TypeScript 程式碼庫現有的編碼模式非常相似,這使得移植工作更加容易處理。”
“我們還進行了大量的圖形處理,特別是涉及多態節點的向上和向下遍歷樹。Go 在使這變得符合人體工學方面做得非常出色,特別是在需要類似於 JavaScript 版本的程式碼的情況下。”
這些都是直接引用自這裡,如果你想知道為什麼是 Go,你可以閱讀全文。
新版本總是好的,但也存在一些您應該了解的陷阱,以免在專案中犯錯:
適度的程式碼庫- 該專案實際上剛剛向公眾展示,因此就與舊版本 5.8、5... 的程式碼庫奇偶校驗而言,顯然是無法進行比較的。也就是說,如果你想了解有關版本 7 的新知識,如果你遇到了某種 Bug,或者類似的東西,那麼 ChatGPT 將不會回答你,你也不會在 StackOverflow 上找到資訊。您將被視為發現者,您的職責是在網路上記錄您發現的內容。這當然很酷,但是當涉及預算較大的專案時,值得理解的是,這些仍然存在風險,因為開發人員可能實際上要坐下來幾個小時才能推斷出類型。但是,很明顯,這是為未來儲備的,就像 2021 年的 Next.js 一樣。
Go——是的,這既可以算是優點,也可以算是缺點。試想一下,有多少程式碼、模組和其他東西是專門為 JavaScript 製作的,而現在編譯器底層的語言正在改變。因此,Go 的問題就轉移到了 Web 開發上。許多 Web 開發人員甚至不知道(我希望不知道)它是一種什麼樣的程式語言,但它的實作不可避免地會出現不一致和依賴性。
從我的角度來看,這確實是一件新奇而酷的事情,因為程式的速度對我來說一直是最重要的。我喜歡這樣一個事實:Web 開發不僅僅關注現在無處不在的 JavaScript,還關注可以帶來新東西的其他語言。很明顯,一切都圍繞著 JS、HTML,因為它是一個標準,但是,當我們談論可變性時,每個人都會記得後端,那裡是一切所在,但現在有些事情需要在客戶端上討論。因此,即使新版本的 TypeScript 有種種缺點,我還是認為應該下載它、嘗試它、開發它。想像一下,歷史正在我們眼前發生,數百萬的開發人員將開發這個,Go 和特性中會出現一堆新的錯誤、典型的不一致和其他類似的事情。但它很酷!
💬您對此有什麼看法?讀起來會很有趣!
非常感謝您閱讀這篇文章!
原文出處:https://dev.to/anthonymax/typescript-7-10x-speedup-and-the-go-language-1mkf