哪個是用于開發 Java 應用程序的優秀操作系統?
Java 在 Windows、macOS 和 Linux 發行版上運行良好。
我在 Chronicle Software 工作,我們的大部分軟件都是開源 Java 庫,所以我們不——或者更確切地說,我們不能——要求我們的客戶在特定的操作系統上運行。您可能會驚訝地聽到我們也沒有規定我們的員工應該使用哪種操作系統。我們讓他們使用摩擦最小的那個,他們最有效率的那個。
當涉及到開發 Java 應用程序的設置時,最重要的選擇是您選擇的集成開發環境 (IDE),而不是操作系統的選擇。選擇一個好的 IDE 可以提高您的工作效率,但我們不會強迫公司中的每個人都使用相同的 IDE。也就是說,我們在過去 8 年中聘請的每一位 Java 開發人員都選擇 IntelliJ 作為他們首選的 IDE:JetBrains 一定做對了。
在我使用 IntelliJ 之前,我曾經使用過 Eclipse。大約 15 年前,當我加入 UBS Investment Bank 時,我被迫使用 IntelliJ。起初,我不太喜歡 IntelliJ:一切都不像我預期的那樣,感覺就像我的手被砍掉了,因為一切似乎都需要十倍的時間。隨著時間的推移,我越來越喜歡它,并欣賞它出色的代碼重構。
在考慮在哪個操作系統上進行開發時,值得考慮目標架構的操作系統。在我的公司,我們開發低延遲事件流消息傳遞軟件。該軟件被世界上許多投資銀行和加密貨幣交易所使用。通常,投資銀行在 Windows 上開發并部署到 Linux。另一方面,加密公司通常采用 macOS 進行開發。但幾乎每個組織都使用 Linux 進行生產。
雖然您開發的操作系統和生產操作系統不必相同,但在選擇開發操作系統時最好考慮您的生產操作系統。
FreeBSD 支持 macOS。這不是 Linux,而是 Unix,因此它們具有合理程度的相似性,尤其是在命令、shell 等方面。但是,在幕后存在相當程度的分歧:macOS 不提供相同的精細 -糧食控制。如果您打算進行低延遲開發,這可能會對您產生負面影響。例如,您想控制您的線程固定到哪些內核。對于大多數 Java 開發人員來說,這種缺乏細粒度控制的問題通常不是問題,但如果您確實擔心,您應該選擇 Linux。這里的重點是,如果您將服務器端應用程序部署到 Linux,選擇 Linux 或 macOS 作為開發環境會很有意義。
過去,我使用過 Ubuntu,但其 GUI 并沒有達到 macOS 提供的集成度和流暢度。macOS 以更酷、更漂亮和更好而聞名,但它確實帶來了真正的好處,可以提高你的工作效率。
在我的公司,大約 50% 的開發人員使用 macOS,50% 使用 Linux 和/或 Windows。最近還有更多的應用程序可用于 Linux,并且基于 Web 的應用程序(例如 Google 文檔)在此環境中運行良好,但值得檢查您打算使用的所有應用程序是否都可以在 Linux 上運行?;蛘撸梢允褂锰摂M化,或者,如果您不必同時運行 Windows 和 Linux 應用程序,您可以雙啟動。
Mac 并不總是完美的。我的一個同事有一臺 2019 年的 Intel 16" MacBook。他經常必須在冰袋上運行它。否則,它會過熱。許多非 Mac 超極本也存在這個問題。將熱的 Intel 芯片放入那些薄的一體式機身中shell 是一個錯誤,但蘋果現在已經用他們的新硅 Mac 解決了這個問題。最近,英特爾在他們的第 12 代架構中引入的新混合核心模型中改善了他們的散熱問題。AMD 的散熱效率比英特爾更高,但英特爾和英特爾都沒有。在每瓦性能方面,AMD 目前可以與 ARM 或 Apple 競爭。
無論開發環境如何,歸根結底,軟件都需要在給定的目標操作系統上運行。開源 Java 庫可以幫助抽象平臺差異,從而在不同開發和目標操作系統之間為低級功能提供大致無縫的開發體驗。(macOS 和 Linux 不同的一些示例包括文件鎖定和線程親和性,這些庫可以幫助在兩個平臺之間規范化這些功能。)最終,為了提取最佳性能,需要仔細了解每個目標平臺的細微差別在部署、配置和調整低延遲軟件堆棧時,在開發階段對目標操作系統有所了解和熟悉可能是有益的。
結論
首先,對于開發,我建議使用您最熟悉的操作系統。如果您對任何操作系統都沒有太多經驗,我建議您使用 Windows 或 macOS。
- 如果預算有限,Linux 是一個更便宜的選擇,但要小心檢查是否可以在 Linux 上運行所需的所有代碼。除非您想忍受雙啟動或虛擬機,否則您可能不得不花大價錢購買第二臺(或舊的)機器來運行 Windows。如果您選擇雙啟動,那么對于桌面,我建議您使用兩個啟動盤(每個操作系統一個)進行設置。這樣一來,如果出現問題,您可以更換一個。
- 另一方面,如果您正在編寫低延遲代碼,并且您必須對您的操作系統子系統有良好的控制水平,那么請選擇 Linux。
- 或者,我會選擇 macOS。
關鍵是,選擇 Mac、Windows 或 Linux 有點像政治或宗教:人們強烈認為他們的選擇是正確的,并且經常對不同的觀點視而不見(我覺得這很有趣)。