在Linux下开发桌面程序

群里有人聊这个话题。俺就回忆了俺之前的一次开发。2018年左右,有个项目的终端是运行在centos下的。项目其实是 一个 云pacs。用了centos的一个很小的机器,作为终端进行dicom文件上传。项目的要求是这个centos的 有 web的管理工具,也要有桌面的管理工具。桌面的管理工具功能要多一些。当时就用了Lazarus进行Linux下的桌面程序开发。其实没啥特别的 ,控件还是那些控件 ,代码还是那些代码,和在windows下用delphi 开发桌面程序差不多。

以下是‌Delphi、Lazarus、CodeTyphon、QFLazarus、deepin-IDE‌五个开发工具的全方位对比表格:

表格

对比维度 Delphi Lazarus CodeTyphon QFLazarus deepin-IDE
‌开发主体‌ Embarcadero(美国商业公司) 开源社区国际团队 基于Lazarus二次开发(国内推广适配) 国内开发者(秋风)定制 统信软件(国内深度团队)自研
‌授权方式‌ 商业付费,社区版免费(有商业使用限制) 完全开源免费(GPL/LGPL,无商业限制) 开源免费,预打包组件商业/非商业均可使用 完全开源免费(无限制) 完全开源免费(GPLv3)
‌核心语言‌ Object Pascal Object Pascal/Free Pascal Object Pascal/Free Pascal Object Pascal/Free Pascal 原生支持多语言,需插件扩展Pascal
‌默认组件库‌ VCL(Windows)+FMX(跨平台) LCL(原生跨平台组件库) LCL+预集成上千第三方组件 LCL(针对信创优化) 无原生Pascal组件库,需依托LCL
‌信创适配‌ 原生支持国产Linux,但未专门针对国产CPU做优化 开源原生支持国产架构,但存在中文乱码/编译异常等bug 国内团队针对信创深度适配,支持全国产CPU+国产OS 专门针对信创开发,支持全国产CPU+国产OS,修复所有国产环境bug 全原生信创适配,支持所有国产架构与操作系统,自主可控
‌核心特点‌ 成熟稳定,IDE功能强大,编译速度快,商业组件生态丰富 开源轻量,兼容Delphi语法,原生跨平台编译 开箱即用,预配置全平台编译环境与海量组件,无需额外配置 专门修复Lazarus在国产环境问题,支持中文标识符,优化国内下载源 全栈多语言IDE,内置代码迁移工具,支持AI插件扩展
‌编译性能‌ 高度优化的原生编译器,编译速度极快,生成二进制文件效率高 Free Pascal编译器,优化能力略逊于Delphi,支持更多CPU架构 基于Free Pascal,和Lazarus编译性能一致 基于Free Pascal,针对国产架构做编译优化,性能略优于原生Lazarus 依赖外部Free Pascal编译器,编译性能和Lazarus一致
‌组件生态‌ 丰富商业组件库(TMS、DevExpress等),生态成熟 依赖社区维护免费组件,资源丰富但商业支持弱 预打包海量社区组件,开箱即用,不用手动找组件 保留Lazarus全组件生态,额外增加国内常用组件一键安装 支持Lazarus生态组件,需手动配置
‌中文支持‌ 官方英文,第三方中文汉化,不支持中文标识符 原生中文界面,但不支持中文标识符,存在部分乱码问题 原生中文界面,兼容中文标识符,部分优化 原生完美支持中文标识符、中文调试,解决所有中文乱码问题 原生完美中文支持,适配国内输入法
‌适用场景‌ 商业企业级快速开发,Windows平台桌面应用,对开发效率要求高的项目 开源项目,预算有限的跨平台Pascal开发,个人开发者项目 需要快速搭建全平台开发环境,依赖大量第三方组件的项目 信创环境下Pascal项目开发、原有Delphi/Lazarus项目迁移 全场景多语言信创开发,需要混合多语言的项目
‌信创合规性‌ 非国产自主可控,不符合核心领域信创合规要求 开源但非国内定制,部分场景可通过合规审核 开源国内适配,基本符合信创合规要求 完全开源国内维护,符合信创合规要求 完全自主国产可控,完全符合信创合规要求

补充说明

  1. ‌QFLazarus‌本质是Lazarus针对国内信创环境的定制发行版,核心功能和Lazarus完全一致,只针对信创做了bug修复和体验优化。
  2. ‌CodeTyphon‌是Lazarus的预打包增强发行版,核心基于Lazarus生态,主要优势是开箱即用,不用手动配置组件和编译环境。
  3. ‌deepin-IDE‌本身不是专门的Pascal IDE,是通用全栈信创IDE,需要通过插件才能支持Pascal开发,适合需要同时开发多语言的信创项目^原规划内容^。
相关推荐
瑞克-桑切斯1 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
vibecode3 小时前
网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍
运维·服务器
工业一体机老司机4 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
迪康Defender4 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
lzx_0025 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨5 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土5 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
GeW7 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
万联WANFLOW7 小时前
异地厂区视频监控远程运维:从组网到安全的实施要点
运维·网络·安全·企业组网·sdwan
衍玊8 小时前
深入剖析 TCP/IP 网络通信原理与内核实现
服务器·网络·tcp/ip