DHH漫谈Ruby on Rails的文化
08年8月,Ruby on Rails创始人DHH在芝加哥接受了Oreilly记者的采访(DHH当时住在芝加哥而不在其老家丹麦),谈论了一些Ruby on Rails的技术和趋势。
原文在:http://news.oreilly.com/2008/08/interview-with-david-heinemeie.html
====================
上周,在芝加哥我采访了David Heinemeier Hansson,谈论了一些Ruby on Rails的技术和趋势。一开始我询问他对芝加哥的看法,而后就询问了他一些有关Rails的文化和社会不断变化的问题。我们讨论到敏捷,以及许多技术在追赶他们。
【采访开始】
DHH:您好,我是David Heinemeier Hansson,Ruby on Rails 的创始人,37signals的合作伙伴。我将会出席12月的柏林 RailsConf Europe。
Tim O'Brien:我们正在芝加哥的Wicker公园,居民区也叫Wicker,这是递归?
DHH:这是一种递归。我认为居民区的名字本身是根据公园的名字而来。因此我认为这就是它如何开始的。不管它是所谓的bucktown或是所谓的Wicker,甚至大多数人使用更长的版本:“我住在bucktown/Wicker公园”。
TOB:谈到芝加哥,是什么原因是您迁往芝加哥?为什么要从丹麦搬来?
DHH:几乎我所有的生活都是在丹麦度过的,提出搬到芝加哥来是在三年前,因为37signals。公司在芝加哥成立,有一半以上的雇员都居住在芝加哥。我的伙伴Jason Fried也居住在这里。我的女朋友要就读于这里的一所大学,所以我有机会来这,一切都是这么的顺理成章。
TOB:你是如何发现芝加哥的技术和创新?是否有丰富的文化和技术呢?跟旧金山比较呢?
DHH:我认为它非常不同于旧金山,它的伟大也在于它不同于旧金山。对我来说,并不是看中了它的科技,我不认为一个城市科技的强大是一件好事,这就是为什么我觉得它好。
芝加哥更多地是处在一个中立区。没有太多的高科技,但我可以在饭后跟您一起散步,这都是它的好处。芝加哥给人的感觉更“真实”,少了虚假,少了喧嚣……
TOB:你最近为Y-Combinator开办了start-up学校。
DHH:Paul Graham ,我不知道他是不是自称VC,可能不会。在每年春季和秋季的时候,他们运用早期阶段的天使基金。start-up学校开始用Y Combinator的钱来运营新的公司。
我被邀请在那发言。对我来说,这是一个伟大的机会。当然我也参加了其他类似的会议,在我心目中的想法是“let's get to VC, let's get eye-balls, let's get big, let's get bought”。所以我提供了一个候补的想法,如何建立一个公司,如何让公司成长,如何能不出售您的公司,如何使它变为更实际的东西。在这个基础的前提上我们要考虑的是如何获得更多的在线人数-这里有三个因数:有一个理想的产品,为产品制定一个合理的价格,无需从所有对立的路线赚取利润。你也可以采用VC的钱,靠广告或其他任何的方法,只向最终用户收取费用。
TOB:我们来谈谈Twitter。您觉得人们将Twiteer作为Rails scaling的例子这样公平吗?您能不能讲一讲为什么有人会说:Rails不可扩展因为Twitter不能扩展,它们之间有什么间接的联系?证明或反驳。 (51CTO编者注:当时由于Twitter规模越来越大,性能问题也变得多了起来。有评论说是Rails难以扩展的关系导致Twitter的性能问题。现在Twitter的后台有一部分已经转而使用Scala,原计划今年年底应该会大部分后台由Scala驱动)。
DHH:任何应用程序,不管是否能够扩展,通常都不会有一个整体的大量的工作要做,导致它与框架或编程语言或其他任何的高新技术陷入孤立的地步。有些人认为Twitter不可扩展,这是不正确的,它显然是可以扩展,并且每天都在成长。我每天都要使用到它,有很多人每天也同样要使用到它。它存在缺陷是肯定的,但是却不是不可扩展。Twitter从来就没有如今天这般强大,也从来没有如今天这般发展如此之快。
关于这些问题是否涉及到Rails的网络框架或其他,它始终只是一个不相干的问题。对于我来说,它只是作为一个过滤器。如果人们固执的认为是Twitter导致Rails不能扩展,我也无话可说。我不会深入的去解释,我只想说,他们根本就没有真正的了解这门技术。
TOB:我们做了一个关于消极和积极情绪的民意调查。Rails是笨重的企业系统的反面。你怎么面对不愿使用Rails的人,他们会说,看Twitter吧?
DHH:总体来说,Twitter的性能问题只是给了长期以来对Rails有恶意的人一个攻击的工具而已。而另外有很多人很喜欢Rails,不管反对者怎么说,Rails正在迅速普及,所有我们做的都是非常有趣的事情。
如果有人憎恨这些,那么就是他们害怕做有趣的事情,或者不敢面对反对常规的事情。宇宙有一种平衡机制,我们有大量的热情开发者每天开发Rails的工具和插件,因此有几个反对者不奇怪,这是一种平衡。
TOB:什么是Rails的文化?从外部来看,它显示出一种波西米亚式的随意,打败偶像崇拜的冲动。Rails在意识文化方面的引导和挑战是非常成功的。现在Rails开始进入稳定期,说一说现在它的文化和它如何改变的?你看到它的改变了吗?它面对的意识文化方面的挑战少了,革新减少,是否进入传统的波西米亚文化的套路,以及如何在文化上的团结?
DHH:我认为你非常正确。Rails一开始象一群叛乱份子,它拒绝教条,拒绝其他语言的僵化思路,因此出现了很多观念上的冲突和争论。现在Rails已经获得它的地位,在很多方面被证明是正确的,被更多的人接受,也就意味着Rails开始不那么边缘化了。但是我认为事情都是在发展的,总会有新的争论出来,Rails能够始终保持反传统的挑战地位。
现在,就有一个关于Web Services的,业界一直使用极其庞大繁重的SOAP和WS-Deathster方案,而Rails会寻找更加轻便简单的道路。
TOB:我不得不打断你,是否能够通过Soap4R在Rails中使用SOAP?这是一个惊人的实践。
DHH:是的,我不希望把这种方式当作我最大的敌人。我们做的很多工作,让人们来选择,我不会鄙视那些使用SOAP或者其他繁重框架的人,因为这也是他们的工作。虽然选择新系统的人们或者使用其他技术方案的人们,他们选择的技术很多时候我不能理解。
Rails会继续采纳意见和继续成为争论焦点。同时,我认为Rails的内心就如同从外部看到的一样,因为这是很个在很短时间建立的新技术。
同时有很多很多的开发者使用C#, Java, PHP等等,比使用Rails的开发者多的多。虽然,在Rails发布的5年来,我们积累了大量的用户。通过各种方式来为已经确立的Rails技术添砖加瓦是必要的,还有很多事情需要做。
如果我们和身边的接触的人都使用同一个博客,同一个聊天室,参加同一个技术会议等,你会趋向认为:每个人和我都很象,每个人都使用Rails,这是确定的。但是这是错误的,我们所处的环境只是整个大环境的一个小部分。我们必须接受很多其他的人和观点。
TOB:你能谈谈Iron Ruby或者JRuby是否是Ruby的替代技术?
DHH:这个很有趣,因为在很多情况,在实践和工具以及推送技术给用户的方式,Sun公司象一个邪恶的帝国。
TOB:很多方面称Sun公司为邪恶帝国?
而且,我认为他们在做很实用的工作,很多开发者使用Java环境,Java是成名已久应用广泛的技术,拥有巨大的应用基础,他们不得不在Java环境下工作,有时候技术领域不是看起来的那样有很多种选择。
TOB:在你的起始营地谈话中,你特别提到技术公司雇佣开发者来设计框架和APIs——这是一个巨大的错误?
DHH:我认为是的。我认为这个事情和一般认为的不一样。例如:在Java中重新应用Ruby不是一个设计实践,不是和设计一个API库的设计方式一样。我认为当你做这类的事情,不要重新应用,不要重新修改技术规格,也就是说,重新设计架构不是一个好方法。我不喜欢这样。但是在J-Ruby中重新应用Ruby我认为相当好。当你没有在真正开始做一件事情的时候,我认为视野决定了你不得不选择最难的方式来做。
这是一个抽象的差异,但是我肯定的相信类似Ruby和Rails的框架不能被那些全职工作的人所创立。(译者注:DHH反对全职工作啊,呵呵。) 你不能设计这类事务如果你并没有真正开始工作,同时面对真正的系统环境。同时成为客户和开发者这种感觉非常棒。你能够做更好的决定,并同时拥有更多乐趣。
TOB:Robert Lefkowitz 三周前在开源大会(OSCON)上做了演讲,他阐述了关于技术和惯例的区别,实际工作和领导工作的区别,工程技术和艺术以及科学之间的不同。Rails和其他成功的技术被归类于工程技术,有实际的需求和真实的产品来支持。那么设计一个API库或者设计一个抽象框架,是不是科学范畴的?
DHH:我肯定的说,在我的内心,我在科学中成长,技术也是如此。我认为他们举了错误的例子,类似Rails和API开发,我认为这两个更像艺术和技巧……我不认为我是工程师,我更愿意用工匠(Craftsman)来形容自己。
TOB:下一步你打算做什么?有什么技术抓住你的眼球,有没有虽然和你现在做的工作无关,但是你愿意仔细看看的技术,看能不能带来关于Rails的灵感?
DHH:现在出现了很多新的技术很吸引我。最近我对CouchDB和BigTable很感兴趣,另外一个就是Memcached,特别是整个使用键值过期和生成键值的方式。
TOB:BaseCamp和Write Board,你都是水平扩展,对不对?
DHH:是的,我们使用同一方式,在应用方向和web方向,我们水平扩展。如果我们需要更多容量,我们添加更多的应用服务器,更多mongrels,更多web服务器等等。在数据库方面,我们也在扩展。我们刚购买了一个更大的服务器群集来容纳BaseCamp的数据库。