和许多80年代出生的人一样,我的童年是在“电脑是高科技人员的专用工具”的想法中度过的,接触的第一个有CPU的东西是插卡的电视游戏机。后来“学习机”风行那一阵,忽然意识到,游戏机绝不仅是一种家用电器那么简单,它不是一个孤立的物体,而是一个不可思议的“体系”,这“体系”的背后隐藏着一种多么玄妙的东西。当我编出第一个“F-BASIC”程序,算出一道简单的数学题的时候,就隐隐意识到,尽管我对这个“体系”还一无所知,但它,也许就是我这辈子的归宿。这话一点不夸张,那年我上小学3年级。
后来我迷上了BASICA,迷上了长辈留在书柜里的IBM-PC,DOS,UCDOS和FoxBase,渐渐明白了.bat文件的作用和True BASIC比BASICA的优点。我为掌握了DIM的用法而欣喜若狂,动用无数的纸张写下了我最初的那些代码。我的第一个项目是供两个人在DOS屏幕上玩的五子棋,没有智能,只是电子棋盘。我为用各种GOTO语句把代码从102行压缩到76行倾注了无数心血,后来又进行了从BASICA到QB的,我的第一次代码重构,从而进入了结构化开发的正轨。当年厚着脸皮在有电脑的女朋友家调试程序到人家的睡觉时间而招致的抱怨,和削尖脑袋找机会到同学家玩一下Windows 3.1时人家无奈的表情,都记忆犹新。
上高中的收获除了发现CCED是个酷得一塌糊涂的软件之外,还发现即使是最新的QBASIC也无法满足我的想像力了。那段时间我如丧家之犬一般寻找另外的更好的编程语言,结果积累下来的C,C++,Foxpro,Fortran,VB,Pascal等一堆语言的零星知识让我到现在还受其恩泽。也就是那时,我遇到了第一个让我能爱得像爱女朋友一样的语言,Pascal.从Turbo Pascal到Delphi,我就这样进入了面向对象的天堂。
从此后我的成长过程已经没什么新意了,拜应试教育所赐,计算机荒废了好一段时间,但Pascal语言在我心中居然没有淡忘,还结了几个小果,有次纯属好玩,做了个“扫雷”游戏的外挂,当这个不起眼的小窗口在同学们眼皮底下做出“初级:1秒,中级:1秒,高级:4秒”的好成绩时,我也就成了他们口中“我有个哥们老厉害了”一类话中的主角。
大学给我的最大教育之一就是你小时候再早开窍再牛X将来一不小心也要泯然众人矣,所以我小心翼翼的抓紧提高自己,研究些Java,.NET和C++,以免将来被淘汰。学C++有点偶然,我对“真正的程序员用XX”之类的话并不在意,但真的很在意老婆对C++的执着,这在女生中可稀罕。为了给老婆恶补“一碗水”的C++,我也开始为自己的“一桶水”而开始恶补。于是第一次对“标准”有如此强烈的认识,第一次叹服于boost库的强大。那时我几乎要决定放弃Pascal而改投C++门下了,想在Delphi版混到四个三角就转去C++版定居了。然而,刚做完一个通用词法分析程序后,忽然发现,在C++程序中充斥着的尖括号和它们所带来的强大中,那种如Pascal般从容的美感,已经久违了。我感到自己挖空心思拼凑尖括号所带来的那一点强大,与我付出的劳动是如此的不成比例。不禁怀念起Pascal的简洁,它没有那些功能,当初用它编程的日子也丝毫不觉得束手束脚,反而更加惬意。我还没有觉得这是一种落伍,我并不排斥新技术,只是有个信念,将来若Pascal实现了泛型和别的什么特性,也不会像C++那么繁杂,而是以一种更优雅的方式,这是个理念的问题。
当我带着怀旧的心情想把词法分析器用Delphi重写的时候,忽然感到了一种前所未有的恐惧:尽管现在的正则文法处理部分是自己手写的,但将来做大一些的项目的时候,我还要从头发明轮子么?那么,我用哪个程序库?
体验一下C++的世界里若Boost,Qt,wxWindows等优秀库忽然消失的感觉,我还能做什么实用的东西?我一辈子只能做系统底层了么?
这个问题乍一看有点好笑,因为Delphi正是以程序库出色而著称的,有多少人一提图形界面脑中就只有VCL。然而,我面临着这种情况,在Delphi中找不到一个官方的,或称为标准的,业界广泛使用的正则表达式处理库!对比一下STL甚至Java以及.NET的类库(不止图形界面部分),我忽然觉得,Delphier们最引以自豪的程序库原来不过尔耳。C++的标准库功能也并不多,但很轻易就能找到一大堆业界普遍认同的“亚”标准库,总有适合你的。但Delphi呢?难道我们只能寄希望于各个半娱乐网站的“火热源码控件下载之Delphi部分”?
也许有人还要提D8对.net的支持,然而,在D8上,我是有史以来第一次对Delphi有了得用“绝望”来形容的心情。那还是Delphi了吗?就算将来.net要完全取代Win API的地位,且不说那一天还要多远才到来,只是操作系统天底下只剩Windows了吗?怎么没见C++把.net平台纳入不可或缺的标准?都说BCBX根本不是面向老BCB用户的,难道D8倒像是面向老D7用户的?也许,从一开始,Pascal语言就走上了与C++不同的一条路,它没有中立标准(有了ISO也形同虚设),成了Borland的私有财产。这同时也严重的限制了自身的应用领域。都说C++代码效率高所以应用面广,比如嵌入式和底层,可要知道,论效率Pascal和C++是不相伯仲的,甚至某些地方有过之无不及。可能由于历史上的机遇,Pascal开始走向了没落。随着Delphi兴起,人们些许还看到了一点希望,然而随着VCL变成了没有灵魂的僵尸VCL.NET,这点希望也越发渺茫起来。
抽去了灵魂的Delphi,沦为了.NET的亡国奴的Delphi,和C#等新生代语言相比,有什么优势和特色可言呢?C++er们可以理直气壮地鄙视__gc,因为他们不只靠Windows吃饭。而Delphier们呢?如果Pascal语言当初就不是Borland一家所有,又会怎样呢?可以想象,今天大家都会在用着工业级强度的,著名的boost for Pascal, ACE for Pascal, 至少也会有个“PFC”,他们都是跨平台的,可以支持.NET,但不是必须支持它才有活路。而我,也可以信手拈来boost.regex, boost.spirit来构成我的Pascal的词法分析器,而不用来发这篇帖子了。
谁能拯救Pascal?这个问题在我脑中盘旋良久。我上网找真正不属于哪个企业的ISO Pascal标准文档,可找到了又怎样?我一个电脑技术不发达国家的穷学生,能做什么力挽狂澜的事?也学Linus发起一个Pascal标准库项目?
世界上和我一起热爱Pascal的人应该不会太少,我们又能做点什么,来让我们不至于为我们热爱的语言的未来而担心?ps:
一宿没睡,写这个帖子,真心希望大家一起谈谈这个话题。这是我在CSDN发的最长的贴子了,放了少有的100分,如果我的等级允许我给更多的分的话,我会给有史以来的最高分,这值得,因为,世间让我热爱的东西本来也不多。

