冒号和他的学生们(连载18)——系统语言

冒号和他的学生们

——程序员提高班纪事

18.系统语言

居高者形逸而神劳,处下者形劳而神逸                        —《洪应明·菜根谭》


问号忙问:“您打算比较哪些主流语言呢?”

冒号回答:“就谈谈第一堂课提到的最流行的十二种语言吧。按语法特征可将它们分为三类:C族静态语言五种——CC++JavaC#D;非C族静态语言两种——VBDelphi;动态语言五种——PerlPHPPythonRuby JavaScript 。”

叹号表示怀疑:“这么多种语言怎么比较得过来?”

冒号解释:“我们主要比较第一类的C族语言,这些也是今后学习的重点,其他的只是泛泛而谈。”

引号猜测:“因为他们更重要?”

“可以这么说。”冒号直截了当,“毋庸讳言,在当今的主流语言中,C族语言应用范围之广、使用人数之多、影响力之巨都是其他类语言所无法比拟的。它们之间的关系从名字上就能看出:C语言的前身是B语言;其后是C++Java曾被称为C++++--,意思是在C++上增点东西再减点东西;C##就是四个叠起的加号;最后D语言干脆在字母上进行升级。”

句号推断:“B语言、C语言、D语言,下一个该D++D#E语言了。”

谁知冒号却说:“E语言已经有了,与Java的语法很像。甚至F语言也有了,但不是C族语言,而是Fortran族的。这不,微软还在.Net平台上推出了F#语言,不过这里的F指的是‘Functional’,即函数式。”

逗号向往着:“不如直接搞个终极的Z语言,成为全世界程序员的唯一指定语言,多省事!”

“这难度不亚于全人类共用一种语言。”冒号笑道,“愿望是美好的,我们还得面对现实。不扯远了,你们先谈谈一下这些C族语言各自的特点吧。”

众人心想:老冒怎么跟国足一个毛病,老喜欢回传,就是不直接射门,真是急煞人也!

问号拣了个软柿子:“C语言是C族老大,又是唯一的纯过程式语言,当然与众不同啦。”

引号一板一眼:“C++在过程式的基础上又引入对象式和泛型式,同时保持了C的高效性和底层开发能力。”

逗号接道:“Java既继承了C++的优点,又克服了C++的复杂性,虽然底层开发能力有所减弱,但具备平台无关性。”

句号不紧不慢:“C#兼具C++Java各自的优点,但效率上不如C++,跨平台方面不如Java。”

叹号后悔嘴慢:“剩下一个最陌生的D语言,在第一堂课之前还真没听说过,怎么挤上主流语言位置的?我想。。。呃,它总该比C++要高级吧。”

冒号评价:“各位谈得虽然简单了些,也算八九不离十吧。下面我稍微展开些来讲。”

此时众人有一个共同的愿望,希望老冒这次能痛快地单刀赴会、直捣黄龙。

冒号似乎看出大家的心思,开始口若悬河:“关于C语言,前面多次提到。这是一把历久弥新的宝剑,一旦出鞘,依旧寒光逼人,锋利无俦。有了它,便如战将有了佩剑,平添一分独闯敌营的胆气。尽管以现代的眼光来看,它存在不少缺点,但即使抛开C语言辉煌的历史不谈,单就其以如此高龄在诸多后辈冲击之下仍屹立不倒而论,让人无法对其多加苛求。”

逗号提出异议:“但语言不是让人崇拜的,而是让人运用的。一门语言无论过去如何荣光,如果不适应现代发展趋势,还是可能被淘汰。”

