首页 > 杂记 > 正文

程序员眼中的「技术-艺术」光谱


当提到「艺术」这个词的时候,很多人头脑中首先浮现出来的,很可能是以梵高为代表的后印象派画作,也可能是文艺复兴时期米开朗基罗的雕像,或者是中国古代的诗词歌赋,甚至是玛雅文明的遗迹,诸如此类的东西。总之,我们平常所从事的技术工作——写代码、调试程序,这些都跟「艺术」毫不沾边。

然而,「艺术」这个词也有大众化的一面,有时它的适用范围非常之广。比如,我们可以说:“烹饪是一门艺术”,“钓鱼是一门艺术”。这个时候,「艺术」一词的含义大致相当于技能、技巧或手艺。甚至我们还经常听到这样的说法:“说话是一门艺术”,“生活是一门艺术”。这下好了,这两个论断足以把我们周围的大多数人都归入到「艺术家」的范畴。

「技术-艺术」光谱

之所以「艺术」这个词会产生这么多不同的用法,根源在于「艺术」这一概念本身就没有特别明确的和公认的定义,它的边界非常模糊。在本文中,我们并不想讨论如何在不同的场景下对「艺术」下定义的问题,而是借用这个词来表达一种特定的含义:与「技术」相对的程度。在英语中,「艺术」是用「art」来表达的,它是与「technology」相对的一个概念。我们通过这一特定含义来思考技术与艺术的关系。

首先我们来看一个跟技术密切相关的例子。在Stephen Boyd和Lieven Vandenberghe所著的关于优化理论的《Convex Optimization》一书中,作者在介绍凸优化(Convex Optimization)概念的时候,写道:

The challenge, and art, in using convex optimization is in recognizing and formulating the problem. Once this formulation is done, solving the problem is, like least-squares or linear programming, (almost) technology.
(译文:使用凸优化这种方法的挑战在于,如何识别问题并能形式化地表达出来,这一过程充满了「艺术」的成分。一旦这种形式化的表达完成了,解决问题就变得像最小二乘法或线性规划一样,几乎是一项纯「技术」的事情了。)

这段话说的到底是什么意思呢?我们再来进一步阐释一下。凸优化是什么并不重要,你只需要知道它是一个数学概念,或者一种数学方法,我们现实中有些问题可以用这种方法来解决。当我们使用凸优化这种方法来解决现实问题的时候,整个过程又可以细分为两个步骤:

  1. 首先需要把要解决的问题用数学公式形式化地表达出来,变成一个数学上的凸优化问题。由于同样的一个现实问题,可以有各种各样不同的数学表达,而其中只有某些特定的表达才符合要求,因此完成这个任务并不容易。关键是,这一形式化表达的过程没有定法,不存在一个完善的「操作手册」,我们只要按照它一步步来执行,就能达到目标。反之,我们能凭借的,就只有个人经验、技巧、想象力,甚至一点运气。从这个意义上来说,这个过程充满了「艺术」的成分。
  2. 然后是对于已经用数学公式表达出来的凸优化问题,求出它的解。由于凸优化问题的求解有成熟的解法,因此这个求解过程具有很强的确定性,甚至利用现成的软件就可以完成。所以从这个意义上说,这个求解过程就是一项纯「技术」的事情了,里面包含的「艺术」成分很少。

按照这个例子所表达出的含义,「艺术」和「技术」是相互对立的两个概念,他们表明了事物中所包含的各自成分的多少和程度。一件事物中,艺术性多一些,技术性便少一些;反之亦然。

现实中,不同的事情,不同的职业,艺术与技术这两者所占的比例自然也不尽相同。

比如绘画,画家首先要懂得色彩的原理,他在调色的时候知道哪些颜色混合在一起会产生什么样的色彩,以及会给人带来什么样的视觉感受;而且他应该懂得基本的透视法,知道在画面中如何进行几何构图才能产生纵深的感觉。我们知道,前者对于色彩的控制,实际是属于物理光学的范畴;而后者对于透视法的运用,则与现代的计算机图形学中的投影变换遵从同样的原理。这些都属于「技术」的范畴。但绘画这一行为的核心乃是对于人文精神和美学的主观表达,因此,对于技术的运用,并不妨碍我们将画家称为「艺术家」。相反,拍照的行为,只是利用光学的原理对现实画面做尽可能忠实的还原,就很难称得上是「艺术」。

再比如,工程师设计系统,编写代码。我们知道,不同的人对于架构设计以及基本算法编写的思路自然会有所不同,而不同的设计思路也反映了设计者的个人主张(贴近艺术的部分)。但是,工程师的整件工作,大部分是有清晰的原则可以遵循的。不管是分布式系统设计,还是面向对象的思想,都有成体系的整套理论来支撑。因此,工程师的工作,技术的成分要远远多于艺术的成分。

现在,我们可以做一件非常有趣的事情:以「技术」作为一端,以「艺术」作为另外一端,然后在两端之间画一条坐标轴,就像一个「光谱」。对于每个不同的职业,我们可以按照艺术与技术这两种成分所占的比例多少,将他们画在坐标轴的适当位置上。如下,我们得到了一个非常有意思的「技术-艺术」光谱:

「技术-艺术」光谱

「技术化」进程

著名科幻作家刘宇昆写过一篇小说,名字叫《真正的艺术家》,描写了一家新型的电影制片公司——旗语公司。这家公司采用了新的技术手段,制作出了完美的电影,并成为了电影业内无可争议的标杆。

