HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Linux 版微信正式官宣,居然选了这个 90 年代的老牌小众框架

  • 2024-11-12
    北京
  • 本文字数:3925 字

    阅读完需:约 13 分钟

大小:1.74M时长:10:06
Linux版微信正式官宣,居然选了这个90年代的老牌小众框架

长期以来,Linux 下的微信体验一直是用户讨论的焦点,如今大家期待的原生 Linux 版本终于来了。

 

前几天,微信上线了 Linux 客户端的下载页,提供了适用于 x86、Arm 和龙芯 LoongArch 三种架构的测试版应用下载。其中,x86 和 Arm 平台支持 deb、rpm 和 AppImage 三种包格式,而 LoongArch 平台目前仅提供 deb 版本。

 

选用 Qt 进行全面重构

 

根据公开资料,微信 PC 4.0 版已开始公测,不但 Windows、macOS 系统下保持同步,还首次同步上架了统信 UOS、deepin 深度系统、麒麟系统的应用商店,无论界面还是功能都保持一模一样。可支持消息撤回、支持浏览、刷新朋友圈,通讯录界面改版,支持深色与浅色模式切换等功能。官方表示,微信 Linux 4.0 公测版全面重构,不仅架构上实现了突破,更在功能上实现了不同平台的全面对齐。

 

这是 Linux 系统在国内普及的重要一步。如今,国内两大主流 IM 工具都实现了跨平台,这无疑会让腾讯在 Linux 用户群体中赢得一些认可。

 

不少人对新版本微信实现跨平台的方式颇感兴趣。有知乎网友通过分析微信 4.0 的安装目录文件,发现其中的 Weixin.dll 文件包含了 Qt 库,由此推测微信或许是通过 Qt 来实现跨平台支持的。另外,客户端中的“关于”信息,也显示了微信 4.0 是基于 Qt 开发。





图片来源:https://www.zhihu.com/question/2731975763

 

Qt 和 MFC 一样古老,同属于上世纪使用 C++ 开发 Windows 应用程序的重要框架。只是自 1990 年代中期发布以来,Qt 不断发展,逐渐能够支持广泛的平台和多种使用场景。如今,使用 Qt,开发者只需编写一次代码,即可在多个平台上部署,包括 Windows、Linux、macOS 以及移动平台如 Android 和 iOS。并且 Qt 还提供丰富的库和工具,支持 GUI 开发、网络连接、数据库访问等功能,不仅适用于桌面应用,还适用于嵌入式和物联网 (IoT) 开发方面。QT 官网列出的典型客户案例,主要是松下机上娱乐系统、AMD 图形软件之类。

 


虽然 Qt 在 C++ 社区中享有盛誉,拥有强大的跨平台能力、丰富的组件库和灵活的架构,但始终未能走出小众圈子。特别是在 Flutter、Electron 和 React Native 等跨平台框架大行其道的今天,Qt 似乎已经逐渐淡出了大众的视野。

 

在各大技术论坛上,我们经常能看到这样的讨论:“为什么没有更多的桌面应用选择 Qt 开发?”、“Qt 功能如此强大,为什么不够流行?”甚至有人直接提出“Qt 快要死了吗?”这样的疑问。就连 Qt 官方的技术论坛上也存在类似的讨论,可见开发者对 Qt 的未来发展充满了疑虑。

 

QQ 选择 Electron 而不是 Qt 开发桌面应用,也从侧面反映出了 Qt 目前所面临的困境。QQ 官方曾表示,选择 Electron 的主要原因是考虑到人才储备。在国内,熟练掌握 Qt 技术栈的开发者相对较少,这无疑增加了开发和维护成本。

 


被智能手机时代抛弃的、最好的 C++ GUI 框架

 

Qt 诞生于 1991 年,由 Haavard Nord 和 Eirik Chambe-Eng 两位挪威程序员共同开发。他们因对跨平台 GUI 开发的需求,创立了 Qt。1992 年,他们引入了创新的“信号与槽”机制,为 Qt 奠定了基础。

 

1994 年,他们正式成立公司,立志打造一个“世界最佳 C++ GUI 框架”。该公司最初名为 Quasar Technologies,后来更名为 Trolltech。然而,创业初期并不顺利。作为两个年轻的程序员,他们想要进入一个已经相对成熟的市场,但面临着客户少、产品未完成、资金不足等困境。幸运的是,他们的妻子都有工作,因此能够在 Eirik 和 Haavard 预计开发产品并开始赚钱的两年时间内养活丈夫。

 

Qt 的命名颇有趣味:选择字母“Q”作为类前缀,因为这个字母在 Haavard 的 Emacs 字体中看起来很漂亮。添加“t”代表“toolkit”,灵感来自 Xt,即 X Toolkit。1995 年 5 月,Qt 首次公开发布,并提供了商业和开源两种许可。同年,挪威公司 Metis 成为 Qt 的首个商业客户。

 

1996 年,欧洲航天局也采用了 Qt,他们购买了 10 个商业许可证,而 Matthias Ettrich 则使用 Qt 构建了 KDE,这使得 Qt 成为 Linux 上 C++ GUI 开发的事实标准,为 Qt 的发展奠定了坚实基础。

 

