大牛们的世界好小

今天看到了蛮多东西,各种文章里引用的都是大牛的东西!最早是在看一篇纪念Dennis Ritchie的博客文章,文章最后推荐了一个Rob Pike 2001做的演讲的slide,好像蛮有名的:The Good, the Bad, and the Ugly: The Unix Legacy

Rob Pike何许人也? 他也是贝尔实验室元老级别的大牛,他参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,与Ken Tompson协同发明UTF-8, Plan 9操作系统的设计者,《Unix Programming Environment》,《The Practice of Programming》作者。现供职于Google,Google的首席工程师,参与开发了Go语言。

slide里面有一句很内涵,一下就抓人眼球:

C is the desert island language.

想看看有没有大牛给出自己的理解,又找到了stanford的《C Craft》。接着第一句“C is the desert island language.”,作者Ben Lynn对C做了很高的评价:

Despite its age, despite many flaws, C is still the de facto standard, the lingua franca. Why? As with other older languages, inertia is partly to blame, but this cannot be the only reason. C must possess a near-perfect balance of vital language features.
Or as Linus Torvalds puts it, “C is the only sane choice”.

可再看看原slide里“C is the desert island language.”出现的位置,我觉得Rob Pike肯定了C前无古人后无来者的里程碑式地位,但也有持负面观点得把? 他认为C写得丑陋,从1970以来也没什么改变。

后来看到《C Craft》下面还有介绍Obfuscated Tiny C Compiler (OTCC) ,发现作者是Fabrice Bellard,他凭这个参加著名的国际C语言混乱代码比赛(IOCCC)就拿了奖。OTCC后来发展为TCC项目。
我是第一次听说TCC,Tiny C Compiler(TCC)是一个轻量级高速的C语言编译器,完全支持C99标准。与其他C语言编译器不同,它是一个自我TCC标志依赖的系统,不需要其他外部的汇编器和连接器。TCC很小,传说是目前最小的ANSI C语言编译器,小于100k,编译速度快,编译出来的执行文件比gcc更小,可以有内存和边界检查,还可以让C语言源文件可以像Perl和Python一些脚本语言一样直接执行! orz是不是可以抛弃gcc了…

其开发者 Fabrice Bellard 又是个传奇的天才:他是FFmpeg(暴风影音,KMPLAYER什么的都是拿FFmpeg的解码器),虚拟机QEMU(科创大作业好像要用这个东西!),TCC作者;发现了最快速的计算圆周率的算法貝拉公式;2009年他声称仅用了一台小于$3,000的台式机算出小数点后2.7万亿位,打破了圆周率计算的世界纪录?
我开始知道Fabrice Bellard是因为那个在web跑linux就是他的作品!原理ms是用js写出了x86虚拟机然后加载二进制linux镜像。关于js版的linux的开发原因,他说…I did it for fun!气场全开,HOLD住全场阿!!!

PS1: Rob Pike主页:http://www.herpolhode.com/rob/
Fabrice Bellard主页:http://bellard.org/