旗语公司的地下室里有一套超级计算机系统,上面运行着一个被称为“大萨米”的AI算法。这家公司所有成功的电影都是由大萨米创作出来的,这是他们在电影市场上致胜的真正秘密。大萨米创作电影的过程与人类不同,它“不用剧本和情节图板,也不考虑主题、象征、致敬和电影研究讲义里出现的其他词汇”,它的创作是基于大数据的:

每天,大萨米都为高概念电影创造故事内核。它从数据库中随机挑出看似不和谐的想法:牛仔和恐龙、“二战”战术在太空实施、火星背景的潜艇电影,或者兔子和灰狗主演的爱情喜剧。
在不成熟的艺术家手中,这些想法都会无疾而终,可是大萨米基于旗语公司的数据记录,获得每种类型中热门电影的情感曲线,把它们当作自己的模板。

大萨米首先创作出粗略的故事情节,制作出初版的影片给试映观众播放,然后根据观众的反应进行微调:

通过探测每个人脸上由皮下血管收缩和扩张引起的细微变化,计算机监视着观众的血压、脉搏和兴奋度。
还有算法跟踪每张脸上的表情:微笑、大笑、哭泣、渴望、恼怒、厌恶、生气或者仅仅是无聊和漠然。测量脸上特定关键点——嘴角、眼睛和眉梢——移动的程度,软件能够做出细致的区分,比如是出于喜爱而笑还是因为好玩儿而笑。
实时收集的数据能够针对电影的每一帧形成图像,展示出观众观影过程的情感曲线。

接下来,大萨米就通过不断的试映、观测反馈、微调优化,使得观众的情感曲线逐渐逼近预期,最终「优化」出一部「完美」的电影。于是,一个可怕的结论出现了:“大萨米把艺术变成了工程”。

这虽然是小说中虚构的情节,但电影创作「工程化」的趋势早就在现实中出现了。好莱坞的电影制作,已经在按照一套标准的工业化流程在运作。即使是在最具创造力的编剧领域,自从美国著名编剧悉德·菲尔德提出「三幕剧结构」之后,好莱坞的电影剧本就基本都是按照这个模板创作出来的。

事实上,随着技术的发展和各种社科理论的进步,不光是电影领域,很多其它艺术领域也都在发生着「工程化」、「技术化」的进程。这相当于,在本文前面展示的「技术-艺术」光谱中,一些艺术门类开始向左移动。

这种「技术化」进程,当然不仅仅发生在艺术领域,它在科技领域也在发生;除此之外,它也在逐步深入到社会生活的更多方面。

对于互联网公司的工程师来说,在十年前,设计和部署一套分布式系统架构,还是一件不那么「标准化」、也充满挑战的工作;而如今,完善的微服务框架、功能强大的消息中间件、种类丰富的分布式存储系统,让搭建一个分布式集群服务,变成了谁都可以胜任的工作。

在产品设计领域也是如此。以产品经理为例,由于大学教育中始终没有一门课程是专门讲解如何设计产品的,所以在开始很长的一段时期内,产品经理这一职业都几乎是无从入手的。但是,随着互联网产业的发展,产品经理的工作也变得「有据可依」了。从用户体验,到设计心理学,到数据驱动思想,到增长运营理论,这一工作也有了越来越多的理论支撑。而且,随着互联网产品的繁荣,人们进行模仿和学习的成本也越来越低了。

「技术化」进程,是必然的趋势。科学技术的发展,本质上就是一个逐渐消除对未知的恐惧,并向着「技术化」和「科学化」的方向不断推进的过程。这一过程,让原本具有挑战性的、具有「艺术」意味的工作,门槛不断降低,变得大众化,职业的可替代性增强,甚至可以规模化复制。试想,当精美的手工艺品可以在流水线上批量生产出来的时候,它就不再是艺术了。

当然,人类对于艺术的追求是无限的。当旧的领域随着「技术化」的进程变得越来越无趣时,人们一定会继续探索新的艺术形式和未知领域。从「技术-艺术」光谱上看,一方面,「技术化」进程让成熟的领域逐步向左移动;而另一方面,人类对于未知领域的探索,同时也在不断地将光谱向右推进。最终形成了一个有机的大循环:

「技术-艺术」光谱循环

小结

按照本文前面的分析,任何领域的工作,都包含技术和艺术两种成分。其中,技术的成分相对容易规模化,门槛较低;而只有属于艺术成分的那一部分,才是真正的挑战。

具体到程序员来说,即使遵循同样的代码编写规范和系统设计规范,不同人做出的实现仍然差异巨大。正是在这种看似整齐划一的规范之外的发挥空间,让编程具有了一丝艺术的成分在里面。所谓「编程的艺术」,并不是说把代码敲出来能运行,就是艺术了,而是通过创造性的思维,实现了对于未知和不确定性的把握的这个过程,达到了接近「艺术」的高度。

另一方面,科技的发展仍会不遗余力地推进「技术化」的进程,并不断降低技术的门槛。就像iOS开发一样,十年前能掌握这种技术的人寥寥无几,但今天iOS开发的人才早已比比皆是。只有不断地探索未知,主动进行创造性思维,乐于去做那些具有「艺术」意味的工作,才能永远跟得上时代发展的步伐。

(正文完)

其它精选文章


原创文章,转载请注明出处,并包含下面的二维码!否则拒绝转载!
本文链接:http://zhangtielei.com/posts/blog-tech-art-spectrum.html
欢迎关注我的个人微博:微博上搜索我的名字「张铁蕾」。
我的微信公众号: tielei-blog (张铁蕾)
上篇: 在技术和业务中保持平衡
下篇: 看得见的机器学习:零基础看懂神经网络