标签:
本次作业我选的是教材上的课后作业:
1.6 Dijkstra曾经提到:
"Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accept as its charter ‘Howto program if you cannot.‘ "
软件工程是不是教那些不怎么会写程序的人开发软件?你怎么看?
在教材中我了解到: 软件=程序+文档 ; 程序=算法+数据结构。而工程的概念我在网上搜索到的内容为:工程是科学和数学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以最短的时间和精而少的人力做出高效、可靠且对人类有用的东西。将自然科学的理论应用到具体工农业生产部门中形成的各学科的总称。--工程_百度百科。所以我认为如果只是教人写代码则只教了“软件”,而软件工程则还需要教人怎样“以最短的时间和精而少的人力做出高效、可靠且对人类有用的东西”,即教会我们怎样构建开发环境,怎样以更好的方式来完成开发。
1.8 有人认为,“中文编程”是解决中国程序员编程效率的一个秘密武器,请问它是一个“银弹”么?
我认为中文编程不是一个“银弹”。
虽然中文编程看上去很理想,但是中文的语义以及语法和英文在一些句子中的差别很大。每个汉字都有着很多的意思,所以在中文里对于词的定义是要视情况而定的,而在英文对于词的定义则比较简单。比如,中文的手机用英文表示为phone,而苹果手机英文表示为iphone,而且如果由中文逐字翻译的话为applephone,这让我觉得在编程时会难以定义字节的数量。
然后是关于中文和英文的词语的歧义。比如我曾经看过一个笑话,叫:
Why you‘re so stupid? Because
There is nothing right in your left brain,
and there is nothing left in your right brain.
这个笑话就是通过一个英文单词多个意思来制造笑点的,同时中文也有类似的歧义,比如医院的”非本科人士不得入内“(这个是我百度来的,可百度搜索由歧义造成的笑话),其中的本科既包含这个科室的意思也包含本科文凭的意思。所以我认为在使用中文编程时一个程序员写下来的代码在经其他人员(比如语文成绩不好的)阅读时可能会因为语义的差别造成对程序的误解从而影响编程。其实在英文编程中对于原本英文出现的歧义是怎样解决的我没有仔细的去了解,如果英文歧义的问题能解决那么中文歧义讲道理应该也是可以解决的。
最后,我查看书上给出的参考资料的第一条(参考资料)时,发现中文编程实际上是改变了一些命名的方式,这确实是很大的进步(至少对于连简单的程序都不会写的我来说是),但是这对于整体的编程环境来说改变并不是太大,所以这并不能改变整体的编程的思维和方法。
综上所述,我觉得中文编程不是一个“银弹”。
标签:
原文地址:http://www.cnblogs.com/2013551725ll/p/5296680.html