摩登野人

级别:高级站友 威望:0 经验:0 货币:669 体力: 来源:湖北 总发帖数:182 注册日期:2002-06-23 |
|
查看 邮件 主页 QQ 消息 引用 复制 下载
经常可以在各个编程论坛上看到类似这样的问题:“VB还有没有前途?”;“Delphi是不是要淘汰了?”;“MFC是不是要被.NET取代了?”……其实,这些问题在被提出的当时,是没有人能给出答案的。因为一种技术、一个产品的前途,并不完全由其本身所能左右,还与市场需求、出品公司的发展方向等因素有关。而我们所应该关注的,是否就是这些问题的答案呢?我认为不是。
我们知道,世间万物由原子组成;千变万化的程序归根结底由顺序、循环、分支三种结构构成;无论VC的MFC,还是Delphi的VCL,都是由面向对象技术构建的(暂且不论其面向对象的程度)。当你拨开事物表面的表象后,你看到的,是相同的或近似的本质!而掌握了本质之后,就会发现表象的表现形式是那么的理所当然。试想,当你能象侯捷(《深入浅出MFC》的作者)那样把MFC剥得体无完肤,你还会担心MFC被某某框架所取代吗?从这个角度来说,对于一名专业程序员,编程的理念是万变不离其宗的。发现问题、分析问题、解决问题的过程是存在着某种模式的,当你掌握了这种模式后,不同的编程语言,不同的开发环境对你来说,是有共通之处的。
我认为C++是每个专业程序员所必须掌握的。当然,并不是说单纯学习其语法(甚至可以忽略一些语法的学习),而是通过C++学习面向对象的设计、编程方法。因为C++博大精深,因为C++无所不及。在C++中,你可以学习到面向对象理论的全部,学习之后,你会被C++所改造。因为在面向对象理论中存在的,但有所争议的特性(比如:多重继承)在C++中都得到支持。你只有在掌握之后,才可能作出自己的选择(支持或反对)。在掌握了面向对象的理论之后,无论C++、Object
Pascal或是Java乃至C#,你会感觉到它们的异曲同工之处。
那是否就是说开发工具(或许应该称为集成开发环境,不过下文还是按我的习惯,用开发工具来称呼)之间除了支持的语言不同外,不存在其他差异了?当然也不是。开发工具是帮助你实现你的理念的工具,也就是构建在基础理念上的上层建筑。开发工具对于你所要实现的理念的支持程度以及对实现过程的简化程度,就是开发工具的体贴度了。开发工具于程序员,犹如兵器于士兵,兵器不顺手,未战先败一半。
一直很喜欢诺基亚手机的广告词:科技以人为本!是的,“人”才是本,工具的使命是辅助人更快、更容易地达到目的。因此,开发工具也应该以人为本!
作为一名程序员,作为开发工具的最直接的使用者,我希望我所使用的开发工具真正是我的伙伴、助手,它能给我带来自由的感觉,让我自由地在代码的世界中驰骋,它能迁就我、适应我,而不是相反,给我套上枷锁!
如今在Windows平台上,有许许多多的开发工具可以选择:Visual C++、Visual
Basic、Delphi、C++
Builder、JBuilder……它们基于不同的编程语言、忠于不同的公司的产品理念,从这个角度来说,它们之间的差异是非常大的。
那什么样的开发工具才是优秀的、体贴的、以人为本的?我的标准是符合以下四点:
1、能够将要解决的问题简化,并以某种理念快速实现之
2、不隐藏任何你想知道的细节
3、可以忽略你所不想知道的细节
4、主动去适应不同层次的程序员
符合以上四点的开发工具有吗?我的答案是:有!那就是Delphi!她将一切化繁为简,却从不阻止我寻求真实。你可以在她给你构造的简化了的VCL的虚拟世界中完成任务。也可以钻进VCL的世界以探询她和现实世界(即Windows平台的真实接口)的映射关系,学习它的Framework的设计。你还可以扩展那个虚拟的VCL世界以适应自己的需要。
我为存在着这样的开发工具而感到幸运,更为幸运的是,我可以选择她,和她一起完成我的工作!(现实中,项目中使用什么编程语言、开发工具,时常并不是你个人所能左右的,会受很多因素制约。比如:客户的硬件环境、操作系统环境,开发环境,开发工具的成本、许可证等等。因此能选择自己喜欢的开发工具进行开发工作实在是很幸运的了。)
通过C++学习面向对象的理念,用Delphi去解决现实世界的问题,这是我的做法。同时也验证了那句话:学从难处学,用从易处用。
真正的程序员用C++,聪明的程序员用Delphi。那么,真正聪明的程序员用C++来理解Delphi!
|