服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 终于决定了!知名IDE JetBrains宣布重仓这款Linux桌面服务器 !

终于决定了!知名IDE JetBrains宣布重仓这款Linux桌面服务器 !

2023-09-07 17:07未知服务器之家 Linux

撰稿 | 言征 大名鼎鼎的JetBrains决定加码Linux版IDE了。上周的一篇官网的博文,宣布将在其基于IntelliJ的IDE系列中添加对Wayland Linux图形API的支持。 图片 此举会给Linux上使用IntelliJ的开发者带来一系列令人兴奋的好处,比如:解决由来

撰稿 | 言征

大名鼎鼎的JetBrains决定加码Linux版IDE了。上周的一篇官网的博文,宣布将在其基于IntelliJ的IDE系列中添加对Wayland Linux图形API的支持。

终于决定了!知名IDE JetBrains宣布重仓这款Linux桌面服务器 !图片

此举会给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放大引起的。模糊的文本意味着开发人员在长时间使用代码时会更加疲劳;但这并不是唯一的问题,还有其他问题,包括拖放支持、窗口切换、弹出菜单和屏幕截图。有些正在修复——比如这个拖放修复——但其他的可能永远不会修复。

终于决定了!知名IDE JetBrains宣布重仓这款Linux桌面服务器 !图片

解决方案是切换到本地Wayland支持,但这是一项主要任务。Kartashev说:“X11工具包大约有50000行Java和20000行本地代码,其中只有一小部分可以在Wayland中重复使用。”他是Wakefield项目的负责人,该项目将Wayland桌面支持引入Linux上的JDK。此基础项目的进度在此工作细分中进行跟踪。

终于决定了!知名IDE JetBrains宣布重仓这款Linux桌面服务器 !图片

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://blog.jetbrains.com/platform/2023/08/wayland-support/

https://devclass.com/2023/09/04/jetbrains-promises-wayland-support-for-its-intellij-ides-on-linux-eventually/

延伸 · 阅读

精彩推荐
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30