解决方案 »

  1.   

    何必杞人忧天呢,各个开发工具都有它的独特之处,我们用的到的只是其中少而又少的一小部分,不要强求某种开发工具能够满足你的所有要求,一通百通,各种语言都是相通的。我相信borland的老板们枣就把他的前途研究的比你还深,delphi之所以能够从1发展到9,是广大爱好者对他的支持和鼓励,最近经常在论坛上看到关于什么delphi没有前途之类的话,这种人我不知道一天到晚研究写什么东西,到底写过多少代码,就知道哗众取宠,我虽然来到csdn才2个月,但是我觉得前辈们整天用这些话题,真的很无聊,如果感觉delphi不好,大可以转行啊,觉得c++好,绝对没人阻止你,但是也不要说delphi的不好啊,这不是给我们爱好者难看嘛,说他那么不好,但是我们还在用,简直就等于说我们傻啊~~~
      

  2.   

    哈哈,我不像楼主那样悲观!我倒是挺看好Delphi的!
      

  3.   

    记得大一的时候开的“高级程序设计语言”课程上的是清华的“PASCAL程序设计”,当时很不理解学校为什么没给我们开C语言。刚开始学习时老是觉得那一对对的begin和end实在是难敲,不区分大小写的语法也不严谨。可是学着学着也就习惯了,大一的暑假在书店闲逛时如获至宝地发现竟然还有Delphi这样强大的IDE存在,可以快速地开发Windows应用程序,记得当时就迫不及待地买回了D版的Delphi 5在自己的PII 233MHz上用了起来,感觉真爽,那时做的程序是把自己在TP上写的作业都移植到可视化的窗口程序中。接下来还用过D6和D7,感觉都还不错,甚至因为对Delphi的喜爱而用过一段时间的C++Builder 6,可是最后还是回到了D7的怀抱,因为发现了其实Delphi的语法更优雅和编译器的迅速。
    Delphi如今已经伴随我度过了本科阶段,现在读研还在用它(开发串口通信程序),感觉已经离不开它了。而且感觉如果不是在很底层的应用,Delphi完全可以胜任。
    本科的毕业设计是用C#写了个ASP.net应用,觉得.net框架确实好用,可以大幅度地提升工作效率。
    可是Delphi毕竟是Windows环境下的RAD工具,必然的要跟着MS的步伐走,向.net的移植我认为是不可阻挡的趋势,虽然我没用过Delphi 8 for .net,但是已经知道有很多语法上的改变,但是我觉得和VB.net对VB(ps:个人十分不喜欢VB的语法,没有;,换行还要加个_)的变化比起来还是比较少的。只是衷心希望Delphi能一路走好。
    最后我也提一下Delphi的2个缺点,一个是不能向下兼容,另一个就是D7没有D5稳定。
      

  4.   

    哇基本可以做为自传来写篇文章了,可以卖钱哦!   哎我也是个废物     从大学才开始接触PC    哎学计算机专业很吃力,毕竟我们是从农村来的,哪里有电脑哦!只好每天去电脑房玩玩了,但是我也会了几种语言,嘿嘿比如PASCAL,C++,VB是自学的,就这样现在又1在学ASP。NET和JAVA
      

  5.   

    楼主的担心不是没有道理,但所谓高科技的电脑就象春天的天气,变起来快。MS同样也牺牲了她的dos程序员,想一辈子靠某种语言谋生怕是不可能的。以本人而言,我只是个Delphi爱好者,看看Delphi用着爽,就用了,相信还会出现D10、D11...或D别的什么,就象pascal经过若干年摇身一变成了D什么一样。经常看到此类议论,也想说两句,对高手来说可能是担心自己的前途,也可能是真的关心自己的至爱,但其负面影响是你把初学者都推向了其他语言,让他远离Delphi。我不想说什么语言更好,其实没有什么更好的语言,每种语言都有她的优缺点,对于初学者来说我认为Delphi更合适些,她就是你当年的BASIC,她的前途有Borland/inprise为她描着呢,用不着我们为她干着急。
      

  6.   

    其实现在C++的处境也很惨,很大一部分C++程序员已经被C#吸引过去了!
      

  7.   

    刚学Delphi又开始,谈它的命运了!
      

  8.   

    感谢大家的发言!
    说明一点,我是土生土长的Delphi版的人啊,不是C++那边过来踢馆的,确实,和这里的很多人相比我都足以称为“没写过几天代码”,也许真的没有资格对Delphi的前途妄加评论。但摆在眼前的问题是,我有什么好的库可以用?我遇到了切实的需求啊,如果说连没有典型的regex,容器,或serialization机制,没有典型的跨平台的图形库等等也可以称为“各有所长,各有所短”的话,我无语。我不鼓吹初学者离开Pascal,正相反,希望更多的人喜欢Delphi,发展Delphi,体验她的美。如果现在有个Pascal标准库的开源项目的话,只要我水平够,我第一个就参加。与C++的标准化和强大的第三方库支持相比,我觉得Delphi太需要迎头赶上了。
      

  9.   

    支持楼主的一片热心!
    什么全都顶类的开发语言没有,PASCAL确有改进的地方,不过可以混合编程嘛.
      

  10.   

    我相信PASCAL的前途是无量的。
      

  11.   

    我晕,可见楼主的眼光过于狭隘,计算机语言永远只是使用计算机的一个平台而已,一种语言不能够满足自己的需求那就换一种来用呗,语言是手段,应用才是目标,应该是目标决定手段,不应该让手段来束缚自己的目标。例如在windows下面做界面,不同的gui库很多啊,如果你觉得那种最适合,做出来的东西最好看,而且开发的周期不长,代码直观简单那你就用它呗,管他用什么语言?呵呵~~~~最近我使用flash+Action script来做应用程序的界面,感觉绝对比MFC的东西漂亮,于是就开始学Action script了,效果真不错呢。所以不应该畏惧其他什么语言,应该勇于学习,才是搞计算机的窍门
      

  12.   

    前面好像那个兄台说楼主杞人忧天,我觉得也是!既然你懂那么多东西,那么你就要秀出来呀!光在那边呻吟有什么用呢!delphi就用的很广呀!你似乎不是觉得pascal渺茫,你是对所有的语言都渺茫,更重要的是你对你自己的前途,我觉得是你对自己的潜力渺茫!你期望达到某种境界,可以你就是差一个在高峰拉你一把的人,所以你再含沙射影,这样何必呢?冷静一点,想想,你为什么会被程式语言控制!没有赢得全世界,输给了自己!GOOD LUCK!
      

  13.   

    刚知道Delphi2005中还是支持Win32,消息还是欠了点灵通^_^觉得这还算是个好消息,因为知道VCL还会作为一个有自己的灵魂的事物活着。这可是我知道的唯一的Pascal语言的重量级准“标准库”啊,也许Borland真不会像我想的那么不争气,毕竟城市Delphi在古希腊被认为是世界的中心,Borland不会放任被自己寄予“成为编程开发的世界中心”的厚望的产品走向没落的。也许我真的有点杞人忧天,哈哈,不过最希望的还是Borland尽早出一个成熟的正则表达式控件,须知即使如VCL般强大的库,不发展也会落后的。C++的库由第三方提供,诚然功能极强,然而一家独断,缺乏标准的东西,也不见得就不可能强大,比如Java的库。实际上,Delphi的库和Java的库甚至.NET的库都算是差不多出自同一群人的手笔吧,思想上具有同样的先进性,应该不会那么容易落后的。还是祝福Borland和Delphi吧。再次感谢每一个朋友的的热心回复!
      

  14.   

    大家不妨看看这篇文章
    http://www.delphifans.com/InfoView/Article_22.html
      

  15.   

    为什么要讨论这些,我从今年七月接触DELPHI7,目前已参与了一个大型的数据库系统开发,
    做组件20余个,再做拼装,不是RAD那个做法。现在正开始用delphi 8 for .net开发web 服务
    器端的系统。有什么用什么,需要什么学什么。
      

  16.   

    我用了一段时间.net(c#)不觉的有什么先进的,也不觉的它是如何如何的好唯一的优点就是让一些不了解基础知识的人也可以编出人模狗样的东东--软件开发的悲哀其实,我憎恨.net,一个不伦不类的东西,但是我不得不继续使用它,因为我要谋生始终支持delphi!!!!!!!!!!!!!
      

  17.   

    其实版本的更替,就是一次次的重构,
    一次次在现有的架构中缝缝补补,
    是对新技术和现有东东的拼凑、妥协的产物。
    当不兼容到某种程度,就要破茧而出一个新的语言了:
    C发展到面向对象:产生了C++;
    兼容使得有君曰:C部分是C++最丑陋的部分!
    最后产生了一种相似的语言,但是却没有了与以前兼容要求的JAVA;
    屡受向前兼容之害的MS,不是推出了新的架构.NET,
    产生了一个集合了众语言优点的C#么!
    DELPHI何尝不如此!
    开始是object pascal(提供的框架VCL,一个某种意义上设计完美的产物);
    现在.NET来了,语言改成了DELPHI.NET
    呵呵,D7和D8,只可说是IDE相同,其实他们的语言(OR内核的思想)已经变了
      

  18.   

    我也是Pascal信徒,我很喜欢Pascal,也很喜欢C sharp