我所认识的C++

我是C++程序员,不适合评论其他语言如何如何。如果你是Java或C#的高手,听我偶尔提到几句Java、C#的言论,对的地方,请肯定一下;不对的地方,就当笑话好了。我肯定不是Java或C#高手,也不想成为。我的关注点,永远是C++。因此,Java或C#是好是坏,让精通的人说吧。我就再提提C++,以及我所认识的计算机语言。

为什么要有计算机语言?有人说是为了编程,有人说是为了与计算机沟通,也有人说这是计算机文化的一部分。在我看来,这些都对。不管观点是什么,本身是没有高下之分的。譬如“我”是一个数据分析员,在我的面前有一个数据库,它存储了我需要的数据。那么我使用SQL语言去查询,或者编写存储过程去做数据挖掘。无论如何,我的目的都是数据分析。那么,即便我如何偏爱SQL语言,如何精通它,我也只是将SQL当成一种工具,它并不比我以前使用的算盘、计算器等更特殊——“一种工具”,如此而已。所以啊,即使有人说SQL语言如何如何好,对我而言,无所谓吧;如果有新工具,用起来更方便、更合适,那我就把SQL淘汰吧,就象之前淘汰算盘一样啦。同样地,也有人把C++当成一种工具的;对于这些人,没必要宣传C++有多好吧;因为,对于说SQL语言如何如何好的人,我也只是给他一个善意的微笑而已。客户与同行,很本质的差别呢。

当我不再仅仅是C++客户的时候,我便不满足一种工具的定义了。C++是什么呢?很难回答这个问题的,只有深入地去接触她。深入地去接触,单单使用是不行的,使用只是客户的行为而已。就象你用三个月编了一个软件,给你的客户使用。如果你的软件质量高的话,他可能会用很多年。但是他的理解会超过你吗?不可想象(除非他是黑客,呵呵)。所以,我还要进一步去认识C++——去读她的历史,去解析她的内涵,去领会隐藏在她下面的“道”。渐渐地,我把握到了C++的核心——编译器!是的,就是编译器。计算机语言是什么?就是编译器啊。这就好比有人问:软件是什么?就是代码啊。编译器是语言的实现,没有编译器,语言就没有实现,因而就不能称为语言了。C++的历史,就是从第一个CFront开始的。当然时代变化得很快,当我们再提软件、再提软件工程的时候,渐渐地不把代码当成最关键的东西了。“设计第一”、“测试驱动”再到“软件工程就是需求工程”——呵呵,一切都是市场经济,程序员要没饭吃了。但是,我要说,在计算机语言领域,至少是在C++语言领域,编译器是占决定地位的。C++为什么没能建立一套形式化的数学体系?编译器做不到(要做到就要损失很多灵活性以及许多已提供得特性了);C++为什么没有提供自动垃圾清理?编译器做不到(要做到就会变得笨重并损失效率了);C++为什么没有支持完全的面向对象?编译器做不到(要做到就不能支持其他的编程范型了)……编译器做不到,所以C++也做不到。可是为什么编译器做不到呢?写C++编译器的人不会比其他人差吧,象LISP、象Java、象Smalltalk,它们都做到了,C++却做不到吗?是的,任何一项都很容易做到,正应如此,任何一项都做不到!C++太强大了,因此她也太弱小了!她的能力,因为她所支持的东西,而达到了极限!这是编译器的极限,是程序员的极限。C++,就是“一种极限”!!在C++诞生之日起,她就想成为对程序员而言,最有用的语言。因此,她就一直身处探索能力极限(计算机的,和人的)的最前沿上。“做不到因而不做”,其潜台词其实是——“能做到的都做到了”。所以,C++提供了最大的灵活性、最可能的效率、最多的编程范型……她的目标,从来不是满足一个特定的需求,而是满足所有的需求。因为这个目标,所以她达到了,只属于C++的极限!这也是她很吸引我的重要原因吧——每每都有新的发现,每每都似接受指导。如果想在编程领域所有成就,C++语言就是最好的路标——因为,当你能和她并驾齐驱时,你已站在了时代的颠峰之上!

当然,C++不是唯一的计算机语言,C++群体,也不包含所有的程序员。C++所达到的,也只是所有C++程序员所能达到的极限吧。所以我说“时代的颠峰”,一定会有人出来驳斥的。但是没关系,我不会去说C++群体占多少多少比例,我不会去说C++群体中有如何如何优秀的人。这些都不重要。真正重要的是:C++,为什么能够成为“一种极限”?很难回答的问题,但是却很好明白:看看吧,看看C++的缔造者是怎样写CFront的(不是指写CFront代码,而是指定义并实现C++语言的过程)!看看吧,看看C++的前驱者是怎样写Boost、ACE和STL的!看看吧,看看C++的爱好者又是怎样使用、理解并研究C++的(比如研究C++与软件工程的关系)!如果这些你都看到了,你就不难理解,C++能够达到她的极限,因为她是“一种理想”,是所有C++群体所共有、所分享的一种理想——将C++做到最好,同时也将自己做到最好!!!因为有这种理念的存在,那么即使现在C++的颠峰不是时代的颠峰,那么将来的某个时候,一定会是的。

因为我没有深入接触过其他的计算机语言,所以我不清楚是否有比C++更好的语言。我只能说,如果你有和C++类似的理想,那么请加入C++群体,她不会让你失望的;或者你想挑战一下个人的极限,那么也请尝试一下C++,她可以满足你的愿望;再或者,你只是在某方面需要用到一门计算机语言,那么不妨就用C++吧,虽然可能有更合适的,但C++不会差到哪里去。呵呵,我不是喋喋不休的推销员,我只是试图让你知道C++,从而多一种选择而已。

PS:还有要说一句的是,如果想开发真正的中国人的计算机语言,那么一定要学习一下C++。我们的理想可以超越C++的理想,我们的语言也可以超越C++。但是我们不能自大,自大到藐视对手的程度。如果真正的中国人的计算机语言一开始就以超越C++为目标,并且努力的去做,那么我愿意支持她,哪怕她在一定时期里还达不到;否则就没什么可说的了,在我眼里还配不上“真正的中国人的”这个伟大的称谓。总不能闭关锁国落后于时代吧,呵呵。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值