译 | 编程与写作

这是一篇译文,原文 by antires(redis作者,2020年已退出 redis 维护) http://antirez.com/news/135

一年前,我暂时放下了编程生涯,开始写一本小说,想着写作与编程应该是完全不同的。经过这段时间的写作,以及更多的重写之后,我很确定:写一本小说和写一个大的系统的过程,其实是很类似的。

写作和编程最明显的共性在于:你都是在写东西。编码虽然不是自然语言的文学表达,但依然要遵循一套大多数程序员都理解的规则(语法)和形式,否则就没人看得懂。 ​

不过,更深层的联系在于:不论是好的程序还是好的小说,都是一系列局部和全局要素运作良好的结果。好的代码是由一个个清晰明确的语句组成的,但程序的各个模块也要经过充分设计,使内部交互简洁优雅。一本好的小说,也要注重宏微观两个层面,打磨每一个句子的同时,不能忽略总体结构与各部分的关系。

另一个可能不那么明显的相似点是你完成工作的过程:你必须不断取得进展,为此,你必须坚持不懈。众所周知,就目前来看,程序也好,小说也好,总不会自己完成的。20年的编程生涯让我对这一点理解深刻。我知道,要完成工作,就必须每天都坐在桌子前开始写:今天写100字,明天写200字,不管怎么说,不能一个字都不写。 ​

作为一个程序员,如果你写过自己的作品,而不只是某系统中的一个小函数,你应该知道,写作障在编程过程中也是存在的。唯一的区别在于,如果你是一个程序员,你没在工作,就是懒,而如果你是一位艺术家,写作障就成了艺术创作过程中一个独特迷人的组成部分了。


再谈谈区别。

我认为写作和编程最大的区别在于,小说一旦写完出版,绝大多数时候就不再修改了。偶尔也有作家在多年之后回头修改当年的作品,重新出一个Bug修复版,但这毕竟是少数,而且就算修改,也是一次性的。而代码往往会在不同人手中持续修改,不断演进。 ​

这个区别对两者的创作过程影响巨大:程序员认为,第一版系统可以很不完善,因为之后还要不断改进;而作家知道,自己的每一部小说都只有一次机会,因此写作的过程,其实更多地是不断的重写。重写某个句子,重写整个章节,重写不真实的对话——两次、三次,甚或八次、十次。

就这点而言,我认为程序员可以向作家学习:在写一个系统的最初版本时,在这个创作者还是独自一人,不被他人束缚,可以做任何事情的时候,应该假设,这个最初版本是她唯一的机会。在完成这个系统的过程中,她应该不断重写其核心部分,尝试找到最佳设计。我认为,这个最初设计会极大地影响未来版本,使其在持续发展中成为一个更好的系统。哪怕多年以后,最开始写的那部分代码早已成为一个庞大系统中的小零件了。

顺便更新下我的科幻小说的进展。改过许多遍之后,我已经把初稿发给我的编辑 Giulio Mozzi。他应该会在几周内回复我一些修改建议,然后我会根据他的建议进行新一轮的修改,如果顺利的话,一两个月内就会有终稿了。之后会先出版意大利语版本。同时,终稿也会发给一位美国的译者,待她完成翻译后,英文版也会很快出版。这是个漫长的过程,但我很享受。


公众号:ReadingPython

  • 编程技术相关,优秀内容的翻译与阅读分享为主

发表评论

评论列表,共 1 条评论


Carolyn

酷~