主题:[转帖]没事转个贴,[转帖]Visual FoxPro:我是旁观者
kosung
[专家分:910] 发布于 2010-01-24 22:01:00
以下文字转自 我的帮助论坛癫侠的转贴,未经他老人家同意私自再转,敬请原谅:
Visual FoxPro(以下简称VFP)一直是开发界中最安静的一分子。走遍大小技术社区、论坛,.NET、Java一直战火不断,先是互相发难,后来甚至同一阵营中的弟兄也开始同室操戈;就连历史悠久、底蕴浑厚的C/C++社区,也偶有(甚至是常有)纷争出现。然而,VFP的社区往往有如一湾内海,无风无雨无波浪,只是偶尔有人嚷嚷着“VFP已死”、“微软不再支持VFP”,犹如向这海中投下一颗石子,才会激起小小的一朵水花;然而,却没有太多的Foxer跳出来批驳,水花就这样淡去,石子也很快沉入海底。
Foxer在旁观
在写这篇文章之前,我们先在CSDN首页上做了个简短的调查(参见首页中部右侧),题目为“您使用什么工具开发数据库信息系统”。打开调查结果页面一看,不由得吃了一惊!下面是截止到2005年4月20日上午10时许的结果:
软件 票数 比例
ADO.NET 8732.34%
Delphi 8130.11%
PowerBuilder 3713.75%
Visual Basic(VB6)3613.38%
其他 207.43%
FoxPro 82.97%
总投票数: 269
VFP的使用者数量“遥遥落后”……我辈无知,并未体会过VFP的威力。也不曾有幸结识太多的铁杆Foxer。但就各个VFP社区的情况看来,这个数字是有出入的。更多的Foxer也许根本不曾投票,他们看到这个调查,可能笑一笑,然后关掉页面干活去了——他们可能根本不在乎这个数字。
其实粗略浏览一下VFP社区,并看不出与其他社区有什么不同。大家讨论着各种各样的问题,从菜鸟级的到大师级的。少了的只是诸如“VFP和SQL孰好孰劣?”、“我已经学完了VFP,该学什么?”等“无聊”的问题——Foxer是平静的。他们在看,但他们没有说。
微软在旁观
微软是不是真的不在乎VFP呢?笔者年轻,xBase时代的事情不敢妄提。不过Visual Studio 6.0中,VFP也是其中重要的一员。然而,5年过去了,Visual Studio .NET隆重登场,却不见“VFP.NET”的踪影,不禁让人浮想联翩。然而就在这些年里,VFP7、VFP8悄然登场,甚至VFP9也在大家沉浸在.NET与Java的硝烟中时,默默地震撼着老鸟级的Foxer。
其实只要大家经常光顾MSDN Library Online,不难发现VFP的大步前进,每一版本的“What’s New”页面里的内容都不比其他被微软大肆宣传的产品要少。
我们也从不曾听说“VFP延期发布”等“耳熟能详的微软新闻”,甚至VFP在一次次地冲击着其他产品,最经典的消息就是VFP6曾在VB6发布的前两天上市。
那么,对于这样一款稳步发展的产品,微软为什么不对它大加宣传呢?来自ICXO.COM的fbilo(冯宗任)朋友翻译了这样一则故事,现在转贴过来和大家分享:
注:本文来自ICXO.COM,略作文字编辑,望作者和读者见谅。
数据库101
本文来自les pinters database journal
作者:les pinter
译者:fbilo
多年前,克莱斯勒公司研制了一种可以用来改变柴油机发动机的汽化器的工具包,使汽车可以得到更好的油气英里数。它要花费超过500美元并且还需要为了它复杂的安装而付给机修工高额的费用。机修工们也乐于出售并安装它,所以每个人都很满意,除了用户。
军队对利用计算机技术来节省资金更感兴趣,所以他们委托克莱斯勒公司研制了一个基于计算机技术的模块,只需要花费20美元,它就可以做到需要500美元并且用一天的时间来安装的那套工具包所能做到的同样事情。但是,克莱斯勒从来没有被要求把这套新的模块出售给公众,所以他们从来没有出售它。
最后,他们的大客户给他们一个建议:对工具包的电路板做一点小的修改使之在启动时能够通过美国环保署的测试。然后,在接下来的一个小时里,自动的逐步重新设置使油气消耗和污染减小到像一个烟囱那样。他们照那样做了,汽车工业卖了数万个这种东西并嘲笑美国人民。
从这里克莱斯勒就赚了十亿美元。
克莱斯勒的价格政策并非是违法的。这个政策非常完美:同时拥有两个产品,其中一个比另一个更好、更快并且更便宜,但他们不会告诉用户这一点。违法的是他们从事它的途径。这种情况一直持续到他们的贸易行为伤害了美国政府以至于美国政府介入此事为止。克莱斯勒不关心它浪费了消费者或美国人民多少钱,他们只是考虑怎么增加他们的剩余价值。
Microsoft出售两个数据库工具。其中一个是VFP,快速而便宜,并且不需要额外的花费,你只需付一次钱。另一个(套)是VB和SQL Server,需要的花费像它们的体积一样庞大并且运行得相当缓慢。VFP用户也能使用SQL Server,但是他们从来不转移到SQL Sever上去——他们根本不愿意这么做。他们从来不认为有这样的需要,甚至很少谈到SQL Sever。但是不给用户以可供的选择,他们将继续被蒙蔽下去。只给他们一种本地表达到五万个记录就会窒息的语言,并把SQL Server作为唯一能挽救他们的开发投资的途径。他们将会跟从这个潮流,他们不得不这么做。
我不知道让你的用户花费两万美元而忽略了五百美元这么做是否违法。我同样不知道推荐一个对大多数数据库项目来说据称过度结实的技术是否合法。但它看起来是错误的。
对一个公司来说,高昂的成本并不是最重要的坏事。你的竞争者也必须忍受同样的成本。在所有的商业中,被迫从低成本的技术转移到高成本的技术因而被击败是理所当然的。如果你的程序员决定使用SQL Server,而你的竞争者使用一种更好、更便宜的技术,那么你将陷入经济的劣势。如果你的竞争者和你一样做了,那么你们的成本是相同的。在你所在的行业中没有人会失去什么。
除了美国消费者。
为什么我像是整个IT行业中唯一推荐VFP的程序员?记得在大学里不要跟随潮流吗?记得含沙射影的诽谤的力量吗?“如果它那么好,为什么Microsoft不为它做广告?”他们肯定羞于谈到它。“真相是不能被掩盖的。”Microsoft知道VFP是多么棒。SQL Server的销量将会以百万美元计地减少。现在你知道故事的其余部分了。
我们是这个“善意”的疏漏的关键。为了被看作是正义的,Microsoft不能杀死VFP。但是我们能。如果我们屈服于诽谤并保持沉默,那么Microsoft赢了。我们和我们的客户、还有客户的客户,都是失败者。通过低头承认失败,我们可以被允许做出看起来像是对的一方的样子。我知道逆潮流而行是困难的。我已经被要求不要唤起人们对这个问题的关注,但我还是坚持并期待着。我希望你也那么做。
既然Microsoft不再宣传VFP,我已经有了一个用两种方式建立同样的一个实例程序的方案(不管别人怎么称呼它),我们公平竞争。这个项目没有买主。所以你自己来试验一下。选择任何一个应用程序,用两种语言来完成它,然后比较开发的结果。这是一。然后装入10万个纪录并都运行它们,比较它们的性能。这是二。最后,现在考虑配置一个SQL Sever的成本——这时唯一治疗mdb文件像冰河一样缓慢的性能的方法——当然你必须忍受像SQL Server的体积那么大的成本,然后加入一个数据库管理员的成本,除非SQL Server 7.0能够再为你节省10万美元的隐藏成本。
这不是一个竞争,这是一个智商测试。
从上面这则“有趣”(可能略带些酸味)的短文,我们不难体味到,微软这么做并非对VFP失去信心或不再重视它,而是坐在那里乐滋滋地看着大家争论着孰是孰非,然后数着手里的钞票。姑且不论微软是否违法,总之,他们是旁观者,而我们在人群里不停地上演“周瑜打黄盖”(谁是周瑜,谁是黄盖,大家心里都有数吧)。
Visual FoxPro:我是旁观者
俗话说:当局者迷,旁观者清。VFP真的好像置身事外,无论是开发它的人,还是使用它进行开发的人,都在沉默着。但是就技术而言,VFP是个不断成长的小伙子,蛮惹人喜爱的,希望更多的朋友把这位旁观的朋友拉到圈子里来,共同交流,共同成长。
草撰本文,并非推崇VFP,也不想责骂微软霸权。只是希望开发者朋友们能够正视自己手中的技术,并且尊重他人掌握的技术。口沫横飞的争吵是愚蠢的,互相切磋学习、互助提高才是学习技术的正确方法。
御键乘风来 狂笑网络间 有酒乐逍遥 无酒我自癫 一饮尽江河 再饮吞日月 千杯醉不倒 唯我笑癫侠
十年生死两茫茫,不思量,自难忘,千里孤坟,无处话凄凉;纵使相逢应不识,尘满面,鬓如霜;夜来幽梦忽还乡,小轩窗,正梳妆;相顾无言,惟有泪千行;料得年年肠断处,明月夜,短松冈
回复列表 (共17个回复)
沙发
foxdb [专家分:1830] 发布于 2010-01-24 22:45:00
感同深受,买来了狐狸没法调教就想把他灭了?买来了dos太简单了就把他搞复杂好赚钞票!楼主转贴道出了我十几年的狐狸情结,嘻嘻说真的我养狐狸也捞了不少!转的好转的好,猛顶一下!
其实MS的商业竞争策略就是把对手买下了,要不晾着他等用户淡忘了,要不就杀了他自己就可做大了......
板凳
kosung [专家分:910] 发布于 2010-01-24 23:02:00
活到老学到老,什么都要活学活用。
没有什么大了的,还一直以为中国的VFP真的不行了呢,井底之见。
生不带来,死不带去,能让这辈子过好就行了。还真没有什么可惜不可惜的。
3 楼
liupeisong [专家分:2340] 发布于 2010-01-25 00:20:00
其实VFP确实很强大,但是局限性也很明显。
我等如果作为使用者来说,如果VFP能满足我们的需求,那我们坚守它是很自然的。
如果作为开发者来说,主要考虑的是获得最大的利润,使用.NET技术或JAVA等等,能告诉客户我的东东很先进,所以应该贵一点。
但是,满足需要并不是全部,还应该考虑用什么工具最佳,比如提高工作效率、开发效率等也应该考虑!从这一点来说,不管是开发者还是使用者,针对具体问题都应该考虑工具的选择。
所以我们绝对不能仅局限于VFP这一个井口而看不到外面的整片天空。我和1楼曾经在本论坛就某个问题争论,本人就提出应该使用支持事务的数据库来解决“数据丢失”的问题(因为VFP自身不能保证这一点!),这个也是我上面的观点的一个实例,在工具或当前思路不能解决问题时就必须更换软件工具或思路了
再补充一点,使用新软件工具或换思路实际上也会有成本的,如果成本较高或客户能忽悠的前提下,将就一下也许也能对付,反正大多客户都是不懂的!
4 楼
北京惬意 [专家分:1330] 发布于 2010-01-25 06:48:00
一语惊醒梦中人!
5 楼
Q329425821 [专家分:60] 发布于 2010-01-25 23:20:00
[em15]给各位大师问好!看了这贴,实在忍不住说说我的切身感受;本人在学习编程之前对用什么语言工具一直徘徊不定,经常去看一些大师级人士所发表的有关编程语言的使用感受.然后比较确定,看自己应该学习那种语言好,结果始终没得到一个肯定的答案[em18].直到现在开始专攻网页技术才有一点点明朗.电脑包含的东西太多了,像宇宙的星系一样,每个领域都足够你为之奋斗一辈子.(对于像我一样准备踏进电脑编程行列的牛犊子来说,要用什么编辑语言这是我们要面临的第一堂课).看了此贴,受教良多.感谢楼主的分享![em2]
6 楼
kosung [专家分:910] 发布于 2010-01-26 01:33:00
要站得高才能看得远,前边的山峰还有更高的呀。
目前只有深入WINDOWS才能做好系统了,面上和各样编程工具只是不同的刀而已,因为已经不能象DOS一样自己在底层写个中断调整来处理了。所以这样只能紧跟着微软的屁股了,没有办法的呀,这就叫被垄断。搞技术久了还是要转管理和营销的。
7 楼
wuzhouhong [专家分:10890] 发布于 2010-01-28 18:41:00
VF不支持并发操作(这是基于文件的数据库的通病),现在都是网络的天下了,哪还有活路可走。
8 楼
xinjie [专家分:630] 发布于 2010-01-29 18:59:00
[quote]VF不支持并发操作(这是基于文件的数据库的通病),现在都是网络的天下了,哪还有活路可走。[/quote]
多线程已经有人在研究并提供了一些常规情况下切实可行的解决方案。
9 楼
liupeisong [专家分:2340] 发布于 2010-01-29 22:15:00
[quote][quote]VF不支持并发操作(这是基于文件的数据库的通病),现在都是网络的天下了,哪还有活路可走。[/quote]
多线程已经有人在研究并提供了一些常规情况下切实可行的解决方案。[/quote]
这话纯粹是废话,我们要的数据库本身的支持,MS都放弃不打算做了,先主推ACCESS,后来又是SQL SERVER(MSDE),难道某个所谓的高手就能解决?结果就会出现所谓的一脚就踹坏的系统(此处不再多说,以免再次引起论战,请参见本人参与的某贴)!从纯技术的角度来说,应该是根据系统的需求来选择最佳的平台(包括DBMS、OS等等),如果自己不懂该平台,则应该立即学习或聘用懂得的技术人员。
还是那句话,VFP在某些环境下是相当优秀的,但是必要时应该根据业务需求选择更合适的平台
10 楼
xinjie [专家分:630] 发布于 2010-01-29 23:43:00
首先,为8楼的言论表示道歉。我以为所引用的内容是指 VFP 程序中多线程的问题。
DBC 是一种关系型数据库,而根据数据库的发展历史来说,关系型数据库是目前应用最多、最广泛的数据库类型。包括大名鼎鼎的 DB2、Oracle、SQL Server,甚至 Access。
对于 DBC 来说,很清楚的一件事就是:现在有很多使用 VFP 开发的数据库应用系统,依旧是 F/S 架构(数据库采用的是 VFP 自身的 DBC 数据库)。依据我有限的理解,这种架构也是可以“多个用户可以同时访问数据库,甚至可以同时访问同一个表中的不同记录”(引号内内容来自网络:http://www.dzsc.com/data/html/2009-9-29/79122.html)。
很多人经常将 VFP 和 DBC 混为一谈。对于 VFP ,依据 MS 的官方说法(http://msdn.microsoft.com/en-us/vfoxpro/bb190291.aspx):
With its local cursor engine, tight coupling between language and data, and powerful features, Visual FoxPro 9.0 is a great tool for building database solutions of all sizes. Its data-centric, object-oriented language offers developers a robust set of tools for building database applications for the desktop, client-server environments, or the Web. Developers will have the necessary tools to manage data—from organizing tables of information, running queries, and creating an integrated relational database management system (DBMS) to programming a fully-developed data management application for end users.
XML Web services created with Visual FoxPro 9.0 can be consumed by XML Web service clients of Visual Studio .NET 2003 including ASP.NET, and XML Web services created with Visual Studio .NET 2003 and any other standards-based XML Web service can be consumed by Visual FoxPro 9.0.
----------------------------
Google 翻译的结果如下:
与当地游标引擎,紧耦合语言与数据,以及强大的功能时,Visual FoxPro 9.0是建立各种规模的数据库解决方案很好的工具。它以数据为中心,面向对象的语言为开发建设的数据库应用程序的桌面,客户服务器环境,或网络强大的工具集。开发人员将拥有必要的工具来管理数据?从组织的信息表?,运行查询,并创建一个完整的关系数据库管理系统(DBMS),以编程的充分发展为最终用户数据管理应用程序。
的XML Web使用Visual FoxPro 9.0中创建的服务可以消耗的XML Web服务的客户端的Visual Studio。NET 2003中包括ASP.NET和XML Web使用Visual Studio。NET 2003和任何其他标准建立了服务的XML Web服务可以食用由Visual FoxPro 9.0中。
----------------------------
从这里,清楚的表明了 VFP≠DBC。
没有人规定使用 VFP 开发数据库应用程序必须使用 DBC 数据库;也没有人规定使用其他语言开发数据库应用程序不能使用 DBC 数据库。
所以说,“还是那句话,VFP在某些环境下是相当优秀的,但是必要时应该根据业务需求选择更合适的平台”这句话并不那么的严谨。
游客一名,仅为商榷。一家之言,一笑了之。
我来回复