我也常常看到“MFC永远不会过时”或者“C++是不会灭亡的”这种发言。我理解发言人的心情,不过这种说法绝不客观。一种语言也好,一个ApplicationFramework也罢,它们之所以有今天的地位,并不是纯粹自然形成的,有许多复杂因素的作用,也有时势造英雄的理由在内,所谓“居高声自远,非是籍秋风”是也。历史的舞台从来不是为某人专设,即使真有所谓万古长青的怪胎,恐怕也正应了那句老话:“众人都死了,只剩咱们两个老妖精,有什么意思!”我们现在使用的语言,不论Basic,Pascal还是C++,甚至如日中天的Java和C#,终究都会有功成身退的一天。这并不是我们的损失,相反,薪尽火传,一种语言中好的,合理的因素,肯定会被后续者所继承和发扬,自然界的新陈代谢本该如此。
天空没有飞翔的痕迹,而飞鸟已经飞过。一种语言只要曾经在历史上留下浓墨重彩的一笔,完成它“为先贤继圣学,为万世开太平”的历史使命(有点夸张),这就够了,何必缠绵不舍作儿女之态!不知道我有生之年会不会看到C++的消亡,如果真有这么一天,我会拍手欢呼,因为这说明已经有了另外一种更新更好的语言来代替它(或许是几种)。不过照我猜想,像C++这种轰动武林惊万教的语言,其灭亡恐怕也不会是悄无声息,而多半属于“始皇既没,余威震于殊俗”那种情况。
最后请允许我发表一点感慨。语言的优劣其实是一个无需讨论的问题,个人的经历和所处环境在很大程度上就决定了你对某种语言的看法,这是很个人的东西。好比碰到一位法国朋友,他多半会自豪的告诉你:法语是世界上最好最优美的语言。对这种说法我会微笑表示赞同,并且欣赏他的民族自豪感,而不会觉得这是对汉语或者英语的贬低—虽然我心底里一直深信,汉语才是世界上最好的语言。当然,如果他对我说“你们那些破烂中文是些什么玩意”,那我可能就是另外一种反应了。
说了这么多,意思无非是想少些无谓的争论罢了。常在论坛上看到“XXX是最好的语言(编译器),XX是什么东西”之类发言。我不想和他们争论,一个人对一样东西既然完全失去了接触和了解的兴趣,那么说什么大概都没有用了。只是觉得遗憾而已。人世间的隔膜与误会,大多是由于彼此不了解而引起,而多少悲剧正是由此而发生呵。在编程的世界里大概不会这么严重,不过言为心声,多少也可看出个人的品行。如果某个人A常在我面前说B的坏话,那么我对B不会有恶感,相反我对A的印象分要减去20。自己不了解的人或者事,不管,不说,也就是了。何至于恶言相加呢。
我参加工作的时间不长,各种各样的软件工程师倒是见过不少。就我看到的情况,程序员实在是很沉默寡言的一类人,平时总是表现的温文尔雅,有时候却难得的能见到他们大发脾气,扔鼠标,砸键盘,捶显示器,干什么的都有(这种情况多半是遇到没有办法除掉的Bug了)。面对亲人和朋友的时候他们有时候会选择长久的沉默,只有坐到机器前面时才会发现他们的痴迷和狂热。虽然普遍的不善言谈,但是他们似乎总能在游戏或者网络中找到发泄的方式。所以我在各种各样的论坛上看到语法错误不忍卒读的文字,看到互相指责乃至于人身攻击的情况,甚至看到许多不雅的词汇,虽然心情无论如何愉快不起来,但是我想我能理解。只是,我仍然感到担心,毕竟程序员这一行干几年就了不起了,而人生还有很长的路要走呢。没有一个健全的心态,没有足够为人处世的技巧,30岁以后的人生该如何把握呢?