2008 年初,意识到自研软件平台竞争力不足的诺基亚,以 1.53 亿英镑收购了 Trolltech,并将其 C++ 框架作为其开发者战略的核心。彼时,诺基亚的软件平台在用户体验上已明显落后于苹果和谷歌。其界面设计老旧,操作繁琐,与竞争对手的简洁直观形成了鲜明对比。而 Qt 已用于构建成功的消费软件产品,如 Google Earth 和 Skype 客户端,因此这是一笔不错的生意。

 

诺基亚的管理层希望通过引入 Qt,为开发者提供一个更现代、更灵活的开发平台,以提升其软件的竞争力。Qt 作为一款成熟的 C++ 框架,具有强大的跨平台能力和丰富的功能,Qt 也没有固定的外观和风格,这给了诺基亚很大的定制空间。

 

Trolltech 团队在 Symbian 平台上引入了 Qt,并对用户界面进行了现代化改造。他们认为,简单地对旧界面进行修补是毫无意义的,只有全新的设计才能满足用户不断变化的需求。

 

另一方面,诺基亚内部存在着激烈的竞争,不同团队之间缺乏协作,导致了资源的浪费和重复开发。这种内部竞争的文化,源于诺基亚 2004 年的一项重组,旨在避免官僚主义的形成。然而,这种做法却导致了多个相互竞争的 UI 框架的出现,包括 Symbian 原有框架团队设计的名为 Orbit 的项目,以及 Linux 团队开发称为 libdui 或 Direct UI 的框架。

 

Qt 框架原本被视为统一诺基亚设备开发的工具,但工程师们却开发了两个不兼容的 UI API。这严重影响了源代码的兼容性,导致开发效率低下。诺基亚管理层似乎并未意识到这一问题的严重性,继续支持这两个并行的 UI 项目。经验丰富的 Epoc 开发者 Sander van der Wal 对此感到非常失望,他指出诺基亚再次犯了碎片化 API 的错误。

 

2010 年诺基亚换了一位新 CEO,他很快就认定 Qt 不足以为诺基亚赢回开发者或客户,并果断地取消了 Orbit 和 Linux 团队的 DirectUI 项目。

 

然而,在这些内耗的过程中,Symbian UI 的现代化工作被严重耽误。诺基亚的产品设计师仍然不得不与一个过时的、用户体验糟糕的界面打交道。

 

知情人士曾评价诺基亚的失败是因为“在无效的用户界面上浪费了 2000 人年”:拥有 Linux 和 Symbian 两个平台后,80% 的代码无需更改即可让诺基亚重获竞争力。而 Symbian 的代码已经投入了数千人年的开发,只有前 20% 的代码(最多)需要更新。然而,诺基亚未能实现这一点。正所谓“因缺少一颗钉子,整个王国都消失了”。

 

随着苹果和 Android 在市场上独占鳌头,Qt 对诺基亚来说也就变得毫无意义了。2012 年,诺基亚正式放弃了这项技术,Qt 被无情地“转手”给了 Digia。诺基亚放弃 Qt 之后,人们对该平台的信心一直在逐渐减弱。

 

从 Trolltech 到诺基亚,再到 Digia,应用框架 Qt 的发展历程充满波折,尽管它始终在开发者中保有拥趸。2014 年,Qt 从 Digia 分离出来成立了一个独立子公司,专注于将商业版和开源版 Qt 重新对齐。

 

复杂的使用条款

 

事实上,Qt 从第一天起就有两种许可证:商业开发需要商业许可证,而开源开发则提供免费软件版本。

 

其许可证多次变更,最终在 2022 年形成了一套很复杂的许可方式:商业开发者在购买 Qt 框架及相关工具时,可以在应用程序开发和设备创建两类许可中进行选择。这些版本在提供的功能数量、工具支持以及部署目标方面有所不同。价格从每月 302 美元起(仅适用于选择一年预付的用户),适用于专业应用程序开发许可;企业版则起价 329 美元,现有的 Qt 应用程序开发许可将自动转换为此企业版。

 



其许可也是导致 Qt 不够流行的原因之一。

 

在 2000 年以前,Qt 的许可证并不友好于开源软件开发。这在当时导致许多注重开源的人士拒绝使用 Qt。这也正是 GNOME 桌面环境诞生的部分原因。直到 2005 年,Qt 才允许开发适用于 Windows 的免费软件。因此,许多早于这些年份启动的开源项目无法采用 Qt 进行开发。对于商业软件开发,则需要支付许可费用。

 

另外,一些应用程序的许可要求与 GPL、LGPL 或 Qt 的商业许可不兼容。GPL 不适用于商业软件,LGPL 不适用于静态链接软件,而商业许可需要花钱——许多人都不愿意花钱。

 


截图来源:https://news.ycombinator.com/item?id=14068652

 


截图来源:https://www.v2ex.com/t/1023458

 

