主题:一个老VFP爱好者说说他的VFP之旅
hbgth
[专家分:30] 发布于 2004-06-08 15:08:00
我2000年开始苦学VFP,主要参考的书是《VisualFoxPro6.0中文版入门与提
高》[清华大学出版社]和《VisualFoxPro6.0入门与应用实例》[李俊德编著 清华大学出版社]2本书。尤其是后一本书,完全可以称的上是当今VFP学习中的经典书籍,你看了它,才知道以往所看的一切VFP类的书和教程都是狗屁!不可能再有书能超过它了,我也完全是靠了它才真正进入并进而掌握VFP的。如果你打算在VFP方面有所长进,非买这本书不可!
我同时也学了VB6.0、Delphi7.0、PowerBuilder8.0和ASP,基本上都是学习做管理系统。总的感觉是:VB的确简洁明快,功能不凡,我现在有写小程序还在用它做;Delphi很庞大,也比较罗嗦,不过功能强大,让人惊叹,堪称完美,但也复杂,不如VB简单;PowerBuilder8.0简直是狗屁,罗嗦复杂,莫名其妙,功能却幼稚可笑,真不懂一些人为什么还在那里硬撑着说它强大,学它简直是浪费生命,根本不能与VFP相比;ASP很有趣,实际需要掌握的东西很少,但功能强大,简直无所不能,在里面只有想不到没有做不到的,不过要有一点VB的基础编程知识,尤其是它是网络性的编程,前景广阔,我现在正在玩它。:)
最后说说VFP。说实话,我心情很复杂,我曾经是VFP的狂热拥护者,progranfan是我经常上的网站,我在CSDN的VFP论坛也经常出现,为VFP与不少人打过嘴官司,你可以到那里看看我的一些帖子的。VFP入门并不简单[当然入门后就能轻松掌握了,它要人上的是陡坡,不象其它编程语言那样进门容易,而达到掌握却是长途漫漫],如果你以前从未学过VB之类的编程语言,你可能还不以为然,如果你学过,你简直觉得VFP语言实在糟透了,莫名其妙不说,还很罗嗦,单个表单必须放在同一目录下,不想遭这个罪的就要搞表单集,界面弄的一塌糊涂;在表单的启动处还要对窗口进行一些莫名其妙的设置,开始还要搞什么READ EVENTS ,结束要CLEAR EVENTS ,不然编译出来的EXE文件鬼影一闪就不见了(我曾为这个,将别人的原代码一行行删除排查,花费了3个月才最终搞清楚);还有菜单这种在Deiphi中做起来简直象好玩似的东西,在VFP中要用编辑器,如果要出现在表单上还要搞什么顶层表单;每行程序都要搞this.text1.text这样罗嗦的语法。最终做出来的东西是:界面象玩具,幼稚可笑;莫名其妙的出现错误提示,总是某个变量出现错误,容错功能实在很差;前端界面与后端数据库一损俱损,一荣俱荣,哪个出了问题,包括索引文件出了问题,整个系统就报废了,而重装则意味着曾经输入的数据作废。这种客户端与数据库缠在一起,既是VFP的特点和优点,也是其致命弱点,而用VB+ACCESS、Delphi+ACCESS或SQL2000做的管理系统,客户端界面不完善,重做编译安装,数据库不受影响;数据库出了问题,只需对其进行改造,客户端界面不受牵连。通过ODBC或BDE或OLEDB Privider这根“线”将客户端界面和数据库这两颗“珠”联系起来,其中一者坏了,顶多就是解开“线”重新连接一次罢了。所以,学了VFP,最终还是回走向VB+ACCESS、Delphi+ACCESS或SQL2000做管理系统这条路,VFP不过是热了一下身。也正是这样,注定了VFP是一个悲剧性的东西,而其实,它却的确是一个非常有特色,非常方便快捷的数据库系统开发工具。
别的不说,就进入VFP之快,就让人很爽,再看看Delphi之类的,我操,等的老婆都要生完孩子了。VFP做出来软件体积很小[只有VC++做的才可与之相比],而且还能在不同系统平台上运行[比起另一跨平台的JAVA老太太它姥姥似的浪费人民生命的奇慢无比,简直就象奔驰之与蜗牛],运行速度奇快,搜索数据之快天下第一,它独特的过滤和查找功能没有哪种语言能及。在熟练掌握语言后,开发速度也非常快;如果不怕麻烦,有创意和决心,它最薄弱的界面问题也是可以得到很大改观的。再看看它很具特色的“自定义属性”、“自定义函数”、“存储过程”,自定义库等,独特而实用,此外非常底层化、精细化的语言,完全掌握后,你会对数据库系统的开发有更清晰完整的认识,而不是除了只会白痴一样的搬一大堆控件来实现功能外,连行正确的程序都编不出来。想真正的通过程序而不是控件来实现并明白数据库系统的工作原理,VFP比Delphi都要强。不过VFP的并不完全面向对象也限制了它功能大发挥,但对于并非比尔·盖次的我们老百姓程序员或爱好者来说,这种限制我实在感觉不到。
VFP的优点实在太多,我一下子也说不完,何况大家也没那么多时间听了。
现在我改用Delphi+SQL2000或ASP+ACCESS2000或SQL2000做管理系统了,原因很多,相信许多学VFP的人学到一定程度,基本上也会走我这条路的,到那时,或许我今天没说的东西,他们心里已经明白了。不过,有时间和兴趣,我还会用VFP做一些东西,或建议别人学VFP的,这样做,或许还是因为不能最终忘情于它吧。 hbgth 2004年6月8日下午于武汉
回复列表 (共111个回复)
81 楼
hbgth [专家分:30] 发布于 2005-04-10 22:53:00
没想到我的帖子这么热,一年多了,还有这么多热心的人回。其实我也知道,并不是我谈了什么了不起的东西,而只是在合适的时间合适的地点抛了一块合适的砖头,引来了大家如此多的珠玉和宝石。
一帮充满热情和梦想的程序员、准程序员和爱好者们,能够凑到一块,谈谈各自的想法和憧憬,而我能为这样的聚会创造一个小小的机会,我以为我是最幸运的。谢谢诸位的光临,也非常感谢站长在这样一个艰难的世界上费力的开辟了这么一方天地,让大家的聚会得以进行。
有时间我会常常来这里的。也欢迎大家继续往后贴,不是为了我,而是为了我们共同的编程梦!
82 楼
wenhisoft [专家分:130] 发布于 2005-05-26 11:04:00
今天终于一气呵成看完了这81张贴,获益良深.让我了解到VFP和其他语言的优劣,以及终于排除了以往一些人鼓吹"VFP没有前途了"的影响,我认为:各人都应有一把适合自己的宝剑,如果你功力不济,就算是倚天屠龙,你也无力去驾御.无论是什么语言,只要你学得很精,那你就做什么也是非常顺利的.武功高的人根本不用什么武器,摘叶飞花也能杀人.
83 楼
阿军 [专家分:3350] 发布于 2005-05-26 15:18:00
好久没来了,想大家了,也来报个道.
84 楼
lwh1188 [专家分:25840] 发布于 2005-05-26 16:11:00
你发现VFP的更多缺点,你更会使用它或永不使用它!但更多人会使用它,不用的却更少!
85 楼
farwish [专家分:270] 发布于 2005-05-26 20:31:00
我是个业余的编程者,用VFP已经有7年了,现在在工厂内做厂长助理,从大2开始就用VFP,先不说优点和缺点,至少在这些年里,我还是结合实际管理应用,编写了不少的信息管理软件,帮助企业在一些管理环节上进行优化整合,其实一个数据库的编写不仅要依靠编程,同时还要依靠自身的管理知识,对各种信息管理和流程的优化的了解,这样的程序才能够切合实际,才能够形成个性化的服务,而且个性化服务也是现在的趋势,所以我认为在数据库的编程路上,自身的管理知识和管理思路的理解才是最重要的,这样才能编写出一个好的项目计划书,才能做好结构分析,功能分析等各项事情,一个好的程序员应该用70%的精力去规划项目,20%的时间去编程,10%的时间测试改善,不然你做出来的管理系统就算是界面如何的漂亮,菜单如何的好看,程序代码如何的精细,在用户那里没有得到认可也是没用的程序。
以上是我个人观点,就象前段时间一个朋友有项目要和客户谈判,结果找到我,为什么,因为客户不懂程序,也不知道是VFP好还是VB好,即使知道,他真正要的是如何使自己的企业或公司管理更加规范,事务处理流程更加顺畅和优化,所以在谈判的时候让我的软件能够给他带来管理上的哪些好处和哪些个性化的东西是最重要的。
所以我认为编程、数据库、信息系统都是一个工具而已,重要的是如何运用这些工具去达到预期效果,特别是数据库系统(如:贸易公司管理的进出管理,大部分存在着一个商品存在着好几个供应商和价格,而且一个产品同时也存在好几个客户和价格,同时客户对产品的编码定义与你的可能不一样,这样就需要你去调查去分析,如何能做到简单实用,对各个方面的兼顾)
86 楼
zjt [专家分:0] 发布于 2005-06-09 10:58:00
其时VFP的功能是很强大的,单就作管理系统来说,现在还没有那一宽软件与之相抗衡(不管是VB还是DELPHI,不管是做单机的还是C/S、B/S等)。它的数据交叉表、表单或报表的数据环境以及对数据库操作和管理的函数和命令是其它软件所不及的,而且它是真正的面向对象编程的工具,用它可以很轻松地创建自定义的类和COM组件。只要各位耐心地、坚持不懈地学习它,真正掌握VFP的精髓,就一定能够成为一个VFP高手,并且将来在做管理系统软件时就非它莫属了。
87 楼
佟成玉 [专家分:10] 发布于 2005-06-23 13:05:00
vfp在数据库管理方面还是可以的,我在单位编了一些工资、进销存、设备管理都还可以,必竞从dbase学起的,也不忍放下,但最近本人在搞工控,显然vfp是不行了,不得不学c了,不过整天还妄想着能在vfp找几个底层函数用一用,看来不改学别的不行了
88 楼
zhoufs [专家分:30] 发布于 2005-06-25 21:06:00
关于“read events”:
VFP 真的是个让人说不清的东西,M$从fox公司购买foxbase并开发出80年代国内风靡一时的foxpro for dos 与for windows (那个时候还是DOS下的Windows 3.1、3.2),后又随着Windows 9x的流行,陆续推出VFP 3.0、5.0、6.0、7.0、8.0,到现在又出现了9.0,但系统基本框架始终没有脱胎换骨的变化,每个新版本都是在包容老版本的基础上修修补补或增加点新东西,越来越成为一个大杂烩。就拿众所谴责的“read events”来说,你知道它是怎么来的吗?
用过foxpro的人知道,那时,建立的主程序基本是这样的:
do while .t.
do <...> .mpr
read
loop
而在菜单的退出命令中执行:CLEAR READ
到了VFP,就将上述框架简化成了一条语句:Read Events ,同时将CLEAR READ 改成了CLEAR Events 。
另外,在Foxpro for Windows 中,多个窗口的切换是很麻烦的,不经特殊处理的话,一旦将一个窗口切换到其它窗口的后面,那么再切换回来时就会发现这个窗口已经“死”了,再也无法响应用户的输入。
当初推出 VFP3.0 时(没有1.0 与2.0版本,一出来就是3.0 !),M$只考虑了兼容原来的foxpro 2.x ,而不想从此背上了一个沉重且卸不掉的包袱。要是当初彻底扔掉foxpro 2.x ,而是从整个系统架构上来个脱胎换骨(就象VB.NET),那么现在的vfp将不会是个食之无味、弃之可惜的鸡肋了。
想当初,对fox也是如痴如狂,但时代的发展是不以某个人的意志为转移的,VFP的寿终正寝,是个早晚的事,而现在实际上已经是苟延残喘了。
89 楼
佟成玉 [专家分:10] 发布于 2005-06-26 02:32:00
to 85楼
难呀,搞点东西太难了,非常同意你的观点,但是人员培训也愁死了,搞了一个进销存系统,什么多种价格,不同折扣,等等,到头来的,开错了的出库一撕,不冲帐,月末说你汇总不准,进而说你的软件水平欠火,气死我了
90 楼
wonree [专家分:0] 发布于 2005-06-28 21:58:00
8楼说的中肯!
我来回复