译后记:C是伟大且垃圾的语言

对于每一个C程序员,不论是菜鸟、教师还是资深程序员,Dennis M. Ritchie所写的The Development of the C Language,应该是必读的文献。通过google其中文版(google C语言的发展史),搜到的最前面的翻译的东西令我不爽,所以自己翻译一下,备用。yqj2065的翻译中,使用了若干你不能够原封不动抄到你的书籍和文章中的字眼,还添加了一些私活大笑;也没有推敲文字是否优雅,大致通顺即可,木有那份素养啊。关键是意思要正确。信雅达——信是第一位的。

C语言的发展史-1 、C语言的发展史-2、C语言的发展史-3

有时间,我还会完善它们,因而转载请谨慎。

ok,谈谈C语言。千言万语一句话:C是伟大且垃圾的语言

看到过一些诗意般的赞美:“在其它语言里,各种的抽象、甜腻的语法呵护着你的代码,让你看不到它的心跳。但C语言里,就像是足球,在场地上奔跑移动。简单的语法,浅显的关键词,这是对通用冯·诺伊曼·约翰机器最精彩的描述。C语言里,程序的灵魂直接向我们开放。我们看到了、感觉到了,所以我说 C语言,美丽的语言。"

类似这样的描述,比比皆是。特别是C的简洁、谭C说”程序设计自由度大“、高效...

1、简洁

只有初生儿才是简洁的。如同软件开发的瀑布模型,C作为广为人知的编程语言,它在C89/90甚至之前才简洁,只有专注于一个小的应用领域才可能保持自己的简洁。每增添一个关键字,如_Bool、inline、_Static_assert、_Atomic,语言的复杂程度会提高。另外,简洁的C又拥有明显冗余的auto、register。明显冗余的原因,是因为编译器和运行环境做了一些”甜腻的“工作。

2、风格的自由度

这是一个缺点,从任何方面看都是缺点。随着C的发展,BCPL时代的遗风、K&R1的古老风格都被新标准兼容。好的编译器会警告旧风格,让追求自由的程序员不时吃瘪。

3、高效

不得不承认,这是C最大的优点!但是高效并非程序员的终极目标。C的前身B,是解释性语言,Dennis M. Ritchie写道:”使用汇编太让人郁闷了,因而即使B有性能问题,B已经有了一个包含有用服务例程的小例程库,并被越来越多的新程序使用。“,程序员的目标是编写解决问题的程序。当然,要取代汇编的系统实现语言地位,足够的高效是一个前提,所以C挺高效。但是,当有人振振有词地说:“C比谁谁谁高效,所以xxx” 的时候,我们为什么不问一问:”那你为什么不直接使用汇编?“。

C语言的出现,就是愿意性能损失的结果。如果不愿意性能损失,Dennis M. Ritchie会用汇编编程。

4、经久不衰

这是最欺骗人的说法,看见过”C流行了40年,这才是我们需要学习的东西“。这样似是而非的话,对它的解读就得看你如何依据这样半对不对的东西进一步思考。对于C的经久不衰,我觉得应该给C四个金光大字:积重难返

只要你不能够以其他语言实现应该流行的操作系统,C还将流行下去。

如果你认为市场总会选择最佳、最高效率的技术,你错了。我们为什么采用QWERTY键盘?这是最有效地安排打字机键盘的设计吗?事实上,设计者如此设计的目的是为了放慢打字人的打字速度。当一个设计被成千上万人使用的时候,它基本上就永久地占领市场。”C的成功...毫无疑问,Unix本身的成功无疑是最重要的因素;它让这个语言可以被成千上万的人使用。"

5、C之所以伟大,是因为它已经占领了系统实现语言的市场,除非有人使用Go或D实现了一个流行的操作系统;是因为它取代汇编而较其他语言高效;是因为它简单,它专注自己的领域而非好高骛远。

【给一些人一个黑白相片般的结论:C是一门垃圾语言,但是被认为“伟大”,正如QWERTY键盘是个垃圾设计】

你可能感兴趣的:(译后记:C是伟大且垃圾的语言)