“说得非常好!”冒号竟然鼓起掌来,“迄今为止本课堂对于具体知识的讲授并不多,但一直提倡独立思考,不要盲从权威。如果你们能做到这一点,本班的目标也就实现了一半。回头再说说C语言,它源自Unix操作系统的开发,以其良好的抽象性和可移植性取代了汇编语言作为系统开发语言。因其简洁实用、灵活高效,很快从系统领域发展到其他领域而成为通用语言。随着新兴语言的崛起以及硬件性能的大幅提高,C语言的缺点也日益显著:过于宽松的类型检查、容易出错的内存管理、相对贫乏的语言特征等等。虽然自身还在发展,它的市场份额日益减少乃不争的事实。但在相当长的时间内,它在其所擅长的领域里仍会占举足轻重的一席之地。如果C能借鉴C++命名空间、重载、异常处理和STL等非OO的特征,它的生命力绝不会比任何OOP语言弱。“

引号咨询道:“关于C语言的学习,您有何建议?”

“精读K&R的《The C Programming Language》,此书不过二百页,堪称C语言的剑诀。其中的RDennis Ritchie,是C的创造者,同时也是Unix的缔造者之一,是真正的大师。如今的大师,同博士、教授、院士等头衔一样,严重地通货膨胀了。”冒号不无感慨。

问号尖锐地问:“C++既保持了C的底层开发能力,又引入了OOPC的处境想必更加艰难吧?”

冒号坦承:“这是不假。C++成功的一个重要因素是对C语言的兼容,由此吸引了大批的C程序员。但这不是没有代价的,C++在兼容C的同时也保留了C的许多缺陷。Java成功的地方有很多,一个不容忽视的因素是它彻底摆脱了与C兼容的桎梏。由于C++C的改革不彻底,又过于庞杂,并且效率上不如C,这使得C仍有其生存空间。略有讽刺意味的是,对C++批判最激烈的往往来自C的社区,比如Linux之父Linus Torvalds就曾激烈地批判过C++。”

Linus?那可是我的偶像呢!”叹号惊讶道。

冒号劝诫:“如果你因为是他的粉丝而后悔学C++,那就是为他人的偏执买单,不管那人名气有多大。”

句号指出:“C++最为人诟病的地方有:语法过于复杂,学习曲线陡、开发效率低;支持的范式过多;OOP不彻底;自省(Reflection)功能不足;支持指针操作导致安全隐患;没有自动垃圾回收,容易内存泄漏;没有线程支持;没有丰富的标准库支持图形界面、网络编程等。”

“罪状不少哇!这些说法都有一定道理,但也有失公允。且听我一一道来。”冒号当起了辩护律师,“C++过于复杂这点没错,Stroustrup说过一句耐人寻味的话:一种语言不复杂是因为不成熟。成人肯定比儿童复杂,因为他要承担更大的责任。大家不妨看看Java1.06.0的发展过程,是否应证了这一点?当然C++的复杂度的确高于其他语言,但如果不执着于奇技淫巧,它绝非高不可攀。C++的开发效率相比JavaC#,差距主要在两个方面:一是标准库不够完善,二是需要手工回收垃圾。关于前者,的确是C++的一大软肋,标准库竟然连企业应用中最常用的图形界面、网络编程、数据库处理等都不能涵盖,严重障碍了生产力。其实C++也有苦衷,不像JavaC#那样有大公司的鼎力支持,只靠效率极为低下的标准委员会来维护。98年的一个标准直到03年还在修订,下一个标准至少要到09年。连Stroustrup都在哭穷,说没有足够的人和时间来开发标准库,可为何广受赞誉的Boost库至今仍徘徊在标准门外?考虑到Boost的创办人大多出自标准委员会,其他无此背景的类库恐怕更难登C++之堂了。相比之下D语言更惨,虽然天生丽质,苦无豪门青睐,只好一直待字闺中。”

叹号感慨:“金钱才是技术的最大推动力啊!”

“话糙理不糙。”冒号也很无奈,“此外,C++不支持自动垃圾回收,是因为Stroustrup固执地认为这该由library来支持。一方面,C++主张RAIIResource Acquisition Is Initialization)原则,通过析构函数(destructor)或智能指针(smart pointer)能在大多数情况下有效地解决内存释放问题;另一方面,尽管自动垃圾回收机制逐渐为大众接受——据说C++0x也将部分地支持它——但这种机制也存在缺陷。比如一个Java程序如果在某一时段极耗内存,由于自动垃圾回收的不定时性,不能保证及时清理内存,可能会抛出OutOfMemoryError。另外,自动垃圾回收机制并不能完全避免内存泄漏问题,Java程序的内存泄漏可能会比C++的更多,因为C++程序员对此更有戒心。”

