一、“银弹”
首先在这里解释一下“银弹”的概念,顾名思义就是银质的子弹(Silver Bullet),是古老的欧洲民间传说中能杀死狼人的利器。当然现实中是没有狼人的,但现实中确实有银弹这个东西。而其意义也类似于能杀死狼人的最好办法。现实中的狼人可以是一个棘手的项目,或者一件不可能的事。而“银弹”就是指能解决这些事的方法,或者技术手段,被比喻为具有极端有效性的解决方法,作为杀手锏 、王牌等的代称。
IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以《没有银弹:软件工程的本质性与附属性工作》(No Silver Bullet — Essence and Accidents of Software Engineering)为标题。其中的“银弹”是指一项可使软件工程的生产力在十年内提高十倍的技术或方法。该论文强调由于软件的复杂性本质,而使这样“真正的银弹”并不存在。
二、关于中文编程的争论
关于计算机编程语言的中文化问题,经常在网上看到两种相互对立的观点,一种观点是认为中国应该弄出个中文编程,“中文编程”是解决中国程序员编程效率一个秘密武器;另一种观点认为中文编程没有意义,编程所用的英文就是那么几个关键字,并不难。前面的观点主要来自于非专业编程的普通大众,后面的观点主要出自专业程序员。
我认为,这两种观点都不错,之所以产生这种冲突,主要是因为两者看待问题的角度不同。对于专业程序员来说,他们早已熟练掌握了已有的优秀编程语言,并且在语言方面也不再有多少障碍,他们需要的是更多的中文化技术资料而不是中文编程语言。而对于有编程需求的普通大众来说,他们还没有接触计算机编程或者才刚刚入门,在面对满屏的英文语句时感到使用起来很艰难,而中文编程里面的关键词和函数、变量、方法、事件等等都是中文,能够即看即懂、即用即会,节省大量时间精力。所以,对于这两种观点,我觉得不必放到对立面来,普通大众不强求程序员从现有的编程语言中转换到中文编程上来,程序员也不应该要求普通大众远离中文编程。
中文编程技术关键不是简单的程序编写和汉字标识使用,而是程序代码的编译技术必须自己掌握,编程与编译必须互为统一发展。个人认为做得好可能会是一个银弹。