专栏名称: 51CTO
51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术干货,还会不定期的举办有奖活动,敬请关注。
目录
相关文章推荐
新浪科技  ·  【外媒:#OpenAI拟制造人形机器人#】据 ... ·  2 天前  
新浪科技  ·  【#山姆回应代购厕所地上分蛋糕#】12月23 ... ·  3 天前  
51好读  ›  专栏  ›  51CTO

程序员是高大上的艺术家,而不是码农!

51CTO  · 公众号  · 科技媒体  · 2017-01-16 11:44

正文


如若转载本文请在文章顶部标注“本文转载自51CTO(ID:weixin51cto),作者:熊小妹


原文标题:How Is Writing Lord Of The Rings Like Writing Software?

作者:Todd Hoff


写程序就像作家写小说一样,程序就类似一个剧本。如此一来,程序员和作家其实是同行,而且,他们都是坐在电脑跟前不停地敲打着键盘,两人在一起没准能用键盘奏一曲呢~


为什么这么说呢?小说是从构思到实现,程序从编程到运行,二者都是在运行你的思想,只是他们的表达出来的形式不太一样。作家在下笔之前若没有想法,就会出现很错乱的故事剧情,毫无逻辑可言。写程序也一样,先酝酿好想法,才好写下来告诉二逼电脑该干嘛。不过程序语言不是每个人都读的懂,毕竟对大多数人这是外语。但看不懂火星文,不代表没有好的火星文作品。


大家都会记得第一次写出来的作文,是多么混乱和随意,因此你想写出好作文必须对写完的文字进行调整、润色,这在编程中称为重构。

并且,作家和程序员,等级也有着明显的差异。

作家可以创作,程序员也可以。但这跟实力和理想有关。写程序如写文章,写出来的好坏,得看那位程序员的功力。


给大家举个列子,我看完《指环王》这本书之后,不由得感叹《指环王》真是一部神作。就像程序员写代码一样~


《指环王》最初只是《霍比特人》的续集。托尔金的出版商想通过续集从大获成功的《霍比特人》大赚一把。但《精灵宝钻》并不是成功的续集。于是,托尔金开始打算为《霍比特人》创作一个续集。第一本书的书名是《黑影重临》,而不是《指环王》。这部小说仍然是写给孩子看的。弗罗多被称为宾果,斯特尔德是个名叫特罗特的霍比特人,比尔博打算结婚,魔戒仍然只是一枚戒指。这个故事没有明确的动机或方向。托尔金曾问道:“霍比特人还能做什么?”接着,霍比特人的想法涌现了出来。


托尔金写了一份又一份草稿,寻找引领故事的方向。托尔金写道《黑骑士》的场景时,一切都变了。一开始,黑骑士实际上是白骑士。甘道夫来找宾果谈话。随后故事开始展开。随后,突然之间,马的颜色从白色变成了黑色,甘道夫变成了披着黑色斗篷、头戴兜帽的人,这就类似于编程中的一个新的框架。


我们怎么知道,这是一个新的框架呢?幸好,通过克里斯托弗·托尔金,我们了解了他父亲对《指环王》所作的改变。科里·奥尔森博士(注:托尔金小说的权威研究者)向我们介绍了实际上是《指环王》的git日志。


想象一下,这好比是从真正的托尔金研究专家、天才分析师那里读到Papers We Love论文,这很神奇。


我们看到一个又一个想法在文本中涌现。这是持续不断的重构和新开发过程。一些想法从头贯穿到最后。许多想法被摈弃,许多想法发生了演变。许多对话被保留下来,但被赋予了不同人物,以便在不同的情形下说出来。


这个创作过程的整体感觉就像是在开发软件,只是结果不是一款切实可行的应用软件,而是有史以来最具影响力的故事之一。


对我来说,这个教训印证了这句老话:

任何成功的大型系统都是从成功的小型系统开始的。这同样适用于作家和程序员。


在创作过程中,你很容易对自己没信心,因而感到沮丧。无论故事还是程序,不一定一开始都很出色;只有不断进化,才会获得出色的结果。


因此,我要告诉各位,我们不是码农,我们是艺术家~