问号直奔要害:“您如何看待CC++中的指针?”

冒号欣然接招:“指针是CC++最大的特色,其他语言要么不支持,要么支持得有限。CC++可以说是成也指针,败也指针。用得好可以是削铁如泥的神兵利器,用得不好则可能是自我毁灭的罪恶渊薮。但由于二者定位于系统语言,而指针对于底层操作是必不可少的。同样道理,二者的数据类型的转换比其他静态类型语言更自由,也是源出于此。”

句号总结:“能力越大,责任越大,风险越大。

“正是此意!”冒号重重地敲了一下桌子,“此话既适用于编程语言,也适用于程序员。至于C++缺少对自省功能的支持,也是因为追求效率,不愿在元数据上花时间和空间。说到C++支持的范式过多,程序员过于自由,代码不标准难维护,这就如同埋怨餐馆提供的菜式过多以致难以摆出一桌酒席一样可笑。最后,指责C++不是100OOP的说法更是荒谬之极。OOP又不是金子,含量越高越好。试图把一切都装进OOP的箱子里的想法无异于削足适履。典型的如Java中的Math类,逻辑上压根儿就不存在什么Math对象,清一色的static方法和常量就是最好的讽刺。在C++中只要在mathnamespace中定义一些自由函数就可以了,自然而简洁。”

引号发觉:“您好像把对C++所有的责难都化解了。”

“可恨之人必有可怜之处嘛。”冒号俗语反用,“其实C++仍有不少亟待改进之处,D语言就是很好的启示。D语言的提供了可控制的垃圾回收器;支持动态数组(dynamic array);支持契约式设计(design by contract);废除了CC++ 令人头痛的头文件(header file)等等。这些都是C++程序员梦寐以求的特征。”

逗号很奇怪:“为什么D语言名气这么小?”

句号吟道:“千里马常有,伯乐不常有,大腕伯乐更稀有。”

众乐。

冒号结语:“CC++同为系统语言,决定了它们的理念是:优化机器的时间而不是人的时间优化机器的记忆而不是人的记忆;假设编译器是愚蠢的而程序员是聪明的,因此赋予程序员更多的权利、义务与责任。无视这种背景和理念而去与其他语言相较,必不着筋节。需要强调的是,常见的‘C/C++’的说法很不科学。CC++虽有千丝万缕的联系,但一个简单,一个复杂;一个纯过程式,一个集过程式、对象式、泛型式和元编程于一体。貌合神离,不宜混为一谈。”

叹号一个问题憋了半天,不吐不快:“我有一个问题:如今电脑性能这么高,CC++如此强调运行效率还有必要吗?”

“绝对有必要!”冒号斩钉截铁,“其一、纵向看,用户的耐心与电脑的速度成反比,早年一个386人们就满足了,如今却忍受不了586;其二、横向比,相对缓慢的系统竞争力也低;其三、在一些领域如人工智能方面,普通电脑的速度还远远不能满足要求,超级计算机的存在就是明证;其四、仍有些程序跑在资源有限的机器上,比如嵌入式系统。”

引号再次要求:“能推荐一些C++方面的书吗?”

冒号直言:“学好C一本书足矣,学好C++即使推荐十本仍有遗珠之憾。可以说C++是苦了编程者,甜了著书人。开个小书单:初级——《C++ Primer》和《Thinking in C++》;中级——《The C++ Programming Language》和《Effective C++》系列;高级——《The C++ In-Depth》系列。这里还要特别推荐一下《The Design and Evolution of C++》,从中你可以看到 C++的设计和演变的来龙去脉,极具启发性。C++是匹无辔无鞍的野马,看似桀骜不驯,若能顺性而御,必能足踏飞燕,行千里而不劳。”

