最近需要写一个Windows平台下的小工具,技术选型上思考了很长时间,最后调研之后还是决定拿Lazarus来写,开写之前还有些犹豫的,结果一写之下发现无比利索,不禁感叹,真是个埋没的神器!

Lazarus来源于曾经赫赫有名的Delphi,不知道这个古老的工具还有多少人记得,但对我来说那就是一个时代的烙印。想当年刚学编程的时候,因为互联网还不发达,学校的机器上安装的还是Turbo Pascal,从它开始踏入编程之路。虽然毕业以后的工作跟编程八竿子打不着,但仍然作为业余爱好,Delphi我曾把玩良久,虽然后来逐渐走向末落,但不妨碍我为之一再惊叹。

Lazarus的发起是在Delphi 7之后,由于Microsoft .net的推出,Delphi从版本8开始转向Delphi .net,包括IDE也转为Dock风格。这个时候,有一批程序员们,他们不喜欢.net模式,也不喜欢Delphi的闭源,便开始筹建Lazarus,力图让其继续沿着Delphi 1~7的风格继续发展,并吸收Kylin的成功经验,使之适应跨平台开发的需要,最终一直发展到今天。Lazarus这个名词来源于圣经,是个曾在死后被耶稣唤醒复活的人物,应当也是寓意着开发者对它的厚望。

这是Lazarus在Win10 1709版本上运行的截图:

win10_1709上运行的Lazarus

那么Lazarus的强大之处在哪?

第一,RAD开发,快速构建UI和应用程序框架。我在写这个工具之初,考虑过很多办法:Electron坑太多且难以访问系统底层,C++开发速度慢,VC的话还要依赖VC_redist,C#要依赖.net平台,各个不同Windows版本的.net版本不一样,又不能完全兼容。但用Lazarus,开发速度快,不需要依赖别的库,普通的界面拖拖拉拉就可以搞定。

第二,底层API无缝访问。作为Delphi的移植,Lazarus保留了对Windows平台API的直接访问,并有着堪比C++的速度。这一点让C#和Electron望尘莫及。尤其Electron,访问底层API得自己写C++依赖包,运气好的话可能会有现成的包,但安装和使用体验同样可能让人崩溃。

第三,跨平台移植性。Lazarus可以支持Windows、Linux、Mac以及Android、iOS、WinCE等多个平台,如果开发的程序需要跨平台,那么在依赖底层API的地方加上条件编译即可。就拿Windows平台来说,Lazarus能够支持的版本包括Win95、Win98、WinMe、WinNT3.51一直到最新的Win10,生成的可执行文件尺寸较小,并有着闪电般的运行速度。这一点恐怕绝大多数开发工具难望其项背。点击这里可以查看Lazarus在各个不同平台上运行的截图。

第四,完全开源并免费。Lazarus及它所基于的Free Pascal都是开源免费的,用它不需要有任何负担。

但是使用Lazarus也不是那么容易的。它的劣势在于:

第一,小众的语言。Lazarus基于Free Pascal,当今还在使用Pascal语言的人数实在不多,对于喜欢跟风的国内程序员恐怕就更少了。相比于常胜不衰的Java、C/C++、Javascript、PHP,以及近年来风头正盛的Python、Go、Swift等,它实在是个偏门语言,甚至我估计大多数人连Lazarus这个名字都没听过。

第二,古典的IDE。Lazarus使用的是Delphi 7式的IDE,没有Git集成,没有像Sublime那样好用的编辑器,没有高度智能的代码提示,尤其是编辑器和热键仍然还是古老的Borland风格,纯粹的现代程序员适应起来,恐怕很需要费一番功夫。

第三,稀缺的文档。Lazarus跟曾经的Delphi一样,架构优秀然而文档极缺。当你需要帮助的时候,不要指望能轻易找到合用的文档,如果恰好可以用Delphi的旧经验那还算幸运,如果没有,要么自己去看LCL源码,要么去Lazarus官方论坛去查询或提问,所以英文基础必须要好。

说了这么多,其实最终归结起来,任何一种语言、平台、技术都有它好用的地方,也都不能包打天下,关键在于学好用好,根据不同的需求,选择最合适的工具而已。如同Lazarus,虽然如今想要用它并不容易,但只要能用起来,适合你的需求,你就能感觉到它的强大和变态。

经验之谈,与君共享。

