2.2.1 代码也能成为艺术作品
本章标题叫作“代码的艺术”,很多人不禁会问:代码和艺术有什么关系?代码能成为艺术作品吗?
具体将哪些代码称为“艺术作品”或“非艺术作品”,说起来有些困难,我们先通过建筑物找找感觉。我们知道,即使都是“房子”,也可以有很大差异。如图2.1所示,类似这样质量较差的房子在很多地方都能看到。这样的房子可以居住,但是可以称之为艺术品吗?
图2.1 质量较差的房子
图2.2中是一个标准的居民楼,在全国各地都非常常见,这样的居民楼可以称为艺术作品吗?
图2.2 标准的居民楼
图2.3展示的是故宫的角楼,这是中国建筑的一个典范之作。这可以被称为艺术作品吗?
图2.3 故宫的角楼
通过展示这些建筑物图片,大家可以回想自己写过或见过的代码。这些代码或许都可以运行(就像房子都可以居住一样),但有些代码可能像图2.1中的房子一样“简陋”,有些代码可能像图2.2中的楼房一样规整,而有些代码可能会像图2.3中的建筑物一样成为精品。那么你希望自己写出什么样的代码?
关于“艺术”,在百度百科中可以搜索到如下定义,如图2.4所示。
图2.4 “艺术”的定义
基于以上定义,我们可以对照来看编写代码的行为是否可以称为艺术创作。
编写代码需要借助物质材料吗?编写代码并不能凭空进行,需要借助计算机系统。
编写代码需要使用工具吗?编写代码要使用一系列的工具,包括设计、编写、编译、调试和测试等方面的工具。从某种意义上说,使用工具的能力,反映了一名软件工程师的专业水平。
编写代码需要激情吗?当你对一个项目不感兴趣时,你能把代码编写好吗?所以,编写代码非常需要激情!
编写代码需要具备创造性吗?对于代码来说,“复制”和“粘贴”操作的价值为零,代码的价值更多来自创造性工作。编写代码是一件非常具有创造性的工作!
从以上分析可以看出,代码也可以成为艺术作品!
代码不仅仅是一些字符,更是人类智慧的结晶。代码的价值不在于它的长短和字数,而在于其中凝结了多少智慧。
代码也可以反映出一个人或一支团队的精神面貌。我们常说“文如其人”,如果想了解一名软件工程师或一支研发团队的素质,就去看看他(们)编写的代码。