孟岩先生是本人非常尊敬的一位学者,尽管似乎不从事职业的开发工作,但是在C++方面有极深的造诣,在很早的时候就在国内C++技术社区推广真正的C++技术。在长时间的潜伏之后,孟岩先生宝剑再次出手,开始持续更新其在CSDN的博客。近日,在最新的一篇博客上,他谈到一些关于C++的思考和评论。由于文中涉及的点非常广泛,很难在文后的评论中一一论及,所以专门撰此文。就几个问题请教与孟先生。
第一个孟岩先生提到的所谓共识是“软件开发方面真正有价值的进步,应当是有利于用户、有利于项目管理、有利于解决领域问题,而不是有利于程序员”,似乎不妥。原因在于,程序员不是独立于“用户”,“项目管理”和“领域问题”的,相反,这些全部都是软件开发生态的一部分,而程序员是其核心。为何这么讲?因为是程序员是实现着一切。如果不能保证程序员在其中的关注度(或者利益?),程序员很容易转业到其他行业,而整个软件行业很快就会被淘汰。文后所举的例子,诸如使用汇编代替机器语言,从用户,项目管理以及领域问题的角度看来都是透明的。技术的进步都是首先是的程序员得到实惠,然后导致成本降低,从而用户得到实惠。由此也可见,他们是并生关系而非对立。孤立地从有利于什么的角度来使其对立起来,只能导致混淆和错误。
第二个是文中举的一个例子。孟岩兄认为,类似于操作符重载这样的技术带来的坏处远远大于其好处。对这样的观点真是遗憾。因为这个是非常技术的观点,我试着从几个方面来阐述之。
1) 从人类的认知角度考虑,一致的符号系统非常有利于快速理解接触全新的东西。这是使用基本的*,+,-,/等操作符,