代码中的“它”

  • 杨赛

2013 年 8 月 16 日

话题:语言 & 开发

 这周读了本小书,《学箭悟禅录》,很有意思。

《学箭悟禅录》讲的是一个德国人,一直以来对东方文化和哲学感兴趣,但是要理解“禅”,对德国人而言实在比较困难。机缘巧合下他到了日本,拜在了一个弓道大师门下修习弓道,希望以此能够了解“禅”是什么。

在日本,弓道不是一种体育竞技,而是一种艺道;修习弓道,提高技艺只是过程,修心才是成果。作者描述自己修习了一年才学会拉弓,而放箭这一动作,修习了三年多还不得要领——因为弓拉满时,肌肉绷得总是绷得太紧,松手放箭总是歪歪扭扭的。学生为之痛苦不已,大师却只是让他放下自我,无求的等待。

一天,他问大师:

“如果‘我’不放箭,箭怎么会射出去?”

大师说:

“‘它’自己射出去。”

“以前我曾听您这样说过几次。让我换一种问法:要是‘我’不再在那里的话,我怎么能忘我地等待呢?”

“‘它’在最紧张的点上等着。”

学生虽然仍然不明白,但仍然继续坚持日复一日的练习。

再之后的一天,学生射过一箭后,大师深深的鞠了一躬,突然停了课。“刚才‘它’射出去了!”

当时读到这一段的时候,想到一件事情。很多时候我们写代码——大家应该也有过类似的经历,就是自己写出来一段东西之后,会隐约觉得,‘它’本来就在那里,这个代码本来就是这样的;作为代码的撰写者,我们其实什么也没做,只是让本来就存在的代码从自己的指间“流”了出来。

这听起来倒有点像基督教的说法:《圣经》的四个福音书虽然是四位圣徒写的——圣徒都是人类,但他们都是在圣灵的指引下完成的。因此福音书是神的作品,而非人类的作品。

不管怎么说,编程,也是技、艺一体的行为,这个行为的艺术属性并不亚于其他的艺术行为。这个世界是不是真的存在绘画之神,音乐之神,足球之神,弓道之神,或者代码之神,这也不是那么重要。但可以确定的是,“它”是真实存在的。

当弓道的学生可以很好的把箭射出去了之后,大师问他:

“你现在明白‘它射出去’、‘它击中靶子’的意思了吧?”

学生答道:

“我恐怕什么都不明白,即使是最简单的东西都变得毫无头绪。是‘我’拉弓还是弓拉我进入最紧张的状态?是‘我’射中目标还是目标射中我?……弓、箭、靶与自我,所有都相互交融,我再也无法将之分开,而且连分开的必要都不存在了。因为我一拿起弓来射时,一切都变得那么清晰直接,那么近乎荒谬的简单……”

大师插嘴说:

“弓弦现在终于能如意地切过你了。”

本日作者简介

杨赛(@lazycai),InfoQ 中文站编辑。到处串门的互联网信徒,相信规则的力量。

语言 & 开发