《程序员的呐喊》一一1.11 作者手记:弱类型机制够不够强

1.11 作者手记:弱类型机制够不够强

程序员的呐喊
这是本书最老的文章之一。我在亚马逊时代写了差不多50篇博客,其中只有两篇被收录到本书中,这是一篇,另一篇是《巴别塔》。

这篇博客写于我离职亚马逊的前一个月。我在尽量保证公平公正的情况下,准确地总结了亚马逊在核心理念上的不同。我观察了这些理念上的差异在团队里的Perl和Java阵营之间,不同的数据建模风格,以及其他很多地方所产生的冲突。

当时我关注的焦点主要是和(编程语言的)类型安全以及(关系型数据库设计的)结构安全。后来我将这个问题进一步提炼,又包含进来了很多其他两极分化很严重的设计问题——我最近的另一篇博客“神秘机器的笔记”就是我在不同的团队和整个公司中,经过多年观察很多项目后,对这种分歧的一个总结。

我在亚马逊的时候还不知道哪一种“更好”。现在我觉得从本质上讲,其实哪个都称不上更好,只能说萝卜青菜各有所爱罢了。

尽管这篇博客和“神秘机器的笔记”有点重复,它还是有点干货的。它详细描述了我亲身观察的一个项目的第一手资料,Perl和Java程序员在这个项目上合作了一年多,就为了解决同一个问题。而那帮大多是自学成才的Perl程序员,可以说完爆Java程序员。

那么,请欣赏。

时间: 2024-09-12 15:22:24

《程序员的呐喊》一一1.11 作者手记:弱类型机制够不够强的相关文章

《程序员的呐喊》一一1.12 作者手记:弱类型机制够不够强

1.12 作者手记:弱类型机制够不够强 程序员的呐喊 这是本书最老的文章之一.我在亚马逊时代写了差不多50篇博客,其中只有两篇被收录到本书中,这是一篇,另一篇是<巴别塔>. 这篇博客写于我离职亚马逊的前一个月.我在尽量保证公平公正的情况下,准确地总结了亚马逊在核心理念上的不同.我观察了这些理念上的差异在团队里的Perl和Java阵营之间,不同的数据建模风格,以及其他很多地方所产生的冲突. 当时我关注的焦点主要是和(编程语言的)类型安全以及(关系型数据库设计的)结构安全.后来我将这个问题进一步提

《程序员的呐喊》一一1.13 弱类型机制够不够强

1.13 弱类型机制够不够强 程序员的呐喊你觉得--一个动态类型系统能有多大?静态类型系统到底重不重要?我非常想知道答案. 亚马逊有很多很大的系统,绝大多数采用了静态强类型,至少我知道的情况如此.那么有没有这样一种需求,或者说我们能不能用Perl.Ruby.Lisp.Smalltalk完成同样的工作? 其实,我感兴趣的是更宽泛一点的话题,也就是编程语言里的类型系统.例如,强类型之于关系数据建模和编程语言是一样的.你可以为每种可能性建模,也可以用键值对的方法快速建立原型.XML数据建模也一样. 静

《程序员的呐喊》导读

前言 程序员的呐喊痛苦是本书的灵感源泉.唔,还有酒精.而当痛苦累积到一定程度的时候,我就会忍不住开始抱怨.再加上酒精作祟,什么刻薄(甚至滑稽)的话我都说得出来.现在我还会时不时地回头翻看这些东西,每次都忍俊不禁.原来我很毒舌嘛. 和绝大多数程序员不同,痛苦在我身上留下了独特的印记,迫使我的世界观发生了极大的变化.我现在能一眼看穿很多老鸟都看不到的东西,因为,老实说,他们都太墨守成规了. 目录 第1章 编程语言里的宗教 **1.1 作者手记:巴别塔1.2 巴别塔1.3 作者手记:名词王国里的执行1

《程序员的呐喊》一一1.9 作者手记:变换

