我们常视艺术活动与科学工作为绝不相干之事,但两者实有类同。科学与艺术以不同的比例分据了创作与洞见的多数工作。
工程师当然要在艺术与科学的深渊上搭起桥梁。工程常被定义为将科学原则应用于满足人类需要。但它也让科学原则背上创意的负担,将他们从质朴的抽象里拉到挫折与愿景的妥协宇宙中。如果我们所见,软件有时会难以应付,是因为它不可见。不可见之物难以设想,而高度复杂的不可见物作为沟通的话题更是难上加难。不过不可见并不是唯一的问题,我们也看不见电、磁等,可是想要从软件中取出一块行为保持一致的部分以便诊断问题,这却是我们常常无法做到的。
《计算机编程艺术》向程序员展示了如何设计和测试高效的算法。写出在转瞬间就能对信息排序的代码看似简单,但如果计算机无数次地重复这个算法以完成同一任务,就会积少成多。因此,每个小的改动都对最终价值有贡献
程序也是一种艺术,它也许会宏伟、华贵、超卓。