posted on 2008-06-05 13:05 郑晖 阅读(3153) 评论(27)  编辑  收藏 所属分类: 冒号和他的学生们

评论

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-05 15:37 dennis

c要是向C++靠近,那才是悲剧的开始  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-05 21:29 ron

感谢。
回味,继续听课。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-05 21:31 ron

尺有所短寸有所长,选择一门语言,就是选择一类应用。赞。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-05 21:44 白色天堂

每种语言都有自己特点和适用范围,但c++的问题就是野心太大,想从底层开发到企业级应用都能适合,最后的结果就是个四不像,特性越加越多,语法越来越复杂,但什么都作不好。我不看好c++的前途,Linus的看法是有他的道理的。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-05 22:16 郑晖

@白色天堂
如果你认真看看Linus的原话,你会发现他的狂傲、无知与偏执。他根本不懂c++,甚至不能算是c的专家,连Ritchie都承认c可能被包括c++、Java在内的语言替代。c++的问题与野心无关,c#同样想从底层开发到企业级应用通吃,关键是c++标准委员会推进改革的力度和效率不够。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言[未登录] 2008-06-05 23:50 过客

@郑晖
顶你,说得好~~~
某些人用不好C++就说C++不好,无异于没钱坐飞机却对别人说害怕飞机失事才不去坐。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 05:50 ELLE

c#也不比c++简单,况且c++很注重性能。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 09:27 Matthew Chen

c++的复杂源于多方面的原因,如lz提到了不少,但其实大多数原因正是因为他本身的复杂所引起的,这有点恶性循环,你不够好用人家就不支持你,所以你就停步不前,越来越不好用。
oop不一定是万金油,但是oop就是要作万金油,一切逻辑上可感知的都可以是对象,从这点上来说,Math是很正常的。
历史发展和进化的轨迹是曲折的,退步和埋没都很正常,不要以为金子总能发光,和氏璧为人所知的时候对原来支持它的主人却已经没有任何价值了。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 09:55 郑晖

@Matthew Chen
>>>不够好用人家就不支持你
微软以前也支持c++,但一方面不能掌握标准,另一方面要与Sun竞争,搞个J++被Sun告,只好自己搞c#,与c++是否好用并无太多关系。
>>>一切逻辑上可感知的都可以是对象,从这点上来说,Math是很正常的。
一切都可以当作对象,但不代表那么做是合适的。
Math不是对象,只是类,没有人会new一个Math。对于Math这种永远不会有非static的方法和域、永远不必有instance的类,无论从逻辑上还是从语法上看,都应当是命名空间。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 13:22 dennis

@郑晖
你对Linus的评价太让人吃惊了,没想到。这个系列到现在已经没啥意义了,一直停留在形而上学的讨论,令人乏味。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 13:50 郑晖

@dennis
我对Linus的评价是否过分,看看他的的原话就知道了。(参见
http://advice.cio.com/esther_schindler/linus_torvalds_why_c_sucks)
他在linux上的成功不代表他就是编程语言上的专家,至少在这方面的造诣远远在Ritchie和Stroustrup之下。如果因此得罪了你的偶像而引起你的不快,在此致歉!但我坚持自己的看法。
此外,形而上学的讨论是有意义的,太执着于局部技术的程序员,缺乏对技术的全局感知能力,尤其容易在日新月异的技术面前迷失方向。至于具体的技术细节,本系列稍后将会涉及,还请多提意见!  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 13:54 ezcat

我就是喜欢这个系列讨论的形而上学,标新立异,蕴含智慧。提出了很多编程上深层次的思考,揭示了很多自己所不了的东西,实在大开眼界。它本来就不是XX语言学习手册,教你一板一眼的该怎么写,怎么用。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 15:30 dennis

@郑晖
sorry,我说话都是比较直接的,不好意思。关于linus那番话,国内c++大牛也有很多讨论,其中不乏认同的人,我这个不用cpp的人没资格评价。我只是觉的评价不应该带太多感性色彩,您恐怕是c++的忠实拥护者,不觉的对linus也谈不上c专家的评价太偏激了一点?  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 15:35 dennis

@郑晖
形而上学的讨论当然是必要的,整体的认知才能对细节有所深入。只是看到现在,我还没发现开始适当地切入细节,因而比较失望。还是期待您的后续。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 15:51 郑晖

@dennis
没关系。国内关于linus那番话的讨论我倒真不清楚,只是个人看法。说linus谈不上c专家,或许有些偏激,也可以理解为我的专家标准太高了:-)
我不是任何语言的忠实拥护者,任何语言都有可爱之处和可恨之处。c++最吸引人的地方是它为程序员提供了最大的发挥的空间,虽然这不是没有代价的。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 21:04 白色天堂

