假如海明威会写JavaScript…

jopen 11年前

假如海明威会写JavaScript…

        英文原文:If Hemingway wrote JavaScript

        编者按:这篇文章来自一名极客兼书呆子 Angus Croll。Angus Croll 在 推ter 就职并专门开设了一个关于 Javascript 的博客。

        很久很久以前,在我还没有开始写一行代码以前,我就开始喜欢文学了。不过…现在,我是个用 JavaScript 写代码,写很多很多代码的极客,而且,我还要为此出书了。

        你一定很好奇,为什么 JavaScript 会吸引那么多文学死忠呢?其实我有几个半生不熟的理论来证明这种语言实际潜藏的巨大表达力,不过…要等到下回才说。这回我们来说说,那些伟大的作家们会如 何使用 JavaScript,又能把 JavaScript 玩出什么花样来。

        其实,这个想法源自我自己的一个梦。在这个梦里,我要求海明威和其他的几个文豪为我写一个 JavaScript 函数,这个函数可以返回一个特定长度的斐波纳契数列。很有意思的是,每个作家都选择了用一种不同的方法来解决同一个问题。来看一下吧:

        海明威

假如海明威会写JavaScript…

        毫无疑问,对海明威这样一个倡导极简主义的作家而言,他写的 JavaScript 代码也是直击要害,没有半字多余。这代码写得一点儿也不花哨,甚至可以说是有点儿迂腐,不过,这正是海明威的作品之美。无需复杂的逻辑或是巧妙的变量名, 代码写得简洁清楚,既完成了任务又绝不节外生枝。

        另外,海明威可从来都不会待见那些傻瓜们。所以,假如你需要输出一个元素个数少于 2 的斐波纳契数列,他会直接将你忽略掉:“我累了,而且这个问题很傻。”

        莎士比亚

假如海明威会写JavaScript…

假如海明威会写JavaScript…

        咱的大文豪大诗人在此时显得有些啰嗦,不过我们只会得到这样的结果。注意看莎翁给我们写的代码注释(大家注意不是什么字幕或者舞台指导),都是 用五音步抑扬格写成的!莎翁在他的戏剧中就经常会背离严格的五音步抑扬格,来增强一些戏剧性的重点,比如说,他可能会在台词里面故意增加一个音节,或者使 用一个交变应力。看起来,他在写代码的时候也用了同一招哦。

        狄更斯

假如海明威会写JavaScript…

        我自己本人可不是狄更斯的粉丝。亨利詹姆斯的评价我大部分都同意:

        “假如我们可以大胆定义他文学作品中的人物,那么,我们应该称他为最伟大的浅薄小说家。我们清楚,这样说会把他归为文字工作者中较为低劣的一 级,但我们还是接受这种说法。在我们看来,假如我们将狄更斯归入最伟大的小说家之列,那就是对人道的一种违背。因为…在这里重申上面暗示的观点,他除了塑 造了人物之外,再无其他贡献,也并没有提升我们对人性的理解。”——亨利詹姆斯,《回顾我们共同的朋友》,1865年发表于《The Nation》

        他的这种浅薄也体现在它提供的斐波那契数列解决方案中。没错,这里面确实有一些比较有趣的名字,不过这个方案本质上却完全缺乏内涵和理解。他没有真正理解斐波那契数列的哲学,而是在解决问题的过程中诉诸棍棒,用了乘法。唉…

        结束语

        不管怎样,优质的 JavaScript 代码跟教条主义无关。有些开发人员喜欢各种规则手册和样板,而这也是为什么我们会有 Java。JavaScript 的真正乐趣在于它灵活性高,潜藏着各种可能性,而自然语言也有相同的特点。最好的作家和最优质的 JavaScript 程序员都是那些对语言痴迷,并在日常生活中对其进行不断探索以发展自己的风格、自己的习语、自己的表达的人。

        这就是我想说的全部,希望你会喜欢,不过,大部分都是 nonesense。

来自: 36氪