大名鼎鼎的JetBrains決定加碼Linux版IDE了。上周的一篇官網(wǎng)的博文,宣布將在其基于IntelliJ的IDE系列中添加對Wayland Linux圖形API的支持。
此舉會給Linux上使用IntelliJ的開發(fā)者帶來一系列令人興奮的好處,比如:解決由來已久的局部縮放問題,以及在使用Windows Subsystem for Linux(WSLg)時提升桌面集成(該系統(tǒng)在引擎后臺運(yùn)行Wayland服務(wù)器)。
“雖然Wayland的支持還遠(yuǎn)未完成,但現(xiàn)有的功能允許我們在Wayland上運(yùn)行一些Java Swing和AWT應(yīng)用程序?!?/p>
JetBrains忍痛擁抱Wayland負(fù)責(zé)人直言:棘手!
大多數(shù)JetBrains IDE,都源自一個名為IntelliJ IDEA的通用庫,該庫是用Java構(gòu)建的(當(dāng)然它支持多種編程語言)。作為桌面應(yīng)用程序,這些IDE使用SwingGUI框架,該框架在Linux上調(diào)用X11 API。
Wayland是一款嶄新的顯示服務(wù)器協(xié)議,旨在取代X服務(wù)器。目前Wayland的采用情況參差不齊,現(xiàn)在默認(rèn)用于Ubuntu、Red Hat Enterprise Linux、WSLg和許多其他發(fā)行版。
在Wayland上有一個名為XWayland的X11兼容性中間層實(shí)現(xiàn),博文作者Kartashev稱:“這就是所有Java應(yīng)用程序,包括所有JetBrains的基于IntelliJ的IDE,顯示UI并獲得鼠標(biāo)和鍵盤輸入的方式。這種方案在大多數(shù)情況下都能很好地工作?!?/p>
XWayland上運(yùn)行的問題不少,比如高分辨率屏幕上的模糊文本,這是由應(yīng)用程序渲染到較低分辨率,然后被Wayland放大引起的。模糊的文本意味著開發(fā)人員在長時間使用代碼時會更加疲勞;但這并不是唯一的問題,還有其他問題,包括拖放支持、窗口切換、彈出菜單和屏幕截圖。有些正在修復(fù)——比如這個拖放修復(fù)——但其他的可能永遠(yuǎn)不會修復(fù)。
解決方案是切換到本地Wayland支持,但這是一項主要任務(wù)。Kartashev說:“X11工具包大約有50000行Java和20000行本地代碼,其中只有一小部分可以在Wayland中重復(fù)使用?!彼荳akefield項目的負(fù)責(zé)人,該項目將Wayland桌面支持引入Linux上的JDK。此基礎(chǔ)項目的進(jìn)度在此工作細(xì)分中進(jìn)行跟蹤。
Wakefield項目工作分解的一部分,該項目將Wayland支持引入Java開發(fā)工具包(JDK)
從這個細(xì)分來看,很明顯,Wayland在一段時間內(nèi)不會提供全面的支持。Kartashev說,雖然很多工作已經(jīng)完成,包括HiDPI和多監(jiān)視器支持(這將修復(fù)模糊的文本),但還有很多工作要做,包括加速渲染、剪貼板和拖放支持,以及使用鍵盤快捷鍵在窗口之間切換,“這是一項相當(dāng)棘手的工作,”他說,因?yàn)閃ayland的安全模型可以驗(yàn)證輸入是否來自用戶。
Wayland帶來的Linux桌面新范式
Wayland是一種現(xiàn)代顯示服務(wù)器協(xié)議,旨在通過為圖形環(huán)境提供更高效、安全和適應(yīng)性更強(qiáng)的架構(gòu)來取代X Window系統(tǒng)。它是Debian 10及更高版本、Fedora 34或更高版本、Ubuntu 18.04或更高版本以及其他發(fā)行版(例如 Arch Linux)中的默認(rèn)窗口系統(tǒng)。
盡管在提供 Wayland 合成器的桌面環(huán)境(例如GNOME)上,GNOME文本編輯器和地圖、文件和日歷等官方應(yīng)用程序都是Wayland原生應(yīng)用程序。但絕大多數(shù)X11應(yīng)用程序仍然是未受影響的、原生的 X11 應(yīng)用程序。但這邊不影響它代表著Linux桌面的未來,因?yàn)樗谠S多重要領(lǐng)域帶來了新的范式,例如:
(1)Wayland不提供任何繪圖基元,它只便于在屏幕上顯示應(yīng)用程序必須提前準(zhǔn)備的像素。它也不會為你裝飾你的窗口,盡管有些實(shí)現(xiàn)旨在通過自定義協(xié)議來幫助你做到這一點(diǎn)。
(2)它將應(yīng)用程序彼此隔離,也將應(yīng)用程序與桌面本身隔離。沒有在屏幕上以特定坐標(biāo)定位窗口的內(nèi)置功能,也沒有查詢所述位置或其他窗口像素的方法。
(3)對于所有表面上由人發(fā)起的操作,如移動窗口或?qū)⑽谋緩?fù)制到剪貼板,Wayland的協(xié)議要求應(yīng)用程序證明其確實(shí)代表用戶行事,通常是通過提供指向最近從Wayland收到的事件的指針,以便服務(wù)器可以獨(dú)立于客戶端進(jìn)行驗(yàn)證。
(4)Wayland協(xié)議是事務(wù)性的,因?yàn)樗鼈冊试S逐漸建立新的狀態(tài),然后將結(jié)果作為一個整體提交,確保用戶永遠(yuǎn)不會看到處于不一致狀態(tài)的UI。
(5)Wayland采用模塊化設(shè)計,不同的服務(wù)器可以支持各種協(xié)議,擴(kuò)展Wayland的功能以滿足不同的用例。但是,需要注意的是,并非所有服務(wù)器都支持同一組協(xié)議。例如,最現(xiàn)代的wp_fractional_scale_manager_v1協(xié)議只有五分之一的流行服務(wù)器支持(截至2023年8月)
寫在最后:Linux桌面版時代來了
JetBrains作為無數(shù)開發(fā)者青睞的IDE廠商,這一對Linux桌面版的動作,可以被視為“Linux上運(yùn)行IDE的使用量在增長”的一個間接證據(jù)。
Windows和Mac是最受歡迎的桌面平臺,但Linux作為服務(wù)器應(yīng)用程序的系統(tǒng)依舊占據(jù)主導(dǎo)地位,這意味著開發(fā)人員越來越熟悉開源操作系統(tǒng)。最新的StackOverflow調(diào)查顯示,Ubuntu排名第三,僅次于Windows和MacOS,超過25%的開發(fā)人員使用它,WSL排名第五,超過15%的人使用它。
而單論IDE面向的用戶來說,Linux一點(diǎn)也不小眾,IDE廠商不持續(xù)發(fā)力研發(fā)迭代Linux版不僅僅是散失四分之一的用戶,而是丟失了一整個生態(tài)。同時,Linux版IDE的需求是切切實(shí)實(shí)存在的,開發(fā)IDE的商業(yè)公司都不會忽略這個市場。
而此次JetBrains之所以優(yōu)先選擇Java擁抱Wayland,這與JetBrains全家桶大量使用Java,遷移難度相對較低的事實(shí)不無關(guān)系。Linux桌面的未來既然是Wayland,那么Jetbrains就沒有理由不擁抱Wayland。
-
Linux
+關(guān)注
關(guān)注
87文章
11319瀏覽量
209828 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9231瀏覽量
85625 -
JAVA
+關(guān)注
關(guān)注
19文章
2971瀏覽量
104853 -
API
+關(guān)注
關(guān)注
2文章
1504瀏覽量
62162
原文標(biāo)題:終于決定了!知名IDE JetBrains宣布重倉這款Linux桌面服務(wù)器 !
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論