Linus当初的评论我看过,他只是从os开发人员的角度说了对c++的看法,而且我不觉得有什么很出格的地方。反而你说他连c都不熟悉,不知道到底是谁偏执。

我说c++应用范围太广你拿c#来类比纯属无聊,我还没听说有人打算用c#来些os的。

c++获得的支持并不少,所有对java有商业支持的大公司几乎都有研究c++,不存在支持不够的问题,c++还是这幅鸟样只能说他的根本就有问题,除非推倒重来。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 21:09 白色天堂

c会被c++和java取代,这种话说出去会笑死人的。c++死18次c都不会死。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言[未登录] 2008-06-06 22:08 Matthew Chen

@郑晖
当时微软开发的vc++,标准还没制定,另外java的崛起也在这个时候,从两个方面反映了c++都有对商业应用支持不够的地方:标准化和统一的通用性,“不好用”这个词很广泛,很好用,所以我才挑的它。
命名空间确实是和包还有静态类都不同的东西,就像是允许函数和类的混合集合吧。也许从你的角度来说是不合适的,但从较纯粹的oo的java来说,考虑一下效率和实现难易,却也只能是“合适”的了。
你这里好啊,大家都平静一点讨论,不要太吵。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-06 22:47 郑晖

@白色天堂
请仔细阅读Linus的原话,看看我有没有冤枉他。仅摘录一段:“C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C."(C++ 是一门极其糟糕的语言,因为有大量不合格的程序员在使用,使得它更加糟糕,它非常非常容易产生彻头彻尾的废物。非常坦白地说,即使选择C什么都不做而仅仅是把C++程序员赶出去,这本身就是使用C的一个巨大的理由。)此外还有对boost、STL等偏激的言论,这里不一一说明。

另外,请不要偷换概念,我并没有说他不熟悉c,而是说他未必称得上专家。我眼中的专家,虽不必到Ritchie和Stroustrup之类的大师水平,也当接近,Linus?差得太远。

我还没听说有人打算用c#来些os的”,你没听说不等于没有,Singularity、SharpOS都是。“纯属无聊”这样的话有欠礼数。

“C语言正在被C++,也可能是Java所替代”,这是Ritchie说的,还会笑死人吗?(google 一下“传奇的缔造者——C语言之父访谈”)
c++虽然让人诟病的地方很多,但仍是少数成功的语言之一,这是不容置疑的。说“C++鸟样",有失风度。

争论使人接近真理,争吵使人远离真理。   回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-08 03:50 YYX

@郑辉
对于OOP,Bruce Eckel 提出,对于开发设计来说,可以把一个对象看作一个服务提供者,很明显Math就是这样一个数学运算的服务提供者  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-08 09:50 郑晖

@YYX
在本系列连载8“并发范式”中我就提出“对象式系统是服务型公司,每个对象是一名服务员”。但请注意,Math是类而非对象,它的使用与一个namespace没有任何不同。当然,任何函数或函数集合(仅仅包含自由函数的namespace可以认为是函数集合)都可以认为是服务提供者。但引入对象或者OOP最大的目的是:一、赋予对象以状态、并对此封装;(Math没有任何状态)二、通过继承来代码重用(Math没有状态,不必产生instance,也就不可能从父类Object那里得到什么好处。)

