TA的每日心情 | 开心 2021-8-26 17:08 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
|
作者:Zeljan
简体中文翻译:delphicn@163.com
此文章来自于欧洲Pascal杂志2010年9月刊:http://www.blaisepascal.eu/
由于本人水平有限,翻译中难免有错误,请大家谅解。欢迎批评指正。希望这篇文章可以增加大家使用Lazarus的信心。
编辑备注:
这篇文章举例说明了因为内核开发组专注的工作而使得Lazarus取得了巨大的进步:
它显示了Lazarus如今在许多方面和Delphi同样优秀。在个别关键应用方面Lazarus已经远远超过了Delphi(64位编译执行,多平台和多系统,允许移动应用和嵌入式系统的开发)。
当然它也并非与Delphi完全一样,几乎非常便宜-这个可以参考Lazarsu USB优盘的价格。所以任何人都买得起并且你可以立即开始开发而不需要安装要求。你可以创建曾经想要的任何应用软件和很多能够使用的控件。所以这个答案是:是的。可完全完美的用于商业应用软件开发。
以下部分为作者自述:
我开始我的工作在2001年,在一家克罗地亚名叫Holobit 的公司。在那时候Holobit是一家拥有十二个客户的相当的小公司。
我主要的任务是进行当时公司C++应用软件的转换开发,使其运行于Linux和Windows,使用的是Borland公司的Delphi和Kylix的CLX技术来开发的。在发展了多年之后C/C++代码在linux 中面向对象看上去非常简单和很有组织。在工作了二个月之后,我非常肯定Borland拥有伟大的产品,写代码的时间比用VI编辑器写C/C++(gtk+,qt)代码的时间短了许多。无论如何,在3个月内我们的商业应用软件转换到了CLX并且公司开始销售用于Linux和Win32平台。所有的开发是使用Kylix 2和Delphi 6来完成的。(后来升级为K3和D7)。
创建Linux本地应用是非常好的决定,所以客户数量开始迅速成长。
我们的客户非常高兴在桌面PC中可以选择Linux或Windows客户端应用程序,因为它可以节约成本并且创造了一个更好更安全的运行环境。
第二步的转换问题看上去更加复杂 - 在那时 - 是数据库。当我开始转换我们的应用软件时,它们都使用的是Foxpro,而我对Foxpro却非常失望,因为我已经在Linux上使用PostgrSQL了。那么你可以猜测到我们移植我们所有的应用软件到PostgreSQL是非常正确的。
在那时我不知道诸如Zeos一类的第三方组件,所以我编写了我自己的PostgreSQL驱动并且使用了它数年之久。
后来我发现了Zeos - 好得让人惊讶 - 我立即开始使用它。这样到了2004年,传言说Kylix将不再升级和退出市场,从Borland处没有任何消息 - 如此安静 ....是的它将要退出了:可耻的Borland,不是因为你把Kylix扔进了坟墓,而是因为你欺骗了你的用户。
多年以来,我们和Borland产品一起战斗。(同时,Kylix不再能运行于任何的Glibc高于2.4.X的分发版本之上)如此, 直到我看见有人已经开始Qt界面构件库用于Lazarus项目,并且那个家伙是Felipe,非常感谢Den Jean做的QT C绑定,因为没有C绑定的话我们不能拥有内置于Lazarus的QT界面构件库。
在这之前我观察过Lazarus好几次,但是在以前它对我没有吸引力,因为它只支持Gtk1界面构件库,并且它看上去比使用QT2的Kylix糟糕,所以现在我有理由的下载Lazarus trunk并且查明真相,它是如何和QT一起工作。(以前我测试过Gtk)。
很好,就像前面说的一样,在QT界面构件库的工作只是刚刚开始,这个结果是需要很多改进,所以它不能工作。
在快速的查看完Lazarus的原理之后,Lazarus组件库(LCL)和界面构件库是相连接到LCL的,我开始贡献给Lazarus开发组一些主要的我当时取得可以运行的QT界面构件库代码。
我的第一个补丁是发给了Felipe。他说我的代码写得很标准(嗨,嗨),那是因为我修复并且更改我的代码标准为Lazarus的标准。
不管怎样,一年后QT界面构件库开始可以用了 - 在同时Lazarus开发组给了我SVN写入的权根 - 所以不再需要等待Felipe和其它人帮我提交我的补丁了。
在同一时间 - 由于Kylix和Delphi程序设计引起的商业难题使得公司管理层考虑移植全部的代码到Java 或者.Net。当公司管理层决定移植修改必须快速完成时我表示反对。
我不是很乐意这样做。不是因为这个应用软件的原因,是因为在我们的应用软件中使用了大量的第三方组件(ZeosLib,FastReports,TMS表格,VritualTress等等)。我说我们没有必要花费很长的时间和资源去移植我们的代码到Java或.Net并且这样做的结果不一定是可靠的。我被这个商业决策给打乱了(并且已经准备更换工作了),所以有一天我询问我的主管,是否他们可以允许让我花费一些时间用Lazarus来开发代码,并且承诺在几个月后我将展示我们的一些应用可以在QT4上运行。
这样,努力奋斗开始了...
我开始和时间赛跑,我不得不修复QT-LCL并且转换一个我们公司的应用软件到LCL(只是一小部分)。那可不是一个轻松的任务,因为Qt-lcl仍然未完成并且许多事情还没有处理。
用于Lazarus的Zeos已经有了,但是对于一个简单的应用程序我还得拥有FastReports和TMS表格。这样,我使用了三个月的时间使得Qt能在Lazarus中使用,转换FastReports和TMS代码(都使用CLX授权)...
在花了好几百个小时的编码后,这一天终于来了。在2008年二月未期我展示了我的工作。我给公司管理层作了一个运行于Linux,32位Windows和Mac OSX的陈述,公司管理层感到很高兴和很满意。
当然那儿仍然有错误并且一些特性还未实现,但是他们很欣赏我的主要论点。如果我们移植到Lazarus我们可以运行于其它(甚至更多)支持的平台,并且同样因为Lazarus是一个开放源代码的项目,我们不需要像过去一样等待别的公司的决定(如Borland)来损害我们的利益。
接下来的几年是我的工作生涯中很愉快的日子。我制订我们的应用软件移植到Lazarus预算表和时间需求。现在我拥用一个合理的时间(15个月)来转换到Lazarus并且为Lazarus重写公司的应用软件(并且安排其它每天任务)。
在2008-2009之间我转换了所有的第三方组件,完成了我们所有的应用软件转换到FPC/Lazarus,同样给Lazarus项目组贡献了许多补丁。
目标完成 - Lazarus比Kylix 3更好并且我们已经开始布置了LCL应用软件超过3500个客户地点。
由于在所有平台上我们的应用看上去都是本地的,所以我们得到了用户的肯定。
自从我们首次给他们安装本地应用(他们使用Parsllels + Linux VM),一些Mac OSX的用户也非常高兴。
哇,多美好的一天啊。我们真的不再需要Borland的产品了。
现在我们使用FPC/Lazarus和PostgreSQL RDBMS完成了所有软件的开发工作:
1. HoloERP - ERP 系统 > 400个模块(窗体)
2. Cafeman - 咖啡吧和餐馆后台管理系统和POS 系统
3. TSuS - 小型商店后台管理系统和POS 系统
4. Cinema - 电影院软件(预约,票务等等)
5. ArhStudio - 建筑师文档数据库。
所有这些软件使用了以下第三方组件:
· ZeosLib
· FastReports (CLX接口)
· TMS Grids (CLX接口, 但我们拥有一个新的VCL授权和同样的接口)
· TMS Planner (CLX接口,后来是VCL)
· FlexCell (LCL授权许可,是的,它们是LCL版本)
· 我们自己开发的组件
结论:
Lazarus已经准备好商业开发应用了,特别是针对以前的Kylix3/Delphi 7代码。
我个人的看法当前(0.9.29分支)的Lazarus QT比K3/D7更优秀,并且开发者将非常乐意使用新版本0.9.30.
为什么?
· 这个OOP RAD支持如此多的平台。
· 志愿者坚持不懈的开发,它不依赖于商业决策所以可以避免破产。
· 除了花费精力和时间,几乎没有成本。
· 如果它不适合你的需求,你可以修改它并且分发。
· 如果那里有错误Bug - 你可以修复它并且分发它,或者至少你可以打开Lazarus问题追踪系统来查找你的答案。 |
评分
-
查看全部评分
|