|
有看到大家对FP+LAZ 的现状、未来的看法,忍不住也来说几句。对FreePascal+Laz来说,目前还是太低估了它的前景。下面随便聊聊,没打草稿,没组织结构,想到就说,不爽的欢迎来砖
免责声明:俺要说的并不是QT和、或WX不如LAZ,LAZ最好;也不是C++不如FP,FP最好。俺要说的其实:
1.每种语言都有优缺点,了解语言的优缺点,了解自已的需求,选持最合适的;
2. FP +LAZ无疑是当今跨平台开源库里最好的之一,QT,WX也都是;
A. 说LAZ安装后的体积约400~500M,太大。
所有当今跨平台的库几乎无一例外地,都是对各个平台的OS API进行封装,QT有1G多,wxWidgets也在400M-500M之间。如果DELPHI的现东家开发的下一下版本的跨平台库在这个问题上有银弹可用,俺就相信这世上真有免费的午餐。
结论:包的体积大小不是关键。
B. Free Pascal+Lazarus行不行
整个C族语言在当今占居着非常高的地位。然而数遍C族开发的支持原生编译,跨平台,库比较全,支持数据库控件,能‘相对比较’方便地与数据库打交道的库就一Qt,先不说Qt 的数据库控件的数量与易用性能不能和LAZ相提并论,就说说Qt的几个已知问题:
1。Qt的控件是自画的,不是原生OS控件,虽然最新版本的QT部分控件现在也能画原生的了(是通过向构造函数提供一个叫做DontUseNative=false来实现),但毕竟是部分。自画吃掉的内存和所占用的CPU时钟都要比原生的多出不少,多年来多次上手QT,最后都是下掉了,原因是一运行QT Designer或是QT Creator,俺的 ThinkPad的风扇就开始呼呼了,相比,wxWidgets就绝对不会有这问题。有关WX,等下再说;
2。Qt非常依赖于非C++标准的MOC来预编译,就像。。C++ BUILDER 的故事。。。
3. Qt的事件处理采用的Signal/Slot机制有优也有缺。缺点就是比VC++、DELPHI、LAZ的消息(MESSAGE)事件机制要慢上5-200倍。
4. wxWidgets如何?好,很好,很成熟,很强大,因为它对OS API 封装很薄,也采用了类似MFC的消息事件机制,所以可以肯定的是在各个跨平台C++库中,它是最快的。凡事都有两面性,正因为它对OS API封装的薄,所以在很多地方并不易用。这个只举一例。wxWidgets 在2.9.0 之前的版本都有提供DB库,自2.9起不提供了。而这个跨平台的DB库用起来怎么样呢?发行包自带的DB例子程序,功能就是一普通的与MS ODBC 连接,读写ACCESS数据库文件,浏览记录,整个程序的源码接近5K行。兄弟请注意到目前为止WX还没有数据库操控和感知控件,意味着这5K行除了一个空壳窗体可用工具生成外,业务部分可都得一个字一个字地敲了。
在LAZ里应该十分钟搞定吧。
下面是俺对比C/C++认为FREE PASCAL+LAZ比较好,有些地方超好的一些特性:
1.FreePascal 指针威力可非常谦虚地说,‘基本’与C等同。当指针支持+/-算术运算时,C能做的FREEPASCAL就没有做不到的。C++编写的(微)操作系统俺少经见,但FREEPASCAL写的操作系统在官网的链接上给出了,你可以去下载下来玩玩。
2.虽然FREEPASCAL也支持泛型和操作符重载并在飞速地发展添加新功能,但俺觉得这个只值得略略一起,不值得大提特提,原因是C也没有这两样,可它写OS,C++有,但几乎没写出过OS,一句话,语法糖而已,不象指针的算述运算这种语言核心的东西,让一切成为可能。那么俺的这第二点在说什么呢?就是FP的编译器可以支持泛型和操作符重载,够了。如果你说到目前为止所支持的范围还不大,俺不敢苛同支持的广就是好事。C++社区里大家公认为影响C++广泛使用的负面之一就是泛型和操作符重载被过度使用。C++里逗号都可以重载的,相比满篇尖括号<>,嵌套尖括号< T,<U> >,>>,<<,再加上重载过的逗号,俺怎么看FP都觉得可爱。
3.俺还没见过跨平台的IDE里有哪一个编写自定义组件有LAZ这么方便易行的;QT可以做,并不等于可以做得象LAZ一样轻松,优雅。LAZ IDE->包->配置已安装的包 打开后,左边是IDE已安装的包,右边是发行包已提供但IDE没安装的包,您可以装几个试试看,(OpenGL,fpWeb,Data Export,Leak View,h2pas...)还有哪个跨平对的IDE有这么丰富的组件;还远远不止,俺的IDE除了这些外,还根据WIKI的组件链接页,装了以下几个:
1).ACS声音组件;
2).TFileHandler/THistoryFile处理历史打开文件记录组件;
3).RingWatch 组件,图表/挂钟组件;
4).PlotPanel 组件,有称计划代替IDE自带的TChart 组件;
5).THtml Components 组件,功能很多,更齐全;
6).LNET网络库,不需再说;
7).Date and Time Control,功能很多,更齐全;
8).Fortes Report 比起IDE自带的REPORT组件,两个字:更牛
9).Zeos Access 数据库组件,非常强大,成熟,除了支持LAZ外,支持 DELPHI到2010;
10).PowerPDF,制作PDF文件就是一颗大白菜;
11).RichMemo,比起IDE自带的功能很多,更齐全;
12).fpSpreadSheet,Office Excel/Open Office SpeadSheet 跨平台电子表格组件;
除了这些组件外,再加上下面这个源码,不能用LAZ干活的东西只能说太少了:
*13).lazwblib,浏览器库(IE库);
14).有留意到laz/tools/lazdatadesktop/目录下有一Desktop Database 应用程序?编译运行一下
4.另一个值得高度重视的地方,FREEPASCAL现在有一个非常强大的基金在支持,wow,想想JAVA,再想想有专用基金的开源项目总共才有几个,再看看今天的LAZ更新速度。前几天在坛子里还看到大家在谈论IDE代码编辑器不支持中文,才几天的时间,UTF8了;月初俺在官网上说WINDOWS控制台程序显示中文乱码,当时就有一同好给出了utf8decode(input:string)的函数让俺暂时用用,(这个函数是LAZ系统自有的,果然管用),接着就有lcl/lconvEncoding.pas单元里添加了utf8ToCP936函数,问题解决了。其实大家所说的BUG,各种开源项目都是避免不了的,所以才有BUG REPORT。除了象M$和NOKIA这样的商业财团独资控制的M$项目和QT项目,BUG FIX的速度是开源项目不可比这一事实外,俺认为LAZ+ FP的BUG修复和新功能的引入都是非常有竟争优势的。
...
...
想说的很多,以后再加吧,上班呢
结论:1.不比C/C++差,优雅+易用+性能完美集于一身。
FP+LAZ:想说对你爱不完
|
评分
-
查看全部评分
|