快速业务通道

冒号和他的学生们(连载17)——语言讨论 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
不如扬长避短。”

引号顺势道:“按这种说法,编程语言的发展史就是一种批判史咯?”

冒号祭起辩证法:“从另一个角度看,发明一种语言也是对先前语言的一种最高的赞美。C++之于C,Java之于C++,C#之于Java,都是后者对前者的一种承认,哪怕是不情愿的承认。批判与赞美,继承与发展,谓之扬弃。”

众人心想,语言课又改哲学课了。

冒号续道:“对于编程语言还有一种论调:语言只是一种工具,哪种都差不多。”

逗号接茬:“是啊,经常在论坛上看到一些高手这么说。”

“一群伪高手,是工具就差不多?能拿锤子当刀使吗?”冒号嗤之以鼻,“过分拔高一种语言与抹煞语言之间的差别是两种极端,皆为秕言谬说。图灵奖获得者Alan Perlis曾说:如果一种语言不能影响你对编程的看法,那么就不值得去了解。试想,一种没有独特魅力的语言如何吸引程序员趋之若骛?了解这些独特之处对于编程往往至关重要,如果沿袭以前语言的做法,会显得不伦不类甚至可能铸成大错。”

问号要求:“能具体点吗?”

冒号举例:“有人说,学C++要先学C;还有人说,学会了C,C++就不在话下了。”

叹号一惊:“难道不是吗?”

冒号解释:“其实C++的真正来源是Simula而不是C,向下兼容C只是因为C效率高、普及广。换句话说,C++与C形同而神异。学会了C当然对C++有一定帮助,但若不能理解C++的OOP思想,那么C的背景反而是一种障碍。”

逗号想当然:“C++与Java都是OO语言,差别该不大了吧?”

冒号再次否定:“一个纯粹的C++程序员用Java编程,会非常不习惯没有指针运算、没有内存控制、没有运算符重载、没有自由函数等等。一个纯粹的Java程序员用C++编程,会极度不适应相对贫乏的标准库;会困惑于指针、引用、数组、字符串还有头文件等的用法;会毫不吝惜地在堆(heap)上创建新对象,并且从来不去释放它们。这些概念或用法都是贯穿整个程序始终的,差别能不大吗?”

叹号听罢叹曰:“做一个好的程序员还真不容易。”

“如果容易,我们开这个班做什么?”冒号笑道,“提一个问题,程序员最不能离开的应用软件是什么?”

逗号顺嘴道:“当然是IDE了。”

引号纠正:“应该是编辑器,有些程序员用vi甚至记事本来写程序。”

冒号插一句:“有人还在命令行下写程序。”

冒号和他的学生们(连载17)——语言讨论(3)

时间:2011-07-01 BlogJava 郑晖

叹号眼瞪得溜圆:“怎么可能?”

冒号眉毛一挑:“当然可能,一些简单的程序完全可以在命令行下完成,然后重定向(redirect)到一个文件中或直接编译执行。这种情况虽有些极端,对于那些没有IDE就没法编程的人来说更是不可思议,但至少说明离开编辑器还是有可能的。”

句号突然明白了:“是编译器!”

“不错,编译器或解释器。”冒号作了一点修正。

问号有点茫然:“为什么谈这个呢?”

“因为编译器或解释器是语言实现的标志。”冒号提高了声调,“我想借此强调:对于一个程序员来说,语言为本,余者为末。许多人偏偏本末倒置,常常为在IDE、框架、设计工具等中挖掘到某一新功能而欣喜不已,或者津津乐道于各种语言的优劣高下,却对正在使用的语言中大量的宝藏视而不见。这些人若有幸拜关公为师,他们最艳羡的一定他的赤兔马和青龙偃月刀,或许还会抹红脸蓄长须什么的,就是不太愿学他的盖世武功。”

引号质疑:“您似乎有些唯语言论,设计思想不是更重要吗?”

冒号补充道:“我所谈的语言,当然不是孤立的语法和用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号