Archive

Posts Tagged ‘programming’

也谈谈汉语言编程的事儿

June 30th, 2008 Wei 2 comments

文章写出来肯定会挨骂,但是希望大家骂我就好了,放我我的家人和朋友。

说实在的,我是中国人,也却是希望能弄出些拥有自身专利,能够想国外现在技术那样横扫全球的技术。但是……

我是在我的blog上看到关于“汉语言编程为何引爆招生热”的文章,突然就想起看看汉语言编程来。经过搜索,找到了所谓的中国汉语编程网的地方,据说是官方网站。

先说说第一印象,打开以后就是乱码,我的浏览器自动将它识别为Westen (ISO-8859-1)编码。重新设置为GB2312以后才能正常显示。从内容上看,根本就不像一个技术型网站,全网站大篇幅的写了重要性、重要意义、成功实践,甚至还联系到了戒除网瘾。

我找了半天,终于在页面的最下方的一个区域中找到了一些关于汉语编程教程一类的东西。

我这里摘录一段代码:

0 给 累加器
编 求个数 ( n --- )
1
循环 内环数 ♂ ♂ ♂
2 求余数 0 =
就 ♀ ♀ ♀
否则 3 求余数 0 =
就 ♀ ♀
否则 5 求余数 0 =
就 ♀
否则 7 求余数 0 <>
就 1 +写入 累加器
然后
然后
然后
然后
回环
回车
显" 该范围内不能被2,3,5,7除尽的整数个数有:"
累加器 显
显" 个"

不知道大家看到上面这段代码是什么反应,说实话,我没看懂。♀♂等符号,是作为操作符出现的。我不清楚这样的符号对于编程来说是不是好事儿,但好歹,我我不愿意花好几分钟去软键盘里面找这样的符号输入。

我为了试验一下汉语编程的效果,特意下载了专用的编译器,并按照官方主页上的代码输入。反应自然是我的代码输入效率首先下降了很多。仅此一点,我就不能用了。

其次,主页上提供的编译器实际上是个类似于Command Prompt的东西(或者说有点儿像当年的Basic),代码都是在里面写的。问题是,我找遍了主页上的文档,也没有说明怎么能把我输入的代码变成EXE文件。另外,主页上有个据说是电子教程的东西,我也下载了。他里面写了关于GUI上面的一些介绍。即使是给出的例子,我都在他的开发环境中输入后报错。

再说其blog,有篇文章里面说:

汉语言编程曾经决定:一次拿出100款用汉语言编程开发的软件和益智游戏的源代码在网上公布,以便证明汉编的真实性和可行性,以便证明汉编的底层是汉字。可国家高层领导及时制止了这种“不理智的行为”。因为这100款软件几乎涉及到各个方面,“一旦全部开源,就会砸掉不少软件公司的饭碗。你让人家没饭吃,人家不砸你黑砖才怪!”某高层领导如是说。

我有点儿想笑,你100款软件拿不出来,几十款、十几款拿得出来吧?可我在官方主页上,根本就找不到某个传说用汉语言编程写的软件,并且有源代码的。哪怕给我一款吧?没有代码,没有说明,没有语法,没提供什么库函数,对了,对于Windows的程序,如何调用API也没有说明。我很难想象这样的语言能编出什么软件。虽然“他们”说有400多款软件,不过确实没有任何一个流行起来了。当然,Hello World也算软件,是吧。

不过,汉语言编程这种思想,这种潮流还是好的。投资的事情我不想评论,也希望汉语言编程能对得起这些投资。(像Perl一类的语言,也没见人家有多少投资。)

PS,不由的让我联想当但年麒麟操作系统被指与FreeBSD有高度代码相似度的事情。

至于官方主页、blog等上面对汉语言编程的评价,我想我也不准备评论什么。评价,都是看你站在哪个方向上的。像什么不感染病毒,运行速度块,树大招风大家心里都明白。

回到开头的blog上,各院校招收汉语言编程专业的事儿。我还是想,希望这些学生不会后悔。

Categories: diary Tags: , ,

优秀的程序员是这样诞生的

February 4th, 2007 Wei No comments

很搞的一个片子。不过也许优秀的程序员要经历的磨砺还不只这些,只不过他们乐在其中,而不是把那些磨砺看做负担。
[coolplayer]http://www.6rooms.com/player.swf?vid=duqdtbNuffuZoIP76wlDPA[/coolplayer]

Categories: Uncategorized Tags:

何谓“编译”?

March 9th, 2006 Wei No comments

今天在Linux论坛上看到有人问,“什么叫编译?”,起因是他要在Linux下玩儿个游戏,结果不知道如何配置和编译。

全文摘录如下(略作改动:)


主贴:

刚才下载了一个坦克的游戏,解压缩好以后,听说要编译,

于是我就在终端里 make,于是出现了下面的错误,大家帮忙看下行吗?

[root@Jimmy tmp]# cd tank-sdl-0.2.0
[root@Jimmy tank-sdl-0.2.0]# make
gcc -c -I/usr/include/SDL tank.c
make: gcc: Command not found
make: *** [tank.o] Error 127
[root@Jimmy tank-sdl-0.2.0]# ls
COPYING Makefile pics snd tank.c

