Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 19648|回复: 24

俺也聊聊FP+LAZ

[复制链接]

该用户从未签到

发表于 2010-8-30 17:11:50 | 显示全部楼层 |阅读模式
有看到大家对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:想说对你爱不完



   
   
  

评分

参与人数 1威望 +5 收起 理由
猫工 + 5 优秀文章

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2010-8-30 17:50:11 | 显示全部楼层
需然没时间学习,但一直都有关注.多谢楼主的比较
留意到在论坛原创代码发得最积极的是臺湾同胞bruce0829还有猫工.,提供了好多解决的思路.
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2021-8-26 17:08
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2010-8-30 19:35:17 | 显示全部楼层
    兄台还是很了解FP和LAZ的,向你学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2010-8-30 21:04:35 | 显示全部楼层
    在 Linux 下, Lazarus 比其他 RAD 還有最大的優勢是, 他有廣大的 Delphi 使用者所習慣的開發方式, 玩 Lazarus 半天就可以寫出一個小時鐘(前提是我有 Delphi 背景) , 若是用其它開發功具寫, 可能學了一個月還沒寫出一支小程式, 光是熟悉新工具的 RAD 怎麼用就搞死人 , 例如我把 QT 或 wxWidgets 裝起來後,
    下一個動作應該是 - "不知接下來要怎麼開始, 只好把它 UNINSTALL" (哈)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-8-26 17:08
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2010-8-30 21:43:25 | 显示全部楼层
    没错,一个平台要想快速成功,一定要有相当的多应用程序来满足人们的需求,Windows就是如此,iphone也是如此.对于Lazarus的优势就在于delphi程序员马上可以用在win32平台的开发经验来为Linux,ARM,MAC等平台服务,开发出相同优秀的应用程序.Lazarus的前景非常好.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2010-8-31 18:47:53 | 显示全部楼层
    写得真好,一直有关注Lazarus的,希望她越来越好~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-1-5 17:00:00 | 显示全部楼层
    看中laz+fpc的跨平台特性

    真正做到"Write once Compile anywhere"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-1-7 09:51:14 | 显示全部楼层
    楼主 写的真好增强了我学习 Lazarus的 决心
    开一个教程吧
    楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-1-7 10:55:02 | 显示全部楼层
    不错! 支持!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-1-7 23:28:29 | 显示全部楼层
    看得我的热血都沸腾乐,果真有煽动性啊!
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-3-22 07:28 , Processed in 0.386916 second(s), 12 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表