• 2005-09-11

    从rails开始的胡思乱想

    最近看到对David Heinemeier Hansson的访谈( Ruby on Rails: An Interview with David Heinemeier Hansson David Heinemeier Hansson是著名的 37signals的合伙人,并且是著名的web项目管理应用程序Basecamp的创始人。在访谈中他自己说处于两种较为流行的软件开发方法的交界处,一种是象PHP语言那样的,快速而凌乱(quick-n-dirty),另外一种是象JAVA那样的,慢速而规整(slow-n-clean),但是他更需要的是快速而规整的(quick-n-clean),而rails正好结合了上述两种方法的优势,而又有效的避免了他们的不足。

    其实关注rails已经很久了,包括我的 美味也收集了很多这样的资料。在rails中有两个非常重要的观念或者称为哲学:一个是" DRY",即"don't repeat yourself",其含义就是"在一个系统中,每个知识片段应该只在一个地方表述"。按照我粗浅的理解,这里面可以包含两层意思,一个是从编程的技术层面来说,即通过清晰的MVC体系结构,使编程代码各司其职,在程序中没有重复和冗余的代码;另一个,也可以从技术创新的角度来理解,"不要重复自己"就是要勇于创新,我们经常看到的情景可能是,如果一个程序员熟悉了一种编程方法,即使他很落后,但是只要能够完成功能,再难看也一直会使用,同时也不会考虑其他的编程方法,更别说体系结构了。另一个重要的理念称为"convention over configuration",可以表述为"约定俗成胜于(事必)配置",这样,rails与那些使用大量XML文件进行配置的标准的JAVA程序相比,就可以使用更少的代码、更高的效率来完成同样的功能。所以我们在惊叹rails的体系结构和效率的时候,更有意思的是思考为什么我们没有提出这样的体系结构。一直以来,微软的.NET和 SUN的J2EE是都是编程的两大主要体系结构,但就我的了解来说,总有一种直觉,他们都在将简单的事情越变越复杂。所以rails的出现在这两大阵营中都引起了很大的反响,重要的倒不是说rails一定比他们好多少,而是人们开始重新审视,我们到底应该需要什么?

    David Heinemeier Hansson究竟何许人也,查看他自己的介绍,发现他很年轻,一直住在丹麦的哥本哈根,也并无留学他国的经历,但就是他凭借rails的走红,而被google和o'reilly评为本年度的 "best hack",也因此成为今年最受关注的人物之一。还有一点,rails使用的底层语言即不是.NET,也不是JAVA,而是知名度并不高的ruby,可以说在rails出现之前,知道和关注ruby的人并不多。所以从创新的角度来说,可能给我们的启示更大。在IT技术的很多方面我们都落后与他人,只好随着他人的脚步亦步亦趋,甚至有时候亦步亦趋也会感到异常疲惫,可rails告诉我们,另辟蹊径也未尝不可,只要你有真正创造性的东西,并不一定非要延续原有的体系架构。

    于是又想起了两个关于教育的小故事:
    一个是关于两个教育预言的故事。前一阵偶然看到了央视的《新教育风暴》,其中有关于两个预言的真实的故事。70年代末,我国派出教育考察团出访美国,看到他们的课堂纪律散漫,小学三四年纪还在掰着指头算算术,学校重视体、音、美,而轻数、理、化,于是得出结论说美国的基础教育正在走象没落和失败,如此下去,20年后中国必定超越美国的科技大国的地位;同时期美国也派出了教育考察团来中国,看到中国的学生上课纪律非常好,一般都将双手背在身后,只有有问题的时候才将右手举起;学生回家以后有称为"家庭作业"的任务,以作为课堂学习的延续;中国学生的成绩在世界各国同年龄学生中是最好的,于是美国的教育考察团也得出了一个结论,中国作为一个如此重视教育,并且学生成绩优秀的大国,20年后会超过美国成为科技大国。可是另人遗憾的是,20年过去了,中国并没有出现一位象比尔.盖茨的世界首富,也没有出现美国那么多的诺贝尔获奖者,而美国的教育也没有没落,尤其在90年代正确把握了计算机和互联网发展的方向后,在科技创新方面的步伐越来越大。

    还有一个故事说的是外国的教育研究者来中国考察我们的基础教育,于是学校自然做了一些安排,包括谁来上课,提什么问题,由那个优秀的学生来回答,自然大家都很努力,课堂上也自然对答如流,作为中方的学校来说当然觉得很完美了,可是在课后与外方专家的讨论中,老外提的问题却把中方代表难住了,老外说,你们的学生都学会了,老师上课还教什么?

    对于教育和创新,似乎永远有说不完的话题...
    Tag:rails edu Tech
  • 2005-05-24

    储藏生命的果实

    看到选自《思维与智慧》2005年第2期矫友田的一则故事,内容如下:

    巴西北部的旷野中生长着一种栗树,上挂的坚果是拉丁刺鼠最喜爱吃的果实。拉丁刺鼠能够轻松地将栗子坚硬的外壳凿开,美食里面的果肉。之后,刺鼠就会用前足在地上刨一个坑,把剩下的果粒储藏在里面。

    但是,刺鼠的记性很差,也不善于在储藏食物的地方做标记。因此,在食物充足的季节,尽管刺鼠储藏了很多很多的食物;可是到了食物紧缺的季节时,它们却很少能够寻找到自己以前储存的食物。结果,它们不得不愈加努力地寻找食物,甚至要忍饥挨饿,如同一个流浪汉。

    乌雀是同刺鼠生长在同一个地区的一种鸟,它比刺鼠聪明很多,它们总是把采集到的果实储藏在人迹罕至的山崖或激流岸边。这样就不易被人践踏,或者被其它的动物“偷窃”去。而且,它们绝不会忘记在储藏食物的地方做上一个明显的标志,便于以后寻找。因此,即使在食物紧缺的季节里,乌雀仍然能够坦然自如地消受自己原先储藏的果实,就像拥有万贯家财的富翁。其中,一些吃不完的果粒,便会在山崖和激流边发芽生长,给它们提供新的食物来源。

    其实,一个人的成功,不就是一场储藏果实的过程吗?有的人像刺鼠一样,他们对待自己所学的东西和失败后的经验,往往随意往身后一扔,便丢在脑后了。因此,他们手中掌握的,永远只是眼前那几粒果子,在生活中他们也总是窘迫者。 但是,有的人则像乌雀一样,善于储藏自己的果实,并认真地对待生活。他们懂得吸取每一次失败的经验来丰富自己的人生,他们的生命就渐渐变得丰厚起来,并拥有更多希望的种子和发芽的契机!


    如果,每个人在为自己储存生命果实的同时,也在为他人植下生活的新的种子,岂不是更有意义和值得倡导的事情吗?