这个目录里一共就这么几个文件?我该怎么做啊?

回1:

要有gcc编译器。

回2:

具体讲一讲什么叫 编译,为什么要 编译,又怎样编译 谢谢了

回3:

编译:把不能吃的东西(源码)做好煮熟成能吃的东西(可执行的二进制格式)。
为什么要编译:因为不做好煮熟就不能吃。
怎样编译:看“菜谱”。

回4:

另外 编译器不局限于gcc 还有其它编译器 (相当于”炊具”.!!!)

回5:

插嘴:。。那交叉编译,,是不是就是给。。动物做饭?。。

回6:

那么bootstrapping又是什么呢??

回7:

回锅肉?

回8:

bootstrap目标不仅仅是编译 GCC,而是重复编译它几次。它用第一次编译生成的程序来第二次编译自己,然后又用第二次编译生成的程序来第三次编译自己,最后比较第二次和第三次编译的结果,以确保编译器能毫无差错的编译自身,这通常表明编译是正确的。

反刍?。。。


觉得甚是经典。

Categories: Uncategorized Tags: ,

集12个main为一身的C程序竟然也能运行,而且可移植性为100%

December 16th, 2005 Wei No comments

今天无意中在网上看到一个C的程序,简单,却深奥。据说是个大师写的,实在是令人感到恐怖。

这样的程序竟然也能运行? 没想到吧 ! 什么事情都有可能发生,而且这样的事情还多着呢?如果你只是被它的结构迷惑,那没关系,不过…… 程序的运行结果可能会让你更加吃惊了。这不得不让我想起“The Tao of Programming”中的一句话“编程大师的程序再凌乱,也用不着测试,因为它是正确的”。

程序的源代码如下:

#include <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \
}'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
  :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

我试着在GCC下编译以下,居然通过了。而且成功地输出的结果:

On the first day of Christmas my true love gave to me
a partridge in a pear tree.

On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.

On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.

On the fourth day of Christmas my true love gave to me
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the fifth day of Christmas my true love gave to me
five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the seventh day of Christmas my true love gave to me
seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eigth day of Christmas my true love gave to me
eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the ninth day of Christmas my true love gave to me
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
Categories: Uncategorized Tags:

Why Good Programmers Are Lazy and Dumb

December 6th, 2005 Wei No comments

I realized that, paradoxically enough, good programmers need to be both lazy and dumb.Lazy, because only lazy programmers will want to write the kind of tools that might replace them in the end. Lazy, because only a lazy programmer will avoid writing monotonous, repetitive code – thus avoiding redundancy, the enemy of software maintenance and flexible refactoring. Mostly, the tools and processes that come out of this endeavor fired by laziness will speed up the production.

This makes a lazy programmer a good programmer. Of course, this is only half the truth; for a lazy programmer to be a good programmer, he (or she) also must be incredibly unlazy when it comes to learning how to stay lazy – that is, which software tools make his work easier, which approaches avoid redundancy, and how he can make his work be maintained and refactored easily. (By the way, the word “unlazy” has 14,400 hits in Google; I’m sure this makes it legal.)

Second (and I will elaborate a bit more on this because I find the concept to be less known than the first) a good programmer must be dumb. Why? Because if he’s smart, and he knows he is smart, he will:

a) stop learning
b) stop being critical towards his own work

Point a) will make it hard for him to try to find new techniques to allow him to work faster. Point b) will give him a hard time debugging his own work, and refactoring it. In the endless battle between a programmer and the compiler, it’s best for the programmer to give up early and admit that it’s always him and never the compiler who’s at fault (unless it’s about character encoding issues, which is the part even the compiler gets wrong).

But there’s a more crucial point why a good programmer must be dumb. That’s because for him to find the best solutions to problems, he must keep a fresh mindset and manage to think out of the box (or rather, know its actual shape). In a way, this leads to the mindset of a child; incredibly creative because he never heard “no” for an answer.
The direct opposite approach would not be very constructive; to be knowledgeable about the parameters at hand, and accept them. Because who knows how many limits you think are there are for real? The less you know, the more radical will your approaches be; the better the tools you develop, and the better the product you develop with them.

I know from my work that a good programmer, when confronted with a problem from management, will adopt this mindset of being dumb; he will start asking the most simple, child-like questions. Because he doesn’t accept the parameters suggested to him that someone thinks make up the problem. Here’s a typical conversation from the lost land of web development:

“Since yesterday, our client can’t see the logo on the web site.”
“Did he restart his browser?”
“Yes.”
“Did he restart his computer?”
“Yes.”
“Did he empty his cache?”
“Yes.”
“Does he run Internet Explorer 6?”
“Yes.”
“Is he sure he can’t see it?”
“Yes.”
“Did he look at the web site on the screen?”
“What?”
“Well, he might have printed it out.”
“No, he was looking on it on the screen.”
“Did he also not see other images besides the logo?”
“What? Well, I will ask him.”

