在Pascal编程语言的诸多分支中,除了世人熟知的Delphi,还有隐秘的 Lazarus ,至今其已经成长为一股强劲的力量。
Delphi 和 Lazarus,都是 Pascal 语言的RAD开发工具。Delphi是商业化软件,拥有广泛的用户基础和成熟的生态系统,尤其在 Windows 系统上具有深厚的技术沉淀。Lazarus 则是 Delphi 的开源替代品,使用 Free Pascal 编译器作为其后端,跨平台。
说起来,二者的名字颇有意味。
Delphi
是古希腊的一个著名圣地,位于希腊中部的帕纳索斯山(Mount Parnassus)上。在古希腊神话中,Delphi 是阿波罗神(Apollo)的神谕所在地,阿波罗是光明、艺术、预言和医疗的神。在古希腊时期,Delphi 被认为是世界的中心,是人们寻求神谕和预言的神圣之地。
可见,对于 Delphi ,人们寄予了神圣的期望,为它赋予了智慧和启示的的深意,甚至当时有个流行的说法:
真正的程序员用C++,聪明的程序员用Delphi
![](https://img-blog.csdnimg.cn/direct/b3b449c79d6740c6ae1afd81c0f267d7.png)
Delphi 1.0 在 1995 年发布,一路高歌猛进,掀起了 Windows 上快速开发的热潮,甚至推动了 Windows 平台的发展,对后来的 IDE 设计产生了深远的影响,进而引发波澜壮阔的编译器之战,微软、SUN、IBM、Oracle 悉数下场, 那又是一部激荡的岁月史书,感兴趣的朋友,可以拜读下李维的《Borland传奇》。
或许,将来我也会以《Borland传奇》为底,简要下Borland的神迹历史 🙂
Lazarus
源自新约圣经约翰福音第十一章,记述了耶稣令其死而复生的故事。
![](https://img-blog.csdnimg.cn/direct/9a93a5031d6948d19c50bf4aa10c75d3.png)
The Raising of Lazarus, 1857
Léon Joseph Florentin
这隐喻了什么呢?
![](https://img-blog.csdnimg.cn/direct/e935d6dc5b634884ba7f256bdbdfd4c5.png)
Lazarus 是一款兼容 Delphi 的跨平台集成开发环境,用于快速应用程序开发。它拥有各种随时可用的组件和图形表单设计器,可轻松创建复杂的图形用户界面。
嗯,它要作跨平台开源的 Delphi ,在各个平台下复兴 Delphi 的神迹!
Lazarus的起源
实际上,Lazarus 的起源比我们想象的都要早,可以追溯到1998年发起的Megido项目,它当时的目标就是创建开源版的Delphi,但这个项目很快失败了,三位参与项目人员(Cliff Baeseman、Shane Miller和Michael A. Hess)非常沮丧,但他们并未死心,而是启动了属于他们自己的新项目——Lazarus。
说起 Megiddo,又要谈及圣经了。Megiddo 出现在新约的【启示录】中:所有的国王全都聚集在了Megiddo这座城市里,隐约暗示着这些国王是要为上帝(正义)与撒旦(邪恶)做出最后一战。可见,当时人们对这个项目还是抱有极大希望的。
后续,随着人员的不断加入,Lazarus也渐渐羽翼丰满起来:
-
Marc Weustink:于1999年8月加入,寻找Linux上的Delphi替代品,加入时Lazarus项目仅包含空工具栏和硬编码的GTK菜单项。Marc是核心贡献者,专注于调试器接口的开发。
-
Mattias Gaertner:2000年9月加入,为项目带来了重大进展,移植了synedit,编写了代码工具和设计器的大部分代码,并在三年后增加了包系统,持续为IDE增加特性和改进。
-
Micha Nelissen:2003年6月加入,主要贡献是为win32接口发送补丁,帮助开发原生win32界面,以响应用户对原生win32界面的需求。
-
Vincent Snijders:1999年夏天首次接触Lazarus,2003年毕业后开始贡献补丁,专注于让Lazarus在Windows上运行得和在Linux上一样好。
-
Felipe Monteiro de Carvalho:2005年开始关注Lazarus,希望将其作为Delphi的替代品,最初通过报告错误和编写文档贡献,后来开始编码,开发了多个新界面,包括Qt 4、WinCE、fpGUI和Cocoa,增加了TTrayIcon组件和PasCocoa绑定。
-
Paul Ishenin:2007年1月在FastCube 1.0项目中了解到Lazarus,决定将其移植到FPC和Lazarus,专注于实现至少针对Windows平台的光标,并最终参与了GTK2、Qt和win32小部件集以及IDE的开发。
-
Zeljan Rikalo:2007年开始通过向Felipe发送补丁为Qt小部件集贡献,并在同年夏天获得svn写访问权限,现在负责开发Qt、GTK2和LCL。
-
Martin Friebe:通过清理和重构SynEdit代码开始贡献,增加了如同步编辑等新功能,并改进了源编辑器的多窗口视图和调试器。
-
Juha Manninen:2009年加入,最初通过修复错误,之后改进了“构建Lazarus”配置对话框,获得SVN写访问权限后,开始维护Delphi转换器,并专注于提高IDE的可用性和修复错误。
-
Bart Broersma:多年来首次贡献代码,并于2011年加入开发团队。
此外,Roozbeh Gholizadeh自2006年起尝试使其En2Fa程序在Pocket PC手机上工作,贡献了Win32小部件到WinCE的移植,并改进了FPC编译器以提高与WinCE架构的兼容性。
Lazarus的诞生背景
在 Delphi 7 之后,当时由于Microsoft .NET的推出,Delphi 开始转向 Delphi .NET ,包括 IDE也转为 Dock 风格。这一转变让一些对传统 Delphi 开发体验情有独钟的程序员感到不适应。正是在这样的背景下,Lazarus作为Delphi的一个开源替代品应运而生,它使用Free Pascal作为其编译器基础,并高度还原了Delphi的开发体验,不仅保留了Delphi快速应用开发(RAD)的核心优势,还加入了跨平台和开源的现代元素。
Lazarus的现状
Lazarus IDE 因其跨平台能力和对 Delphi 兼容性而被广泛认可,成为了 Pascal 语言开发的有力工具。随着不断地更新和改进,Lazarus 在开发者社区中的地位越来越重要。
频繁的更新
今年Lazarus 3.0 发布,用 Free Pascal 3.2.2 构建。
![](https://img-blog.csdnimg.cn/direct/929f505300cc4eca80d5aa53999724ee.png)
截止今日,最新版本为 3.2
整个IDE确实很完美的复刻了 Delphi,便捷、灵活、强大。
跨平台?
嗯,让我们看看这份平台支持列表:
Platforms
- Lazarus for Android Development
- Lazarus for Linux
- Lazarus for Embedded Development
- Lazarus for FreeBSD
- Lazarus for macOS
- Lazarus for iOS Development
- Lazarus for Windows
- Lazarus for Windows CE Development
- Lazarus for Web Development
丰富的组件
组件面板神似 Delphi,丰富度让人足以放心开发常规应用。
不仅仅组件丰富,它们还可以跑在Gtk,Qt 4/5,Cocoa/Carbon 上,超出想象的跨平台完善度。这些都基于 LCL 十多年的技术沉淀:
![](https://img-blog.csdnimg.cn/direct/10efe59c2c7241fab57e2aa11680290e.png)
第三方组件支持也很多,许多著名组件同时支持Delphi 和 Lazarus:
- SQLite / PSQL 操作数据库,并直接关联界面表格。
- Python4Laz:可以用 Python 混合编程,Pascal 负责界面交互,Python 负责逻辑。
- Lua4Laz:可以用 Lua 混合编程,Pascal 负责界面交互,Lua 负责逻辑。
- Pascal Script:一种基于 Pascal 的动态脚本。
- 界面库 SkinCate,一键换肤,类似当年 Delphi/BCB 的 vclskin 组件。
- Backport 的 Delphi 组件:比如 DelphiMoon。
Delphi 程序员的福音
对于一个 Delphi 程序员来说,可以轻松上手 Lazarus ,可以通过视频演示了解 :
或者看看海量的截图:
Screenshots - Lazarus wiki (freepascal.org)https://wiki.lazarus.freepascal.org/Screenshots
甚至,还为你专门准备了一份引导入手的页面:
L azarus 是一种类似 Delphi 的快速应用程序开发 (RAD) 工具。这意味着它带有一个可视化组件库和一个集成开发环境(IDE)。Lazarus 组件库 (LCL) 与 Delphi 的可视化组件库 (VCL) 非常相似。大多数 Lazarus 单元、类和属性的名称和功能都与 Delphi 中的同类产品相同。这使得将 Delphi 应用程序移植到 Lazarus 相对容易。
当然了,他们也说明,“尽管 Lazarus 在很多方面都是 Delphi 的开源克隆,但兼容性并不是 100% 的。” 这是完全可以预期和理解的。
甚至贴心的为你准备了各类组件对比说明:
怎么样,可以心动了吗?😃
用Lazarus可以做什么?
官网是这样回答的:
你可以创建自己的开源或商业应用程序。使用 Lazarus,您可以创建文件浏览器、图像浏览器、数据库应用程序、图形编辑软件、游戏、3D 软件、医学分析软件或其他任何类型的软件。
实际上,这应该取决于你自己。
有很多知名软件是用 Lazarus 开发的,简单罗列一下:
-
Total Commander3:这是一个老牌硬核的桌面效率工具,最初使用 Delphi 开发,2010 年开始移植到 Lazarus,目前 64 位版本完全使用 Lazarus 开发。
- Cheat Engine:这是一个著名的游戏修改器,支持跨平台,包括 macOS,得益于 Lazarus 的跨平台性。
- Beyond Compare: 这是一个硬核的桌面应用,擅长开发类似 Total Commander 的应用程序,具有丰富的界面表现和重度 GUI 界面操作。
- Pea Zip:这是一个以启动快、占用少、开源免费而闻名的压缩工具,支持多种操作系统和桌面环境。
- Double Commander:这是一个高仿 Total Commander 的免费开源文件管理器,从项目开始就使用 Lazarus 进行开发,支持 Linux 和 macOS。
- CudaText: 这是一个高性能的文本编辑器,是 Sublime Text 的开源替代品,具有高颜值和多种语言高亮,支持大文件编辑和 Python 扩展。
这些软件展示了 Lazarus 在开发跨平台桌面应用程序方面的强大能力和灵活性。
总结
Delphi 和 Lazarus 就像优雅的 Pascal 宇宙中的两个平行世界。一个专注于商业产品,一个拥抱开源跨平台。但它们是精工良品,希望我们开发者能善用工具,创造出令人惊叹的应用程序 ✨