编程真的是艺术吗?

最近的问题特别多。近几天再看得一本书《梦断代码,徐兴问我这是一本关于什么的书,我告诉他是一本寓言,一本关于软件开发,产品开发,软件工程,软件管理的启示。

其中有一个比较启发的地方,编程到底是不是艺术。很多非计算机人士经常会看到莫名其妙的符号和无与伦比的抽象后折服于程序员的惊人技艺。但这些真的是艺术吗?我从一开始就在怀疑这个。我们看到音乐,绘画这些艺术,无不是先从研究先人的杰作开始,但是很多时候我们在开始编程时是从研究他人杰出的代码和开发经历开始的吗?很多时候都不是。

当然上面这个不足以挑战“编程是艺术“这个结论。书中举了一例,如果所有的作家都有自己的“公司“,只有海明威的公司的人才能读到老人与海,你能想象还能接出什么丰盛的文学成果么?

计算机,或者编程的教育方式没有鼓励过类似“推敲“这样的行为。而这些是其他艺术必须也是最为重视的东西。除非编程真的不是艺术,或者说是另一种艺术,廉价的艺术。

编程到底是不是艺术?程序员到底是艺术家还是工程师?我现在还看不出来。