第七题-如何看待"中文编程"
银色子弹,或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹。在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人等超自然怪物的特效武器。后来银色子弹常被用做致命武器的代言词。被比喻为具有极端有效性的解决方法,作为杀手锏、最强杀招、王牌等的代称。
IBM大型机之父佛瑞德·布鲁克斯在1986年发表的一篇关于软件工程的经典论文,便以《没有银弹:软件工程的本质性与附属性工作》 (No Silver Bullet — Essence and Accidents of Software Engineering)为标题。其中的“银弹”是指一项可使软件工程的生产力在十年内提高十倍的技术或方法。该论文强调由于软件的复杂性本质,而使这样 “真正的银弹”并不存在。
那么“中文编程”是解决中国程序员编程效率的秘密武器,它是一个“银弹”吗?
我的看法是:它不是一个"银弹"。
中文编程(或者称为中文编程语言)是指使用中文来书写的程序设计语言,其目的是为了减少对英语的学习,将精力集中在程序设计上,并且便于程序交流和代码维护。对于”中文编程“这个想法,对于大多数中国的程序员来说,无疑是相当具有吸引力的。“中文编程”开发的意义有以下几点:首先是语言问题,英语毕竟是外语,哪有自己用了十几年甚至几十年的汉语用得顺手;其次是文化差异,中国人的传统文化和外国人的还是有相当一部分不相同的,传统习惯总是很难改变的。
1、编程是一种实现功能的逻辑编写操作,为解决功能性与需求性,能否实现主要在于代码设计与方法,语言作为一种表现形式对编程的影响并不如前者大。
2、中文编码相对于英文编码,所占的体积远比英文编码要大,对于一些对空间、时间要求较高的编程要求,英文能更好的实现。
3、程序员作为全球现代社会流行的行业,多国多人共通语句很好的有利于编程技术的发展,而英语作为全球最通用的语言,作为编程的全球通用性最强。
4、中文文字的输入不一定比英文文字要迅速,在很多时候,英文单词比中文词组要输入得快。
接着我想说明一个大家容易忽视观点——中文打字是远快于英文打字的,即便用拼音,本身中文精炼篇幅短,基本上是英文的三分之二甚至二分之一,而且中文输入法充分利用计算机的处理能力,词组整句输入。拼音打字每分钟150字,五笔每分钟200字不算神,从信息量上来说,200个汉字能表达超过1000个拉丁字母的信息量,试想下,一秒钟能打十几个字母的英文打字手,你见过么?而中文输入150字/分的人,称其为录入人员那都侮辱了这个职业!。但是,这种快速是有前提的——1.必须是大篇幅的通顺文章;2.不能中英夹杂或者有太多的符号、格式。而编程语言无法满足上述两个条件,从自然语言的角度,编程语言是狗屁不通的,从格式上来讲,编程语言的有代码格式,有运算符等各种符号,光是输入法切换就很麻烦了!
其次,就“银弹”而言,我个人拙思觉得是不现实的;想要根本上提高效率在短时间内,能够不断顺应用户需求,持续满足日益多变,不断跟新的需求关系,“根治”一般的在短时间内仅靠“中文编程”这样的技术实现与改善中国软件领域生产力的状态不大现实;在运动发展的世界里,尤其日益需求不断跟新多变,生命周期短的IT技术产品领域,这样的“银弹”观点,个人觉得不是很可行,很难做的到!其造成阻碍因素,个人觉得有如下几点:
1、就传统软件工程生产发展而言,依管理学软件工程开发角度看,软件工程=管理+技术,也就是通过科学有效的管理手段尽可能在软件开发过程中消除软件危机,开发高质量的软件满足用户!因此,从软件开发生命周期中,从软件开发项目的简历,问题分析定义、可行性分析、需求分析、概要设计、详细说合计、编码、测试、运维这8个阶段中就在开发过程中进行了科学的管理和软件危机的消除,虽然在各个阶段所用到的瀑布模型,原型模型,螺旋模型,增量模型,喷泉模型等极大的额改善了软件开发过程中管理质量问题,但是仍旧满足不了,日益多变的用户需求、市场需求,同样改变不了软件生命周期短的问题,生产效率低下等。
2、就软件工程目标定义而言,软件工程项目发展的木板是根据项目给定的成本、进度下,开发具有可修改性,有效性,可靠性,可理解性,可维护性,可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品;也就是说,在追求软件开发中主要满足客户需求外,还得满足软件自身BUG的尽可能避免,追求高效的时候还得保证质量,可复用,延长软件生命中后期,然非如此,市场的多变因素,需求的多变,开发人员的局限并不能使软件按照要求无BUG的开发,实现自动化生产,难免出现BUG,甚至软件危机,即使通过“汉字编程”可以解决软件工程项目开发过程中效率,也达不到理想无BUG,全面满足开发者及用户需求的软件;
3、计算机技术发展至今,已经成为了多元化技术的一种统称。计算机的软件工程技术是目前应用最为广泛的技术,也是发展最为迅速的技术。计算机技术应用于网络、工业、医疗以及教育行业等,成为了主流的应用型技术,并且在一定程度上推动了原有行业的发展,实现不同行业的协同发展模式。但是,在最初的计算机设计中,其主要的作用就是为了进行数据计算。计算机数据处理技术运算速度也造成了影响因素。
综上所述,这些因素就我个人而言其次,就“银弹”而言,我个人觉得是不现实的;想要根本上提高效率在短时间内,能够不断顺应用户需求,持续满足日益多变,不断跟新的需求关系,“根治”一般的在短时间内仅靠“中文编程”这样的技术实现与改善中国软件领域生产力的状态不大现实;在运动发展的世界里,尤其日益需求不断跟新多变,生命周期短的IT技术产品领域,这样的“银弹”观点,个人觉得不是很可行,很难做的到!