至于Java为什么如此设计,本系列下篇将会有所涉及,欢迎讨论!  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-11 14:12 蓝剑

上面的好多人都犯了自以为是的错误,找理由支持的时候就说好些例子,其实,你们找到的那些例子你自己都不知道是什么,都不理解,就凭一句话来支持你的观点?
举例:
1:你对Linus的评价太让人吃惊了,没想到。--这位读者是不是真正去理解事情的本源了?
2:c++获得的支持并不少,所有对java有商业支持的大公司几乎都有研究c++。--不知道这位朋友是怎么得出的结论?信口开河是不对的。

另外,请不要把某一个方面专长的人作为神来看待,正如一个音乐家,可能在其他方面是弱智。一个专家说屁是香的,我们要学会质疑而不是去追捧。
linus他很好,只是在Linux方面而已,你让他干别的,他不一定能行。
现在技术五花八门,能精通一方面就不错了,想多能很难,全能是不可能的,即使是盖茨也不行。说实话,Linus比盖茨差远了,大家追捧他紧紧是开源而已。

  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-14 13:28 dennis

@蓝剑
得了吧,你认为别人自以为是,您又何尝不是如此?
-----------------
另外,请不要把某一个方面专长的人作为神来看待,正如一个音乐家,可能在其他方面是弱智。一个专家说屁是香的,我们要学会质疑而不是去追捧。
linus他很好,只是在Linux方面而已,你让他干别的,他不一定能行。
现在技术五花八门,能精通一方面就不错了,想多能很难,全能是不可能的,即使是盖茨也不行。说实话,Linus比盖茨差远了,大家追捧他紧紧是开源而已。
---------------------------
这样的大话、空话,在我看来基本等于放P。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-14 13:29 dennis

争论这么多,没见有人拉出段代码来评价一番,口头的大道理谁不会讲?至于linus那番话的背景和争论,不了解的自己看孟岩、刘未鹏、云风等人的blog去。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-15 19:24 郑晖

@dennis
>>>争论这么多,没见有人拉出段代码来评价一番,口头的大道理谁不会讲?
任何关于语言的纷争注定是无果而终,即使抛开大道理拿出代码来讲小道理,也是徒费口舌。关于语言,一言蔽之,“没有糟糕的语言,只有糟糕的程序员”。糟糕的语言根本不会流行,糟糕的程序员却“流行”得很。

>>>至于linus那番话的背景和争论,不了解的自己看孟岩、刘未鹏、云风等人的blog去。
虽不愿再谈此事,但如果真想了解背景,出于实证精神还是应该去看看原文,而不是某某的blog。平心而论,Linus是在别人首先发难的情况下才有此番过激言论的,不可完全当真。只是作为IT名人挑起激烈的语言之争,显非明智之举。君不见C、C++和Java的创始人在一起尚惺惺相惜、相谈甚欢,其他人等却争得面红耳赤,是否有些滑稽?

最后,博客上的交流既是心灵的聚会,也是一种难得的缘分。希望诸位能忘掉彼此之间因一时的情绪之言而造成的不快(说话与编程一样,哪能一点bug都没有呢?),冰释前嫌,保持平和宽容的心境,共同探讨,共同进步! 感谢大家的热情参与!  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-06-15 19:46 dennis

@郑晖
还麻烦您留言了。你误会我的意思了,我对这个争论其实一点兴趣都没有,因为肯定争不出结论:) 看到蓝剑同学的一番回复,都是套话空话,忍不住回几句。你让linus是去干其他的可能不行,同样,你让盖茨去卖馄饨他也可能不行,这不是典型的废话?借您宝地,打搅抱歉。  回复  更多评论   

# re: 冒号和他的学生们(连载18)——系统语言 2008-08-05 17:13 leweslove

作者写这篇的时候是否会料到有争论呢?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

博客搬家:http://blog.zhenghui.org
《冒号课堂》一书于2009年10月上市,详情请见
冒号课堂

留言簿(17)

随笔分类(61)

随笔档案(61)

文章分类(1)

文章档案(1)

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