在社交平台咨询 Qt 许可模式的不在少数。近期,还有开发者在使用 Qt 开发软件后收到了 Qt 代理商的告知函,称其可能侵权。 尽管开发者仅是动态链接了 Qt 的核心库和控件库,并未修改源代码,但仍感到困惑。这是因为 Qt 使用了 LGPL 许可证,该许可证的条款相对复杂,尤其是关于修改源代码和开源方面的规定,让开发者难以完全理解。此外,国内外 Qt 授权的差异,以及代理商的告知函,加剧了开发者对 Qt 商用许可的困惑。

 

社区中对此也存在诸多争议,一些开发者建议避免使用 Qt,而另一些开发者则建议在软件中明确标明使用了 LGPL 协议。

 

总的来说,Qt 的商业化应用涉及到复杂的法律问题,开发者在使用 Qt 进行商业开发时,务必谨慎对待,并寻求专业的法律建议。

 

参考链接:

https://www.zhihu.com/question/3360014967

https://www.zhihu.com/question/2731975763

https://www.infoq.cn/article/99suibztx2be1fwvqjwg

https://doc.qt.io/qt-5/licensing.html

https://doc.qt.io/qt-5/licenses-used-in-qt.html

https://www.theregister.com/2011/03/10/nokia_ui_saga/?page=3

https://www.theregister.com/2011/03/07/nokia_qt_bye/

https://www.theregister.com/2012/08/29/qt_android/

https://rtime.felk.cvut.cz/osp/prednasky/gui/the-qt-story/

https://softwareengineering.stackexchange.com/questions/88685/why-arent-more-desktop-apps-written-with-qt

https://devclass.com/2022/02/02/qt-company-commercial-license-change/

https://news.ycombinator.com/item?id=14068652

 

2024-11-12 10:523217

评论

发布
暂无评论

SD-WAN在海外网络加速中的优势

Ogcloud

网络加速 SD-WAN SD-WAN组网 海外网络加速 SDWAN

系统综合清理软件MacCleaner Pro for Mac

Mac相关知识分享

Mac清理软件 系统清理

人工智能丨打造企业专属人工智能助理

测试人

软件测试

大模型在资源全生命周期的应用探索

鲸品堂

大模型 生命周期管理 企业号2024年8月PK榜

Fantastical for mac六项功能,让日程管理更加便捷!

理理

iToolab UnlockGo for mac(苹果设备解锁工具)使用教程

理理

移动应用新趋势:超级app+轻应用!

Geek_2305a8

打造企业专属人工智能助理

测吧(北京)科技有限公司

测试

【YashanDB数据库】YashanDB如何回收表空间

YashanDB

yashandb 崖山数据库 崖山DB

office Mac版激活失败 怎么解决office激活失败的问题

理理

中文版Final Cut Pro (fcpx剪辑) 如何导出Alpha通道透明视频?绿幕抠图

理理

Cinema 4D 2023常见问题:c4d 2023看不到新的加厚和对称对象怎么办?

理理

Turbo Boost Switcher Pro for mac(cpu温度监测工具)

Mac相关知识分享

cpu

受邀参加 2024 中国操作系统产业大会 星辰天合获“最优协同奖”

XSKY星辰天合

麒麟软件 软件定义存储 星辰天合

DAPP持币生息质押项目挖矿分红系统开发详细教程及功能步骤

V\TG【ch3nguang】

依旧是原汁原味的马自达 EZ先享官见证马自达百年传承

Geek_2d6073

小程序技术为什么被称为轻量级前端架构?

Geek_2305a8

打造垂直领域内容的问答机器人

测吧(北京)科技有限公司

测试

Solana真假繁荣调查:机器人横行占7成交易,Meme数据下滑严重

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

思码逸联合信通院共同发布:《研发效能基准报告》

思码逸研发效能

DevOps 研发效能 基线

GreptimeDB融资数百万美元; Oracle提供免费长期MySQL

NineData

MySQL 数据库 oracle SQL开发工具 GreptimeDB

Bettertouchtool for Mac(鼠标增强软件)

Mac相关知识分享

Mac软件 触控板增强工具

CAD迷你看图 for Mac(MiniCAD) v4.4.5特别版

Mac相关知识分享

看图软件 CAD迷你看图

震惊:X突遭DDoS攻击,马斯克与特朗普的访谈推迟40分钟后开始

网络安全服务

服务器 马斯克 DDoS x DDoS 攻击

FLUX:AI 图像生成的新王者;VideoDoodles:在视频中添加手绘涂擦动画丨 RTE 开发者日报

声网

3D地球模拟软件Earth 3D for Mac

Mac相关知识分享

Mac软件 软件下载

Instagram帖子如何隐藏喜欢和查看计数?

理理

Rootstock 携手 Footprint Analytics:以数据洞察力加速 DeFi 生态系统发展

Footprint Analytics

比特币 区块链、

StarRocks 存算分离 Data Cache 二三事

Ding_Kai

数据库 数据仓库 StarRocks

借力成熟源码,轻松开发高利润的有声书在线音频平台

软件开发-梦幻运营部

mac视频下载器Downie下载vip会员视频教程分享

理理

Linux版微信正式官宣,居然选了这个90年代的老牌小众框架_架构/框架_Tina_InfoQ精选文章