代码如诗,因此请不要代码如Shi

下周久违的仙五就要到家了,因此本文是我这周末在学校作完,下周休息且将专注通关,那么隔周的文章就会是相关的体验和评测了。

打开这个blog所依赖的wordpress项目官网,首页下方常年静静地躺着这么一句话:CODE IS POETRY(代码如诗)。

如今,编码已是大部分程序员仅有的几个生存技能之一了。程序员写代码的目的无非是养家糊口,费尽脑汁地想方设法满足需求,做到让客户满意,老板放心,以此换来一份还算体面的工作和报酬。除此之外 ,罕见的假期和无尽的加班——这既是冰冷的deadline要求,如今也已成为这个竞争严酷的行业的一个标志性特征。

我第一次听说“IT工业”这个词汇时就产生一些疑惑,这个看似一(多)人一(多)本打天下的行业怎么能和生产高度社会化的大工业联系在一起——后来等逐渐快“想明白”了,现在又普遍表达为“IT服务业”。可见我们自己都时常纠结于这些政治和经济词汇中,对个人修行又有什么好处。 因此我认为,程序员的工作应归属于文学类,确切地讲是代码诗人。

若干年前,我也曾写过许多如今看来颇幼稚可笑的诗歌,现在想想文学作品的任务不外就是叙述事实,表达观点或抒发情感,作家的阅历和天赋决定了读者的口碑。相比较而言,代码是程序员用来叙述事实,表达观点的终端工具,功能上和文学的区别似乎不大。唯一不同之处就在于,读者通过文字大概就可以了解作家,用户却只能通过综合的产品体验去评价程序员,在某种意义上说,程序员要比作家难作的多!另一方面,文学往往惊艳于作家的灵光一闪,而代码却更多依赖于理性和经验,源泉不同,其表现却是相同:同样一幅场景,无论使用文字还是代码,都有无限可能的表达方式。

而且,代码还不能仅仅等同于一般意义上的文学作品。计算语言学(或计算机语言学)特别注重强调形式化,这是使用计算语言表示数理方法的基础。然而形式化并不意味着必须符号化,否则使用计算语言的优势也无法得以体现。现代计算语言的发展也证明了计算语言是朝着形式化与拟人化双重目标前进的。而文学作品中形式化最为深刻的体裁恐怕就是那些诗词歌赋了——这难道不是代码如诗的又一力证!

此时我又想起了数年前的那数十篇诗歌,无一不是逃离理性的表达。如今我所能做的,竟也只是纯粹理性状态下才能写下的一行行字符。尽管意境不同,美好却是不变。于是强迫自己亲手写下每一行代码,过程艰辛,却也心安理得,纵使独臂难支,体验依旧。

最后,代码于我如诗,于众则未必。我喜欢读如诗的代码,却非常厌恶如Shi的代码,也许无论是现在或未来,我都不会成为一名代码诗人,但这却不影响我作为如诗代码的读者之一。我唯一的愿望就是:眼前这篇代码能多些诗一般的灵气和酣畅,少些Shi一样的世俗和愚蠢。若能如是,还有什么兴趣爱好堪比与此呢。