【51CTO独家特稿】他的数学成绩很糟糕,曾不只一次的得过F;他并不算聪明,21岁才进入哥本哈根商学院就读本科学位;他做过游戏网站的记者,还与人合伙开过公司;在20岁以前,他没写过一行程序代码。
他在2005年获得Google和O'Reilly举办的OSCON***Hacker大奖;2006年,他获得了年度***Web开发工具震撼大奖(Jolt Development Tools);现在,他创建的框架成为Web开发的主流技术,并被Twitter、Hulu等大型Web2.0网站所采用;由于他的框架采用Ruby开发,从侧面推动了Ruby语言的发展,并使Sun紧急上马推出JRuby。
David Heinemeier Hansson
他就是Ruby on Rails的创始人David Heinemeier Hansson;一般,Ruby程序员将Ruby on Rails称为RoR,将David Heinemeier Hansson称为DHH。
37signals和Basecamp
2004年,哥本哈根商学院的大三学生DHH接到一个来自美国芝加哥的电话,他在37signals公司的合伙人计划上马一个叫Basecamp的项目;和37signals的其他项目一样,Basecamp也是一个基于Web的项目,它试图解决项目因缺少图表、曲线图或者报告而失败的现象,简单的说,Basecamp是一个沟通和协作平台;唯一不同的是,37signals之前都是为客户开发的外包项目,Basecamp将是他们***个自己的产品。
听上去是个不错的项目,但问题是37signals目前只有两个优秀的设计师和一个半路出家的程序员,而目前,这个程序员还在大洋彼岸的哥本哈根拿着电话暗自兴奋。
几天后,带着两年PHP开发经验和学校里学来的一点J2EE课程,DHH来到美国;他将面对的是一个极富挑战的项目,繁琐的需求、众多的功能模块、复杂的接口和紧迫的交付日期。
把复杂的问题简单化
DHH很自信,他知道自己没有出色的数学天赋,没有丰富的项目经验,没有大师级的计算机功底;但他对自己的另一项能力很自信,把复杂的问题简单化。早在编写PHP程序时DHH就开发过一套框架,目的是使PHP能在项目中变得简洁快速,将程序的界面、控制和数据分离开来,方便团队间的协作和维护。
#T#项目之初,DHH试图使用自己的PHP框架进行Basecamp的开发,但没过几天DHH就发现了一些问题:他之前的PHP快速框架一直用于一些流程明确,指向专一的Web项目;但Basecamp不同,作为一个沟通协作平台,用户角色进入后会产生一些复杂甚至意想不到的工作流;他甚至开始质疑PHP的能力是否适合这样的项目,PHP在语言层的一些天性使其在高互动高响应的系统里显得笨拙而复杂。
对编程开始感到愤怒
PHP每次HTTP请求都要初始化资源,这个过程的开销非常大。尽管PHP解析器的运行速度快速且没有缺陷,但一旦使用框架,那么每次请求时初始化整个框架使性能的下降非常厉害,当使用一个很复杂的PHP框架的结果就是整体性能严重下降;同时,PHP语言本身的问题造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的Web语言上面,而正是这一点才是PHP得以成为互联网流行Web编程语言的原因。这是一个复杂的问题,时至今日,究竟谁才是最适合Web开发的语言一直存在争论,详细请参考51CTO的策划专题《大师论战Web开发 Ruby和PHP谁将称王?》
源自底层的弱点似乎正在预言着PHP并不完全适合正在袭来的Web2.0大潮和37signals的Basecamp项目。DHH开始思考,他要找到一种简单的方法完成真个项目,灵活、简洁和快速是他的***要求。他在朋友的怂恿下开始接触Ruby,很快,他开始喜欢Ruby,因为他发现,Ruby可以把复杂的问题简单化。在51CTO之前的一篇《Ruby on Rails入门之道》报道中,DHH提到:“我是在对编程开始感到愤怒的时候开始学习Ruby的。我想做真实的东西,而不仅仅是一个玩具程序”。
Ruby
Ruby的开发效率高的惊人,更重要的是它的语法简洁优雅,DHH看着自己用Ruby一周时间写出的功能比用PHP做一个月还要多;之后,他开始尝试将自己的PHP框架用Ruby做移植,并在其中加上J2EE的一些东西。很快,他将自己的兴奋传达到37signals并说服Basecamp团队使用Ruby进行开发。
两个月后,DHH开发出了基于Ruby的框架;又过了两个月,整个Basecamp产品完成。好事接二连三,在DHH对自己架构的框架异常兴奋的同时,37signals的***个产品面Basecamp一发布就引起了轰动,全世界40多个国家的人值得开始使用,当时,有人认为它是世界是***的Web应用程序。
同时,Basecamp也引起了开发界的关注,众多Web工程师试图找出BaseCamp快速响应、安全稳定的秘密。DHH决定将Ruby框架从Basecamp里剥离出来,让更多人应用自己架构的框架并受益于高开发效率,这个框架就是Rails。
Ruby on Rails的简单之道
DHH对Rails的解释是“最近的一条路”。从Rails这个名字我们可以看出,DHH希望软件开发可以沿着一个正确的轨迹不断向前,告别复杂的左转右转和讨厌的红灯;他也是按照这样的想法架构整个Rails。如果你使用过Rails,其脚手架的功能一定让你兴奋。我们可以通过Rails脚手架创建一套样式的行为和模板,它们可以让你在具体的模型中操纵数据异常简单,同时,脚手架还提供了允许在数据库中插入、更新和删除记录的方法与页面。
Ruby on Rails创始人DHH
回想一下你在PHP和Java中的复杂的配置和数据库操作,这些在Rails里竟如此简单。当然,Ruby on Rails不只强大在数据库方面,除了可以使用Active Record进行数据库操作,还可以使用Active Record和Action Pack进行模型和视图的开发;除在基础Web开发方面的简单化,在Ajax交互支持、扩展和部署方面,Rails同样简单易行。
Ruby on Rails因为可以把复杂的问题简单化而变得流行。2004年7月,DHH发布了Rails的***个版本;***周Ruby on Rails的下载量是2000次,,第二周下载量翻了好几倍,之后几个月间,整个社区似乎都在为Ruby on Rails的诞生而兴奋!目前,Ruby on Rails已经进阶主流Web开发技术,使用其开发的各种网站不计其数,详细可以参考51CTO之前的报道《TOP50用Ruby on Rails开发的网站》
随着Ruby on Rails的成功,DHH也成为一些开发者的偶像,一个数学得F的软件精英,一个20岁前没写过一行代码的程序天才,一个把复杂问题简单化的架构大师。