lazarus python_埋没的神器Lazarus相关推荐

  1. gui卡顿 python_视频下载神器(youget),在 Python 中怎么使用?

    点击上方 小张Python,加为星标 第一时间收到 Python 技术干货! 作者:朝畫夕拾 链接:https://www.jianshu.com/p/c5ee7960b728 来源:简书 you-g ...

  2. lazarus在macos里调用外部浏览器打开一个网址

    lazarus 跨平台free pascal语言ide工具,社区 http://www.fpccn.com/ 下载 ftp://freepascal.dfmk.hu/pub/lazarus/ http ...

  3. 在Mac OS X上安装使用lazarus 1.6.4

    一直觉得delphi的OO做得比C++还完善, 但如今日落西真是让人感到唏嘘,  这并不意味着delphi比C++差, 它的创始人被微软挖墙脚后创造了C#系列开发工具, 设计理念大部分与Delphi相 ...

  4. 朝鲜APT集团Lazarus通过KEYMARBLE Backdoor瞄准俄罗斯组织

    由朝鲜赞助的APT集团Lazarus旗下的分支机构Bluenoroff被发现最近将目光转向了俄罗斯组织.Bluenoroff在新活动中使用专门针对俄罗斯组织的恶意办公室文件. Lazarus(又名为H ...

  5. lazarus 编译linux,[原创] 在Windows X64系统制作跨平台Lazarus开发环境

    作者:许自强,版权所有,许可转载,请保留作者信息 操作系统:Windows 7 64位专业版 第一部分:准备mingw32 binutils跨平台编译工具 01.安装Fedora Workstatio ...

  6. lazarus 编译linux,Ubuntu 15.10下安装Lazarus IDE 1.6

    Lazaurs编辑器是很强大的,支持代码补全,自动完成,模板编辑,多行缩进注释,选定代码后批量更改里面的单词! Lazarus 支持多种操作系统,Windows,以及几种 Linux 发行版,当然包括 ...

  7. sqlsugar mysql连接字符串_通用数据访问组件UniDAC最新版本v8.2.4,支持Lazarus中的macOS 64位...

    UniDAC(Universal Data Access Components)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, La ...

  8. SWIFT之殇——针对越南先锋银行的黑客攻击技术初探

    360安全卫士 · 2016/06/02 11:52 Author:360追日团队 近期,孟加拉国.厄瓜多尔.越南.菲律宾等多个国家的银行陆续曝出曾经遭遇黑客攻击并试图窃取金钱事件,这些事件中黑客都瞄 ...

  9. noi linux 比赛使用哪个编译器,NOI比赛用什么编译器?TP还是FP,那里有下载?

    满意答案 NOI比赛允许使用的语言是Pascal.C.C++ 其中Pascal使用的编译器是FPC 2.0.4 也就是说使用的是Free Pascal的编译器 但需要说明的是,NOI全国赛不提供FP使 ...

最新文章

  1. flash,tornada demo
  2. Java并发编程 synchronized保证线程安全的原理
  3. linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解
  4. vmware中linux无法动态获取dhcp解决方法
  5. [ios2]苹果iOS 5限制应用本地存储问题 【转】
  6. oracle asm 异机挂载,oracle 异机恢复 从asm到文件系统成功实例
  7. oracle10g密钥,Oracle10G透明数据加密技术如何使用呢?
  8. Everything的下载
  9. Halcon:模版匹配
  10. 计算与推断思维 六、可视化
  11. hive 安装centos7
  12. Struts2的模型驱动封装方法获取页面提交的表单数据(接收表单数据的最常用的方法)
  13. MATLAB R2016a 安装详细教程
  14. VS2010专业版和旗舰版(中文版)下载
  15. 测试电脑整机功耗软件,最真实的耗电!PConline权威整机功耗评测
  16. WeCenter 文件目录结构
  17. html引入阿里在线css文件夹,阿里字体css代码引入方法
  18. 2021-09-07 照书码——_——
  19. Recap|Hadoop User Group France
  20. jpg图片太大怎么压缩变小

热门文章

  1. PayPal/Stripe轮询系统子商户
  2. 建设移动统一消息管理中心
  3. Ruby 教程(一)
  4. 优化js设计,防止浏览器假死(转)
  5. mysql导出文件名乱码_Mysql导出导入乱码问题解决
  6. 【Axure篇】(三)Axure RP9设置单击显示再次单击隐藏
  7. HP SureStore 磁带机 - 在 Linux 系统中进行备份
  8. 硬件编解码开发 linux,Intel平台硬件加速视频编解码开发
  9. PDF malware
  10. 职业院校物联网实训室建设方案研究