假如海明威会写JavaScript...

氪友rlUb·2012-10-13 21:58
在一个极客兼书呆子的世界里,像海明威、莎士比亚这样的大作家会怎样写JavaScript代码呢?

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


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

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

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

海明威

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

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

莎士比亚

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

狄更斯

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

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

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

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

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

+1
0

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

下一篇

如果你无意中打开Mouthee,你第一眼看过去肯定不会觉得它是个类似大众点评或者Yelp那样的点评网站,而是看起来更像Twitter。是的,这正是它的特色。如果说大众点评更关注店,那么就可以说Mouthee是以人为中心的。你一打开Mouthee就可以看到你的好友推荐了什么,点评过什么,Mouthee还会根据你所在的位置进行精选推荐,这让我觉得它更像是一个社区性弱化的街旁网。在Mouthee,你不仅可以看到朋友们都推荐了什么,还可以发布一条点评;将朋友推荐的某一个店或者产品添加进收藏,方便访问;甚至直接向一个朋友发消息询问,这在其他点评网站里是没有的。

2012-10-13

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业