For the sake of argument (and this was entirely hypothetical) let’s say the client indeed turned off images in his browser. Or his son did. Whatever the case, this answer could not have been found if you would work in “smart” mode*. None of the questions asked by the programmer required any programming skills. No; simply because the problem is so stupid, only stupidity can tackle it.

*Some years ago, I had a long telephone discussion about the whole web site being messed up since my last update… it turned out the guy disabled stylesheets in his browser. Back then, I would have suspected everything but such a simple solution and was listening to half an hour of complaints about quality standards etc. In the end, the assumption that my update was at fault was just that… an assumption. You better listen to facts only if you start debugging, and never to what people think might be the reason.

In similar fashion, when one of my co-programmers asks me: “Why isn’t this working?” most of the time it’s because they’re working on the wrong file (e.g., they linked to library 1 but they’ve altered library 2, and their revision isn’t showing, or they simply didn’t link the library at all). When you ask a colleague for help, particularly in programming, you want him to know less about your project… so he will ask the stupid questions you sub-consciously avoided asking yourself because you thought you knew the answer, when in fact you didn’t.

There’s another side to it. The too-stupid person will just run off and, without a second thought, do something wrong. The too-smart person will sit down and plan something right, without taking any action. A pragmatic programmer is sort of in-between; he knows making the wrong decision 1 out of 10 times doesn’t hurt the goal as bad as making only right decisions 5 out of 10 times, and making no decision at all the other 5 times.

It’s like the story of the centipede. The centipede was very good at walking with its hundred legs. It never spent a thought on just how it could walk. Until one day, when a big black bug asked the centipede “How can you manage to walk with all those feet? Don’t you find it hard to coordinate their rhythm?” The black bug already left, when the centipede was still sitting down, pondering how it could walk, wondering, and (for the first time in his life) even worrying a little bit. From that day on, the centipede couldn’t walk anymore.
So you better not think too much if you want to achieve something. And of course this is only half the truth, too…

by Philipp Lenssen

Categories: Uncategorized Tags:

编程高手

September 9th, 2005 Wei No comments

MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。

Bill Joy,前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix,也就是BSD的前身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相 当散漫的哈)。只见BBN问:你怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯伯硕士毕业 后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把Sparc设计出 来乐……象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯发言,直切要害,提出 漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI的主要作者之一。

John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC上搞个小动画都能让人 惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein, 然后再接再励,doom, doomII, Quake…每次都把3-D技术推到极限。J哥哥的简历上说自己的专长是”Exhaust 3-D technology”,真是牛人之言不我欺的说。做J哥哥这样的人是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡”,不然如果他的游戏不支 持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听取 他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以上, 也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。

David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然后说:“who can’t write an OS in a week?”,也是牛气冲天的说。顺便说一句,D爷爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。D爷爷天生脾 气火爆,和人争论时喜欢双手猛击桌子以壮声势。:-) 日常交谈F-word不离口。他面试秘书时必问:”what do you think of the word ‘fu*ck’?” ,让无数美女刹羽而归。终于有一天,一个同样火爆的女面对这个问题脱口而出:”That’s my favorite word”。于是她被录取乐,为D爷爷工作到NT3.5发布。

Don Knuth,高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,或者学Linux不知道Linus Torvalds一样,不可原谅啊。:-)为了让文章完整,就再罗唆几句吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给 别人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编 译器写多了,顺带就搞出了个Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n美分奖励等等都是耳熟能详的,偶就不饶舌乐。

顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那完全是高爷爷的功 劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带谦和的微笑,颇有仙风道骨,正好和他的仙文 相配的说。

高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他捐献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,The Tex Book等,更不用说足以让他流芳百世的Tex乐。

Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M.Riche老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan9的主要作者(另一个是大牛人Rob Pike, 前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是计算机史前时代,普通人都认为只有大型机才能运行通用的操 作系统,小型机只有高山仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是他和DMR怒了,在1969年到1970间用 汇编在PDP-7上写出了UNIX的第一个版本。他们并不知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重 写,于是C在随后20年成就了不知多少豪杰的梦想和光荣。Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大 家都以为“这个世界清净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁闷。谁知道这一郁闷,就郁闷了14年, 直到Ken爷爷道出个中缘由。原来,代码里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码, 就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译器。:P

Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发Unix的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉 害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix Programming Environment 和 The Practice of Programming 的作者之一。如果初学者想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写出了Unix下第一个基于位图的窗口系统,并且是 著名的blit 终端的作者。当然了,罗伯伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多少人的注意。罗伯伯一怒之下,写出了 振聋发聩的雄文Systems Software Research is Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周 期越来越长,代价越来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的革新越来越少。

就在罗伯伯郁闷之极的 时候,google登门求贤来乐。如果说现在还有一家大众公司在不遗余力地把系统开发推向极致的话,也就是google乐。随 便看看google的成果就知道了。具有超强容错和负载平衡能力的分布式文件系统GFS (现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻……哪个都很牛的说),更不用说处理海量并行计算的各式google服务了。Rob在System Software Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到他错了,应为google关心。google网络了大批功成总是试图吸取系 统研究的最新成果。想必Rob Pike在google很幸福。愿他做出更棒的系统..

Categories: Uncategorized Tags: