終於決定了!知名IDE JetBrains宣布重倉這款Linux桌面伺服器 !

2023-09-07     51CTO

原標題:終於決定了!知名IDE JetBrains宣布重倉這款Linux桌面伺服器 !

大名鼎鼎的JetBrains決定加碼Linux版IDE了。上周的一篇官網的博文,宣布將在其基於IntelliJ的IDE系列中添加對Wayland Linux圖形API的支持。

此舉會給Linux上使用IntelliJ的開發者帶來一系列令人興奮的好處,比如:解決由來已久的局部縮放問題,以及在使用Windows Subsystem for Linux(WSLg)時提升桌面集成(該系統在引擎後台運行Wayland伺服器)。

「雖然Wayland的支持還遠未完成,但現有的功能允許我們在Wayland上運行一些Java Swing和AWT應用程式。」

1、JetBrains忍痛擁抱Wayland負責人直言:棘手!

大多數JetBrains IDE,都源自一個名為IntelliJ IDEA的通用庫,該庫是用Java構建的(當然它支持多種程式語言)。作為桌面應用程式,這些IDE使用SwingGUI框架,該框架在Linux上調用X11 API。

Wayland是一款嶄新的顯示伺服器協議,旨在取代X伺服器。目前Wayland的採用情況參差不齊,現在默認用於Ubuntu、Red Hat Enterprise Linux、WSLg和許多其他發行版。

在Wayland上有一個名為XWayland的X11兼容性中間層實現,博文作者Kartashev稱:「這就是所有Java應用程式,包括所有JetBrains的基於IntelliJ的IDE,顯示UI並獲得滑鼠和鍵盤輸入的方式。這種方案在大多數情況下都能很好地工作。」

XWayland上運行的問題不少,比如高解析度螢幕上的模糊文本,這是由應用程式渲染到較低解析度,然後被Wayland放大引起的。模糊的文本意味著開發人員在長時間使用代碼時會更加疲勞;但這並不是唯一的問題,還有其他問題,包括拖放支持、窗口切換、彈出菜單和螢幕截圖。有些正在修復——比如這個拖放修復——但其他的可能永遠不會修復。

解決方案是切換到本地Wayland支持,但這是一項主要任務。Kartashev說:「X11工具包大約有50000行Java和20000行本地代碼,其中只有一小部分可以在Wayland中重複使用。」他是Wakefield項目的負責人,該項目將Wayland桌面支持引入Linux上的JDK。此基礎項目的進度在此工作細分中進行跟蹤。

Wakefield項目工作分解的一部分,該項目將Wayland支持引入Java開發工具包(JDK)

從這個細分來看,很明顯,Wayland在一段時間內不會提供全面的支持。Kartashev說,雖然很多工作已經完成,包括HiDPI和多監視器支持(這將修復模糊的文本),但還有很多工作要做,包括加速渲染、剪貼板和拖放支持,以及使用鍵盤快捷鍵在窗口之間切換,「這是一項相當棘手的工作,」他說,因為Wayland的安全模型可以驗證輸入是否來自用戶。

2、Wayland帶來的Linux桌面新範式

Wayland是一種現代顯示伺服器協議,旨在通過為圖形環境提供更高效、安全和適應性更強的架構來取代X Window系統。它是Debian 10及更高版本、Fedora 34或更高版本、Ubuntu 18.04或更高版本以及其他發行版(例如 Arch Linux)中的默認窗口系統。

儘管在提供 Wayland 合成器的桌面環境(例如GNOME)上,GNOME文本編輯器和地圖、文件和日曆等官方應用程式都是Wayland原生應用程式。但絕大多數X11應用程式仍然是未受影響的、原生的 X11 應用程式。但這邊不影響它代表著Linux桌面的未來,因為它在許多重要領域帶來了新的範式,例如:

(1)Wayland不提供任何繪圖基元,它只便於在螢幕上顯示應用程式必須提前準備的像素。它也不會為你裝飾你的窗口,儘管有些實現旨在通過自定義協議來幫助你做到這一點。

(2)它將應用程式彼此隔離,也將應用程式與桌面本身隔離。沒有在螢幕上以特定坐標定位窗口的內置功能,也沒有查詢所述位置或其他窗口像素的方法。

(3)對於所有表面上由人發起的操作,如移動窗口或將文本複製到剪貼板,Wayland的協議要求應用程式證明其確實代表用戶行事,通常是通過提供指向最近從Wayland收到的事件的指針,以便伺服器可以獨立於客戶端進行驗證。

(4)Wayland協議是事務性的,因為它們允許逐漸建立新的狀態,然後將結果作為一個整體提交,確保用戶永遠不會看到處於不一致狀態的UI。

(5)Wayland採用模塊化設計,不同的伺服器可以支持各種協議,擴展Wayland的功能以滿足不同的用例。但是,需要注意的是,並非所有伺服器都支持同一組協議。例如,最現代的wp_fractional_scale_manager_v1協議只有五分之一的流行伺服器支持(截至2023年8月)

3、寫在最後:Linux桌面版時代來了

JetBrains作為無數開發者青睞的IDE廠商,這一對Linux桌面版的動作,可以被視為「Linux上運行IDE的使用量在增長」的一個間接證據。

Windows和Mac是最受歡迎的桌面平台,但Linux作為伺服器應用程式的系統依舊占據主導地位,這意味著開發人員越來越熟悉開源作業系統。最新的StackOverflow調查顯示,Ubuntu排名第三,僅次於Windows和MacOS,超過25%的開發人員使用它,WSL排名第五,超過15%的人使用它。

而單論IDE面向的用戶來說,Linux一點也不小眾,IDE廠商不持續發力研發疊代Linux版不僅僅是散失四分之一的用戶,而是丟失了一整個生態。同時,Linux版IDE的需求是切切實實存在的,開發IDE的商業公司都不會忽略這個市場。

而此次JetBrains之所以優先選擇Java擁抱Wayland,這與JetBrains全家桶大量使用Java,遷移難度相對較低的事實不無關係。Linux桌面的未來既然是Wayland,那麼Jetbrains就沒有理由不擁抱Wayland。

文章來源: https://twgreatdaily.com/6d471746eba9bf634a4a2d82d116b09f.html