撰稿丨千山
很早就有人問:JetbrAIns 出了那么多集成開發(fā)環(huán)境(IDE),諸如IDEA、CLion、PyCharm、phpStorm、GoLand、WebStorm等等,為什么不能整合成一個IDE,一招通吃呢?
顯然Jetbrains有自己的考量。時至今日,Jetbrains依然堅持自己的產(chǎn)品路線:給每種語言打造一個“家”。
最近,JetBrains瞄上的是Rust,針對這門編程語言新貴,它推出了一個名為RustRover的集成開發(fā)環(huán)境。官網(wǎng)顯示,這款IDE目前還在搶先體驗計劃(Early Access Program)中,大家可以免費下載使用并提供反饋。
此前或許很難想象,專為Rust打造的IDE應該是什么樣子。如今RustRover就給出了其中一個答案。
一、插件還不夠嗎?為何押注專用IDE
以前,JetBrains只為Rust提供了 IntelliJ Rust 插件。Rust 的其他插件包括Rust-analyzer和 RLS。當然也有支持Rust的文本編輯器,但RustRover是第一個轉(zhuǎn)為Rust而設計的IDE。
IDE 通常包括代碼編輯器、調(diào)試器、編譯器和其他功能,以幫助開發(fā)人員編寫、測試和部署軟件。RustRover的開發(fā)人員倡導者Vitaly Bragilevsky介紹說,專用IDE是編程語言成熟的一個重要里程碑。
為什么要在當前這個節(jié)點選擇Rust呢?Bragilevsky在回復外媒采訪時談到:“以前,在我們看來,插件就足夠了,但后來我們觀察到Rust社區(qū)及其生態(tài)系統(tǒng)發(fā)生了一些變化。社區(qū)的狀態(tài)說服了我們,我們真的需要它(獨立的Rust IDE)。”
一個顯著趨勢是:Rust 社區(qū)正在擴大。
JetBrains 的研究發(fā)現(xiàn),接受調(diào)查的開發(fā)人員中有56%在過去六個月中開始采用 Rust。另據(jù)《SlashData 23 屆開發(fā)者國家狀態(tài)報告》,估算Rust開發(fā)者數(shù)量已增長至280萬。該報告還顯示,這一數(shù)字在過去兩年中增加了兩倍,使其成為增長最快的開發(fā)者社區(qū)之一。
考慮到當前的技術趨勢以及該語言不算很長的發(fā)展史,Rust的潛力是令人期待的。在此背景下,JetBrains決定押注Rust。
與VS Code不同,JetBrains向來提供與特定編程語言和技術配合使用的專用IDE。比如,WebStorm是大家熟悉的JAVAScript開發(fā)工具,PyCharm是支持Python/ target=_blank class=infotextkey>Python 的IDE,CLion是專為開發(fā)C及C++所設計的跨平臺IDE,GoLand是支持編寫Go的IDE,RubyMine 是為Ruby和Rails開發(fā)者準備的 IDE。
那么這款面向Rust開發(fā)者的IDE又有哪些特點呢?
二、專為Rust而設計,預覽階段與 IntelliJ IDEA Ultimate兼容
有開發(fā)者提到,針對Rust的IDE并不容易做。主要原因有二:其一,很多其他語言運行時暴露出來的問題都需要在Rust編譯時提前暴露出來,這部分檢查壓力自然而然會轉(zhuǎn)移到IDE上。其二,不同語言有其不同的語法特性。對于Rust來說就是所有權(quán)和生命周期。
就官網(wǎng)信息來看,RustRover 目前支持 Rust、Cargo、TOML、Web 和數(shù)據(jù)庫技術,以及 IntelliJ IDEA 的所有功能,包括 VCS 集成。其主要功能特點表現(xiàn)在:
在代碼編寫方面,RustRover可以通過代碼補全、代碼生成、實時分析和快速修復、實時模版等方法來提高編碼效率。
在測試、運行、調(diào)試方面,可以運行單個測試、測試模塊或項目中的所有測試。失敗測試支持跳回相關代碼,便于開發(fā)人員找到問題所在。
在Web程序開發(fā)方面,可以使用內(nèi)置的HTTP客戶端發(fā)出 HTTP 請求并分析響應。雖然Rust 是一種后端語言,但 RustRover也為前端技術和數(shù)據(jù)庫提供支持,提供與前端開發(fā)的無縫集成。
在項目管理方面,RustRover與Cargo 完全集成,并提供代碼洞察幫助編輯TOML文件。允許開發(fā)人員直接在IDE中調(diào)用Cargo命令。
在團隊協(xié)作方面,實時編碼,并支持直接從 IDE 與他人交談。使用Git和Github工作,支持探索提交和拉取請求、創(chuàng)建分支和查看代碼。
當下,RustRover 可以在windows、mac OS 和linux 上運行。因為還在Early Access Program階段,所以感興趣的開發(fā)者可以免費試用。至于什么時候會發(fā)布穩(wěn)定版本,尚無定論,不過官方回復“計劃將產(chǎn)品的公開預覽持續(xù)到最晚2024年9月”。
因為沒有公開路線圖,所以RustRover未來還會推出哪些具體功能依舊是個迷。另外,JetBrains承諾:“預覽階段,RustRover 的插件版本將與 IntelliJ IDEA Ultimate 和 CLion 兼容。”至于正式發(fā)布后就不好說了,“我們將與 CLion 團隊聯(lián)系,確定在臨近發(fā)布日期時CLion的Rust插件的可用性選項。”
三、放棄開源Rust插件,社區(qū)褒貶不一
對于這款新產(chǎn)品,除了好用與否,價格如何自然是用戶關心的焦點。對此,JetBrains給出的答案是:尚在研究中。不過肯定的是,“RustRover 將是以訂閱制出售的商業(yè)產(chǎn)品,與我們的其他 IDE 類似,具有能夠反映其實際價值的公平定價結(jié)構(gòu)”。
圖源:https://www.jetbrains.com/rust/
另外值得關注的是,隨著RustRover的出現(xiàn),現(xiàn)有開源Rust插件也會受到影響。
PhpStorm 的開發(fā)者Kirill Smelov公開發(fā)文寫道:“雖然現(xiàn)有插件仍然會在Marketplace和GitHub上免費提供,但在未來,我們將把我們的努力投入到RustRover中,它是閉源的。對于現(xiàn)有的開源插件,我們將盡最大努力保持與新版本IDE的兼容性,但我們不會修復錯誤或添加新功能。”簡言之,開源插件被棄用,不再受JetBrains 官方支持。
對于RustRover的種種動態(tài),開發(fā)者們也表現(xiàn)出了兩極分化的反應。
Reddit論壇的相關議題下,有人表達了這樣的訴求:“我真的希望他們允許RustRover作為插件安裝在IntelliJ中。我既買不起幾個IDE許可證,也不想維護好幾個IDE。”
圖源:Reddit
在不滿者的聲音中,也有人表示:不僅僅是錢的問題。
“每種編程語言都有1個IDE,這非常丑陋。甚至蘋果也沒有這樣做。”“沒有人說它應該是免費的。我要說的是,我不想要另一個IDE,只需在我現(xiàn)有的IDE中給我插件即可。從消費者的角度來看,每種語言都有一個IDE的方法是可怕的。”
此外,也有人顯露出隱隱的擔憂。“鏈接頁面上的常見Q&A說,它將在預覽階段與IDEA Ultimate兼容。沒有明確說發(fā)布后。”
不過,對RustRover的出現(xiàn)表示支持和歡迎的開發(fā)者也不在少數(shù)。理由則主要集中于以下幾點:
1、不必將所有內(nèi)容都塞進 IntelliJ。更喜歡針對特定語言量身定制的單獨 IDE。
2、不同語言的生態(tài)系統(tǒng)差異很大。IDE 不僅僅是一個文本編輯器。
3、對于專業(yè)人士來說收費非常合理。如果你不是專業(yè)的軟件開發(fā)人員,那么有適合業(yè)余愛好者的工具。
4、樂意為JetBrains花錢。本身產(chǎn)品質(zhì)量和售后服務都非常好,可以節(jié)省很多時間,性價比相當高。
四、是VS Code,還是JetBrains
爭議仍在繼續(xù)中。或許只有到RustRover正式發(fā)布后,JetBrains這次的決策是否成功,才能顯露端倪。但在開源又免費的VS Code的沖擊下,JetBrains仍能存活至今,顯然不僅僅是運氣。
在多數(shù)人的普遍印象中,VS Code 最大的特點就是完全免費,而且可以在線安裝各類開發(fā)工具,調(diào)試插件等等。任何編程語言在 VS Code 中都可以簡單且快速地啟動和運行,所以大家更傾向于稱它為“編輯器”。
相對來說,JetBrains 在功能上更標準更專業(yè),但對用戶,尤其新手來說似乎包含了很多不合理的初始設置。在兩個為不同使用場景設計的IDE之間做切換,付出一些學習的時間成本不可避免。
VS Code相當輕巧,具有高度可配置性和可擴展性,但是沒有很多非常深入的功能,且部分依賴第三方擴展來提供更深入的功能;JetBrains為一種特定語言顯式構(gòu)建的IDE上工作,團隊投入了大量資源來支持一種語言及其所有相關的工作流程,擴展性卻較低,受支持的語言本身也具有很深的可配置性。
在新一代程序員中,VSCode受到了極大的歡迎。盡管如此,JetBrains還是有堅定的擁躉。去年,Blankly的首席工程師在用了五年VS Code后,轉(zhuǎn)而切換到JetBrains 生態(tài)系統(tǒng),甚至專門為此撰文解釋了理由。
首先,在代碼檢查和代碼重構(gòu)上,JetBrains 具備優(yōu)秀的Linting工具和無副作用的重構(gòu)能力。“如果代碼分解和重構(gòu)對你和你的工作流程很重要,那么,JetBrains是更好的選擇。”
再者,在調(diào)試上,JetBrains 比 VS Code 略勝一籌。“因為JetBrains 可以直接在變量聲明的邊上直接顯示變量值,這使得跟蹤大量變量的時候會比較容易管理。”
然后,在 Git 集成上,各有千秋,只是個人喜好不同。“例如,在解決合并沖突的時候,相對于 VS Code 將沖突文件堆在一個文件中顯示的方式,我更喜歡 JetBrains 將沖突文件分開顯示的方式。”
最后,在團隊協(xié)作方面,所有 JetBrains IDE 都提供了大量選項來與他人共享代碼并實時協(xié)作。Code With Me功能允許你直接在 IDE 中查看其他人的項目,并使用他們的開發(fā)環(huán)境,
總而言之,JetBrains固然收費,但其功能性的確有其特有的價值。以IntelliJ IDEA Ultimate為例,按照去年10月開始生效的新政策,訂閱價為首年169美元,有需要的時候也可以考慮試一試。
參考鏈接:
https://www.jetbrains.com/rust/
https://thenewstack.io/dedicated-ide-for-rust-released-by-jetbrains/
https://www.reddit.com/r/programming/comments/16htf7m/jetbrains_rustrover/
https://blankly.finance/vscode-vs-jetbrains/