1.9 作者手记:变换 程序员的呐喊 这篇是我为奥莱利的Ruby博客而写的文章,我原来是那里的客座博主,后来觉得厌烦就退出了.当然我还是写了三四篇东西的. 事实上回想起来,我退出的主要原因是稍后不久我就不怎么写Ruby了.不是因为我讨厌Ruby(正相反,我非常喜欢它),而是因为它在Google流行不起来.所以日常工作中除了写点自己的小脚本,用到它的机会真的很少.超过这个规模就会招致怀疑的目光. (尽管我在<巴别塔>那篇文章里说Google比亚马逊在语言方面更擅长,比如在适当的时候采用强大的DS

《程序员的呐喊》一一1.1 作者手记:巴别塔

1.1 作者手记:巴别塔 程序员的呐喊 这篇是本书最老的文章,写于2004年9月,当时我已经在亚马逊干了差不多6年了.当时亚马逊正饱受其庞大代码库的困扰,我曾经一度认为它的代码库规模失控是因为语言问题,后来才意识到企业文化是主因. 首当其冲的是,亚马逊的主流语言里有两门非常啰嗦的语言C++和Java,外加一门精练的语言Perl.但是Perl正受到排挤,渐渐退出主流.我觉得这是因为Perl程序员能用更少的人力完成和Java/C++程序员同样的工作量,所以要是比人多的话,他们注定是赢不了的.根据我们

《程序员的呐喊》一一1.3 作者手记:名词王国里的执行

1.3 作者手记:名词王国里的执行 程序员的呐喊这是我第一篇比较出名的牢骚,所以印象很深.2005年年中的时候,我离开亚马逊加入Google,顺便把一些内部分享的旧文章转到了公共博客上.12月的时候,这些文章通过reddit和Hacker News的推荐慢慢获得了一些关注--一下子我贴的每篇博客都吸引了几千人的阅读量. 与此同时,当时我在Google做一个很讨厌的Java项目.这块代码我就是看不对眼.之前做过的几个Java项目都还可以忍受,但这个实在是设计过头了.在这里我就不点名了.不过代码真的

《程序员的呐喊》一一1.7 作者手记:摩尔定律就是胡扯

1.7 作者手记:摩尔定律就是胡扯 程序员的呐喊这篇文章剖析语言演化的角度略有不同,主要关注的是并行计算,因此它有很强的个人色彩,而且这也是我最爱的话题之一.这里有太多八卦可以聊了. 我注意到这篇文章发表的时间是"名词王国里的执行"发表的前6天.看来那个月我的心情肯定不太好. Google一直在慢慢解决困扰我的问题,进展不快但一步一个脚印.C++还是用得太多,更不用说Java了.不过这些年来,他们越来越擅长用更多的机器和更少的代码来工作.按照这个速度,或许不远的将来真的有一天会出现一些

《程序员的呐喊》一一1.6 神秘机器的笔记

1.6 神秘机器的笔记 程序员的呐喊过去8年来(2004年6月起至今)我一直在写各种各样的牢骚,主要是一些和软件工程有关联的问题. 之所以这样愤青是因为我真的被一些"诡异"的世界观给搞糊涂了,持这些观点的人(在我看来)差不多占了所有我遇到过的程序员的一半,包括网上碰到的和现实里认识的人. 就在上个星期,我终于想明白了这个困扰了我快10年的问题,现在我知道它到底是怎么回事了. 今天这篇文章就是要以全新的理念来展示软件工程.这些东西其实一点就通.等你看到的时候肯定想抽自己一嘴巴,怎么早没想

《程序员的呐喊》一一1.2 巴别塔

1.2 巴别塔 程序员的呐喊 我在这篇文章里会大致谈一谈对各种语言的看法--本来是想给这个月的亚马逊开发者期刊投稿的,后来却发现改来改去都难以示人. 一方面是因为,我时不时地就用上一些粗鲁的字眼,说出一些得罪人的话来,实在是不适合在亚马逊的官方刊物上发表.所以我还是把它贴在博客上,反正也没人会看.除了你.没错,就是你.你好! 另一个原因是,我还没写完呢,通篇都是东一榔头西一棒子的片段,完全没有经过润色打磨.这也是把它放在博客里的又一个理由,不用去考虑漂亮和完整性的问题,可以想到哪儿就写到哪儿.爱