JetBrains宣布自家以IntelliJ為基礎,由Java編寫的IDE,將會在Linux中支援Wayland顯示協定,以提供更好的效能以及安全性,而這項工作建立在JetBrains與甲骨文桌面團隊,共同開發的Wayland工具包之上。官方提到,雖然目前Java支援Wayland的工作尚未全部完成,但是部分功能成形,已可在Wayland執行一些Java Swing和AWT應用程式。

Wayland出現的目的便是要取代X Window系統(X11),X11是一個老舊的協定,雖然功能強大,但是其複雜性和一些固有的問題,驅使開發者尋求替代方案。比起X11,Wayland帶來諸多好處,像是Wayland不提供任何繪圖基本元素(Primitive),並將許多工作負載轉移到應用程式中,應用程式會將畫面直接渲染到自己的記憶體快取,並且由Wayland顯示伺服器複製到螢幕上,這種形式更加高效方便,降低顯示延遲。

Wayland也讓應用程式可以增量更新狀態,並且將更新結果作為整體一起提交,避免呈現狀態不一致的UI,而且Wayland採用模組化設計,不同的伺服器可以支援各種協定,因此能夠擴展Wayland功能滿足各式用例。

在未完成支援前,現在所有Java應用程式包括IntelliJ IDE,皆採用一種稱為XWayland的過渡方案,這是在Wayland會話之上執行X11實作以顯示用戶介面,並且擷取滑鼠和鍵盤輸入的方法。官方提到,雖然此方法在大多數的情況下都運作良好,但是在拖放、視窗切換、顯示解析度和彈出選單等方面仍存在問題,且部分問題無法在XWayland框架內解決,同時也沒有太多開發者願意投入資源到老舊的X11技術上。

考量這些問題,JetBrains現在與甲骨文桌面團隊合作,共同開發Wayland工具包,讓Java應用程式原生支援Wayland,不過這卻是一項大工程,開發團隊還需要克服許多問題,像是重寫有關處理圖形、滑鼠游標、按鍵轉換、啟動畫面顯示和輸入法等各種GUI相關的程式碼。之前的X11工具包僅有少部分程式碼可重複使用,絕大部分的程式碼需要重寫。由於Wayland API的行為與Java API不同,因此也需要重新編寫轉換。

現在JetBrains正致力讓IntelliJ IDE完全支援Wayland,Wayland帶來的效能和安全性,讓IntelliJ IDE能夠穩定執行,並且提升回應性。目前Wayland的軟體渲染效能已經與X11工具包相當,剩下的工作就是完成Wayland工具包實作,使得IntelliJ IDE可以在Wayland上原生運作。

熱門新聞

Advertisement