JetBrains又出神器啦!Fleet,體驗飛一般的感覺

flydean發表於2021-12-21

簡介

java開發的同學可能對於JetBrains這家公司並不陌生,因為JetBrains號稱擁有世界上最好的JAVA開發工具IDEA。確實IDEA非常好用,它滿足了一個java開發者所有的夢想。

當然JetBrains還提供了其他語言的開發神器,PyCharm,PhpStrom,WebStorm等等。只要跟開發工作有關的,都能在JetBrains的全家桶中找到。

這麼好用的神器自然是價格不菲,但是JetBrains特意為學生黨推出了免費的licence版本,非常的人性化。

現在JetBrains又準備推出一款編輯器Fleet,這款編輯器到底是做什麼的呢?它有什麼優點呢?一起來看看吧。

從eclipse到Fleet

還記得最開始接觸java的時候,還是從JAVA的命令列開始的。編寫完程式碼之後,首先用javac命令將程式碼編譯成位元組碼,然後再使用java命令去執行。雖然java是世界上第二好用的語言,但是這種手動編譯執行的方式實在讓人頭痛。

後來有一天,聽同學介紹,發現了eclipse這個工具。當時實在是驚為天人!它是如此的強大,顛覆了我對IDE的認知。

當然,我始終認為IDE做的最好的是微軟出的Visual Studio,簡直是包羅永珍,可惜那時候Visual Studio只支援微軟自己的C#和.net平臺,無奈只好放棄。

eclipse又好用又免費,加上品類繁多的各種外掛,DIY一個符合自己口味的IDE不在話下。

所以那時候在開發之餘的另外一個愛好就是反覆安裝eclipse的各種外掛,體驗不一樣的樂趣。

後來在工作中,一開始也是使用eclipse,不過eclipse作為一個純開源專案,也暴露出來了它的短板,就是第三方外掛比較混亂,在使用中往往有這樣那樣的bug。

然後有同事給安利了IDEA,說實話最開始的IDEA是很醜的,並且IDEA對專案的組織方式更加鬆散,更像是對一個個檔案的管理而不是專案,所以我仍然堅持使用eclipse。

那麼,是什麼讓我產生了從eclipse到IDEA的轉換呢?

記得,那是一個夏天,天還還很藍。我像往常一樣點進eclipse的官網,看一下是否有最新的版本可以升級。

本來沒報什麼希望,結果還真的有,這個版本就是eclipse che,居然是一個web版的開發工具,號稱是下一代eclipse。

難道eclipse以後就只能在web端使用了嗎?瀏覽器的體驗有沒有本地開發工具這樣絲滑呢?

雖然我很擔心,但是抱著試一試的態度,還是按照官方的文件,嘗試安裝eclipse che。

安裝過程很痛苦,使用過程更加痛苦。不知道是我機子系統的問題還是它的文件沒有寫明白,我硬是沒有能夠用eclipse che來開發一個專案。

eclipse che本意是將開發環境搬到雲上,奈何那時候的技術和思想有點太超前了,於是成功把我勸退了。

接下來就從eclipse切換到IDEA,進行了多年的開發。後面再也沒有去關注過eclipse和eclipse che的發展。

在寫這篇文章的時候,我特意去看了下,原來Eclipse本地的IDE還在,它的最新版本是2021‑12,eclipse che也發展到了7.0版本,並且開始支援Kubernetes-Native。

但是,一切都回不到過去了。

既然eclipse已經過去了,我們再聊一下IDEA。

說實話,作為一款付費的軟體,IDEA在使用上的確比eclipse強。最好用的java開發IDE不是白吹的。

當然,為了支援IDEA這麼強大的特性,就需要佔用大量的系統記憶體。IDEA動不動就1G-2G完全不成問題。

那麼有沒有輕量級的開發工具呢?當然有。

所謂開發工具,就是支援程式碼高亮,編譯程式碼這些功能的工具,記事本之類的這裡就不提了。

那時候有兩個工具可以使用,一個是atom,一個是微軟的vs code。

兩者都是輕量級的開發工具,都支援外掛的擴充套件。我也都用了,最後還是選擇了微軟的vs code。雖然沒有具體進行比較,但是感覺微軟的更加穩定,功能性方面更好。

既然已經有了微軟vscode這樣的強大又簡潔的輕量級開發工具,那麼Fleet憑什麼認為大家會選擇它呢?

這是一個好問題。我們細細道來。

Fleet的特性

Fleet最大的優勢就是背靠jetbrains這顆大樹,有了IDEA等一眾開發工具的加持,大家很難不相信Fleet的品質。

換用jetbrains的話來說,他們花了20年的知識和經驗來編寫開發工具,並且Fleet底層使用的是IntelliJ的程式碼處理引擎,所以Fleet是足夠可信的。

當然,有了保證還是不夠的,我們需要知道Fleet到底有那些特性。

先看下Fleet的主介面。非常的簡潔漂亮。自帶了git和history。

Fleet支援自動完成,重構,跳轉,debug等所有IDE應該支援的特性。

目前Fleet支援的語言有JAVA,kotlin,python,go,javaScript,Rust,TypeScript和JSON。其他的語言如PHP,C++,C#,HTML正在開發中。

看到這裡,我們可能還有疑問,這些特性好像其他的輕量級IDE都有呀,那麼Fleet的特色在哪裡呢?

分散式!沒錯,是分散式!

Fleet的架構是分散式的,Fleet 並不關心您的專案是在本地、在容器中還是在千里之外的另一個國家。 通過提供虛擬化檔案系統,Fleet 可以同樣出色地處理本地和遠端專案。

Fleet有三種工作模式,分別是Editor mode,Smart mode,Distributed mode.

對於editor mode來說,一切都是本地的,所以它提供的功能和特性比較有限:

在Smart mode中,可以提供一些高階的特性,比如專案和上下文感知程式碼完成、定義和用法的導航、動態程式碼質量檢查和快速修復等。這些特性不是一個輕量級的Fleet能夠完成的,所以需要額外的Language Servers和Code engine來處理,如下圖所示:

什麼叫做Distributed mode呢?就是把這些Language Servers和Code engine統一放到雲上或者docker容器中,本地的Fleet只作為客戶端和遠端伺服器進行連線即可:

這樣的分散式也同時可以實現多使用者協同合作的功能。

個人感覺,Fleet可能是eclipse che的高階版本。敬請期待。

JetBrains Space

另外,jetBrains還把Fleet和JetBrains Space進行結合。

你可以把JetBrains Space看做是一個遠端的工作環境,可以免去了本地搭建工作環境的煩惱。

總結

Fleet這麼好用,那麼怎麼下載呢?很抱歉,Fleet暫時無法下載,你必須到Fleet的官網上去申請,聽說名額有限,趕緊行動起來吧。

相關文章