views, comments.

(2) 论优雅的本质

Omnivore

Read on Omnivore

Read Original

date_saved: 2024-03-20 03:32:20

date_published: 2024-01-10 19:00:00


Full Content:

“优雅是你看到就知道的东西,但却难以定义。” 这篇文章从探讨“优雅”的定义入手,逐渐深入到优雅在不同领域(如数学、代码编写、自然界、流行文化、运动等)的体现。接着,讨论了优雅的局限性和在实际应用中的挑战。

它不是简单地追求外表的华丽,而是在混乱中寻找秩序,在复杂中保持简洁。 它是一种你一见就知的美,但却难以用言语定义。 它是实用性与美观之间的完美平衡,是加一点过多,少一点又不足的中庸之美。 它是……

正如在其他领域一样,软件界里的“优雅”也是一个充满魅力的词汇。我对“优雅”在各个领域中的表现感到赞叹,并且一直努力在我的工作中追寻它。然而,要真正领略到优雅,我们必须保持开放的思维,并思考优雅是否始终是一个值得追求的目标。

优雅的解决方案是否更易于理解和维护?优雅的文字是否更加清晰有力?优雅的设计是否更易于使用?优雅的软件架构是否更容易实现?事实上,实用性(practicality)、简单性(simplicity)、可用性(usability)与优雅性(elegance)之间存在明显的差异,而且每种属性的优势也各有不同。

首先,我们来探讨一下什么是优雅。在数学中,优雅显得尤为纯粹。以欧拉恒等式为例,它以极其简洁的形式传达了丰富的信息:

诗歌则体现了文本的优雅,比如爱德华·艾斯特林·卡明斯(e.e. cumming)的《在一座风景如画的小镇里》中展现的那样:

在一座风景如画的小镇里。 (钟声随风飘荡,时高时低)

代码则是文本和逻辑的结合,因此文本和逻辑的优雅也延伸到了代码当中。以下两幅图片展示了用 Haskell 语言编写的两个程序。这两个程序都实现了同样的功能:打印《99 Bottles of Beer On the Wall》(译注:一首歌曲)的歌词。但哪个程序编写得更优雅呢?

在编程领域,对于“优雅”的定义之一是“最简的、可行的解决方案(least possible solution)”。但我更偏爱“迭代简化(reduction by iteration)”这个概念,因为达到优雅的过程与其最终成果是密不可分的。

我想到的另一个定义是“在给定信息水平下熵值最低的解决方案(the lowest entropy solution at a given level of information)”。这种定义将优雅与信息论紧密联系起来。

用图形化的术语来说,即在给定解决方案的空间中,最优雅的结果将出现在信息水平恒定的特征平面上的最低点。

人们有时会错误地将“优雅”等同于“简单”,但事实上,优雅更多的是与秩序相关。请记住,优雅来自于信息的有序性因此,当信息量增多时,优雅的东西并不一定“简单”

这也是我选择曼德布洛特集合(Mandelbrot set)作为文章首图的原因。这幅分形图虽然信息量庞大且复杂,但它的每个层次都是井然有序且可重复的。因此,我认为它无比优雅。

有序性、无序性和复杂性是混沌理论研究的核心领域。混沌理论揭示了一个关键观点:即便是在看似杂乱无章的复杂系统中,也隐藏着一定的秩序。而在完全无序的系统中,则没有任何规律可循。

对于初学者来说,“混沌”这个概念可能需要一段时间去理解。其核心意义在于,混沌系统的下一状态是由当前状态决定的。而在一个真正的无序系统中,下一个状态是完全无法预测的。

即使在极端复杂的系统中,潜藏的秩序也能孕育出精妙的优雅。以自然界为例,它包含了几乎无穷无尽的混沌而有序的信息。正是这个原因,我们对大自然中所展现的优雅之美永远不会感到厌倦。

我们对人造作品优雅与否的判断,在很大程度上取决于它们的有序性,以及这些作品所承载的信息量。

波洛克的滴水画之所以被视为永恒之作,可能是因为它们与自然界的混沌特性密切相似。同样,某些人类的文化实践与自然的融合如此紧密,以至于它们似乎永不过时。

比如,日本的茶道之所以迷人且优雅,可能是因为它刻意融入了自然的混沌元素:茶的泡沫、抹茶的细粒、保留自然质感的木材和竹子,以及搅拌器的不规则形状。

风格与美学息息相关,这是一个重要的观点,我们将在下文中进一步探讨。

在前文中,我探讨了文本和逻辑的优雅是如何延伸到代码当中的,以及像曼德布洛特集合(Mandelbrot set)这样的复杂系统是如何成为数学优雅与美学优雅之间的桥梁的。

那么,在流行文化中对于优雅的理解,比如剑桥公爵夫人凯特·米德尔顿又是如何展示大众心目中的优雅的呢?在流行文化中,她被认为是优雅的,但她真的符合我们所定义的优雅吗?

如果公爵夫人衣着华丽,但是穿搭乱七八糟,那么她就不能被称为优雅。但实际上,她总是打扮得既吸引人又整洁得体。考虑到她传达的信息井然有序,我们确实可以说她是优雅的。

优雅不仅存在于时尚领域,它还融入了人类的诸多活动之中。拿弗雷德·阿斯泰尔来说,他的舞蹈就是优雅的化身。阿斯泰尔的舞步就像是复杂却又有序的系统,让人捉摸不透他接下来会做什么,但我们可以感受到他达到那种优雅状态的过程。他的舞蹈简约却不失优雅,有效地传达了他艺术理念中的精髓部分。

在运动领域深入一步,我们可以发现,某些体育运动天然就包含着优雅。

例如,在柔道中,有一个核心原则叫做“seiryoku zen’yō”,即“以最小的努力达到最大的效果”。观察一下柔道中的“Harai goshi”技术,你会发现它是如何高效利用重力,而不是单纯的依赖力量。

正如柔道中所展现的那样,人们对优雅的追求极其强烈。因此,在许多艺术领域,作品的价值通常是通过其所展现出的优雅程度来衡量的。

事实上,我在进行插花时的体验与设计用户界面(UI)时的体验惊人地相似。为什么会这样呢?回想一下我对优雅的定义,即“在给定信息水平下熵值最低的解决方案”。将插花布置视为一个三维网络或‘边界’问题来考虑:

每个点可以代表一个花朵,或者广义上的信息。它们的最优布局是根据某种基本规则来实现最低熵,这个规则可能包括边的长度、边是否交叉、边长的变化,甚至可能涉及边界间的面积等因素。

面对这个规则,通常会有多个最优解吗?从而允许各种艺术性的解读,而没有一个解决方案绝对优于其他方案?或者,是否存在一种唯一的最优解,这是否意味着对于任何一束花,都只有一种“最佳”布局?

在思考这个问题时,我们需要记住,如上文的图表所示,解决方案的表面可能是一个有多个最小值的平面——也就是说在这种情况下存在不止一种最佳的艺术解决方案。

一旦我们找到这个公式,或许我们就可以将其举一反三地应用于其他事物的设计,比如用户界面(UI)中!实际上,在另一个领域早已有类似的先例。

彼得·乌菲姆采夫在他的《衍射物理理论中的边缘波方法》一书中,提供了计算雷达截面的公式,将隐身技术从艺术形式转变为正式的工程实践。也许,用于计算用户界面(UI)中熵的类似公式也存在,这样就能为优化它们的设计提供方法。

在实际应用中,追求优雅往往会遇到种种限制。比如,在软件开发领域,表面看似优雅的解决方案可能因为过分精简所携带的信息,导致其他开发者难以进行后续的维护工作。

还有另外一种情况,某些设计看上去可能不够精巧优雅,但实际上,这是那些行业内深有见识的专家们故意为之的选择:

像MSN这样的主流网络媒体平台,通常会将产品的可用性置于优雅之上。但这并不总是正确的。

有时候,我觉得谷歌的设计团队过于迷恋优雅的设计理念,以至于他们会有意减少界面的信息量,仅仅为了追求外观上的简洁。

这样做的后果是,他们的界面有时反而变得不太好用。例如,在使用Google文档时,我偶尔会找不到自己明明知道存在的功能和内容。

因此,过分追求优雅有时会让设计与初衷背道而驰,让人感到困惑。曾经,我设计了一个界面,它根据系统的状态变化来适应不同的上下文,这是“分级参与(graduated engagement”)”理念的一种演变。它的设计优雅到令用户始终能紧贴他们的需求,我为此感到自豪——但这也许是个错误。

在这种设计下,虽然界面中的功能在无形中被修改,但这可能会导致界面违背用户的预期使用模式,从而降低了界面的易用性。我们需要小心,不要让对优雅的追求变成一种盲目的迷恋。

在我所遵循的定义中,“优雅”指的是“在给定信息水平下熵值最低的解决方案”。那么,当信息量可变时,我们该如何拓展优雅设计的边界呢?关键在于提供恰到好处的信息量,让人们能够在必要时有效地进行推理。

换句话说,首先应考虑可用性;这一点连同美学考量,是斯图尔特·费尔德曼在其2014年的论文《工程制品中优雅的度量方法》中讨论的核心。费尔德曼实际上是用秩序的度量来评价美学。

塔夫特的《定量信息的视觉显示》很好地探讨了可用性(信息水平)和美学(秩序)之间的相互作用。

塔夫特的优秀例子包括查尔斯·米纳德 (Charles Minard) 1869 年的图表,其中显示了拿破仑 1812 年俄罗斯战役军队的人数、他们的行动以及他们在返回途中的气温情况。

拿破仑 1812 年俄罗斯战役,查尔斯·米纳德 (Charles Minard) (1869)

纽约地铁地图的发展历程,实际上是一场关于美学与实用性的较量。这张由 Goldstein 和 Vignelli 等人设计的地图,就是我初次乘坐纽约地铁时所使用的。它的特点是过分简化,以至于可以说是“简化过头”了。

纽约市地铁地图,作者:Goldstein、Vignelli 等人 (1972)

70年代的纽约地铁地图,虽然清楚展示了各条线路和它们的交汇点,却未能精确表现出地铁网络的实际规模。这个设计上的漏洞,限制了乘客在规划旅程时获取的信息量,也让他们难以准确判断自己在地铁系统中的具体位置。

直到70年代末,地图的一次更新和改进引入了更精确的地理尺度,使得地图不仅仅是线路的展示,而是更全面地反映了现实世界中的地理布局。

约翰·陶拉纳克 (John Tauranac) 和迈克尔·赫兹协会 (Michael Hertz Associations) 绘制的纽约地铁地图 (1978)

随着时间的推移,带有地理信息的地图不断发展演变,其设计越来越接近真实的地理尺度。不要忘了,优雅的定义还包括了实用性和美观性两个方面。

在我眼中,1972 年设计的地图更富有优雅感,但从那时起,这种地图的实用性已经得到了显著的提升。

再者,自70年代以来,人们的审美观念也发生了变化。对现代观众而言,新版的地图可能在美学上同样吸引人——这恰恰呼应了我之前提到的风格改变。我们不断地对设计和物品进行创新,它们的优雅程度也会随着时间和不断变化的审美观念而改变。

在很多领域中,要想创造出优雅的解决方案,不仅仅需要对问题有深刻的理解,更需要达到对其精通的程度。

例如,在物理学中,理论的优雅程度往往与它能解释的现象多少成正比,这反映了该理论正在逐渐接近于现象背后的根本模型;量子力学被认为是到目前为止最好的理论。程序员追求优雅的代码也是基于同样的原因。

与那些勉强解决问题的临时方案相比,一个真正优雅的解决方案能够完美适应各种不同场景,原因在于它与问题本身高度一致。如果方案达到了真正的优雅,那么它将不再需要更新,也不会因为基础模型中未被预见的特性而出现故障。而且,由于不需要处理异常情况,它的简洁性也更加易于理解。

我曾经花费数月时间编写一个复杂的系统。直到最后一夜,我才真正深刻地理解了那个模型。因此,我决定放弃之前数月的努力,最后仅用一天时间就重新编写了整个系统。

在此,我们以一种比较的视角来结束本次讨论。让我们来探讨一下“优雅”在NASA的工程系统中是如何被定义的。

系统工程的核心目标应该是创造出优雅的设计。这个观点最初是由罗伯特·弗罗施(Robert Frosch)在一次演讲中提出的。他发现,当他问系统分析师们:“这个解决方案优雅地解决了实际问题吗?”时,经常得不到答复。听众们似乎也不理解这个问题。

优雅是你看见就会知道的东西,但并不容易定义,尤其是在系统工程的层面上。

韦伯斯特对“优雅”的定义是“有尊严的丰富和优美(dignified richness and grace)”,这一定义不仅体现了对系统设计意图的态度,也反映了社会对该系统的响应。该定义揭示了系统的关键特性。

“有尊严的优美(Dignified grace)”意味着系统在多种应用中展现出的显著易用性或操作的便利性。“有尊严的丰富(Dignified richness)”则指的是系统在应用中的显著坚固性,系统设计目标的全面实现,以及对那些隐含意图的满足。

此外,有一个有助于进一步理解这一定义的术语是“协调性(concinnity)”,韦伯斯特将其定义为“各部分的巧妙安排、和谐与优雅”

这个定义传达了一个组织有序、系统内部关系定义精确的系统概念。系统的美学体现在它的丰富性、优雅和协调性上。

系统布局和建设的效率也在“巧妙的部件布局和协调性”中得到体现。一个结构合理的系统自然也是一个高效的系统。

因此,我们可以这样定义系统的优雅:“一个在应用中稳健、完全满足明确和隐含的目的、结构良好并且操作流畅的系统。”

本文由参考答案策展推荐。

「参考答案」是⼀项为终⾝学习者打造的内容策展编辑服务,专注分享更具⻓期价值的内容,希望成为读者的优质信息捕⼿。

欢迎在⼩红书/即刻/微信搜索「参考答案Answers」,了解更多内容。

本内容仅供学习交流,⾮商业使⽤,版权归原作者所有。


Highlights

实用性(practicality)、简单性(simplicity)、可用性(usability)与优雅性(elegance)之间存在明显的差异 ⤴️

在编程领域,对于“优雅”的定义之一是“最简的、可行的解决方案(least possible solution)”。 ⤴️

但我更偏爱“迭代简化(reduction by iteration)”这个概念,因为达到优雅的过程与其最终成果是密不可分的。 ⤴️

我想到的另一个定义是“在给定信息水平下熵值最低的解决方案(the lowest entropy solution at a given level of information)”。这种定义将优雅与信息论紧密联系起来。 ⤴️

用图形化的术语来说,即在给定解决方案的空间中,最优雅的结果将出现在信息水平恒定的特征平面上的最低点。

⤴️

优雅来自于信息的有序性。因此,当信息量增多时,优雅的东西并不一定“简单” ⤴️

曼德布洛特集合(Mandelbrot set) ⤴️

混沌理论揭示了一个关键观点:即便是在看似杂乱无章的复杂系统中,也隐藏着一定的秩序。 ⤴️

其核心意义在于,混沌系统的下一状态是由当前状态决定的。而在一个真正的无序系统中,下一个状态是完全无法预测的。 ⤴️

在实际应用中,追求优雅往往会遇到种种限制。比如,在软件开发领域,表面看似优雅的解决方案可能因为过分精简所携带的信息,导致其他开发者难以进行后续的维护工作。 ⤴️

过分追求优雅有时会让设计与初衷背道而驰,让人感到困惑。 ⤴️

我们需要小心,不要让对优雅的追求变成一种盲目的迷恋。 ⤴️

在我所遵循的定义中,“优雅”指的是“在给定信息水平下熵值最低的解决方案”。那么,当信息量可变时,我们该如何拓展优雅设计的边界呢?关键在于提供恰到好处的信息量,让人们能够在必要时有效地进行推理。 ⤴️

换句话说,首先应考虑可用性; ⤴️

纽约地铁地图的发展历程,实际上是一场关于美学与实用性的较量。这张由 Goldstein 和 Vignelli 等人设计的地图,就是我初次乘坐纽约地铁时所使用的。它的特点是过分简化,以至于可以说是“简化过头”了。

纽约市地铁地图,作者:Goldstein、Vignelli 等人 (1972)

70年代的纽约地铁地图,虽然清楚展示了各条线路和它们的交汇点,却未能精确表现出地铁网络的实际规模。这个设计上的漏洞,限制了乘客在规划旅程时获取的信息量,也让他们难以准确判断自己在地铁系统中的具体位置。 ⤴️

直到70年代末,地图的一次更新和改进引入了更精确的地理尺度,使得地图不仅仅是线路的展示,而是更全面地反映了现实世界中的地理布局。

约翰·陶拉纳克 (John Tauranac) 和迈克尔·赫兹协会 (Michael Hertz Associations) 绘制的纽约地铁地图 (1978) ⤴️

我们不断地对设计和物品进行创新,它们的优雅程度也会随着时间和不断变化的审美观念而改变。 ⤴️

在很多领域中,要想创造出优雅的解决方案,不仅仅需要对问题有深刻的理解,更需要达到对其精通的程度。 ⤴️

例如,在物理学中,理论的优雅程度往往与它能解释的现象多少成正比,这反映了该理论正在逐渐接近于现象背后的根本模型;量子力学被认为是到目前为止最好的理论。程序员追求优雅的代码也是基于同样的原因。 ⤴️

与那些勉强解决问题的临时方案相比,一个真正优雅的解决方案能够完美适应各种不同场景,原因在于它与问题本身高度一致。如果方案达到了真正的优雅,那么它将不再需要更新,也不会因为基础模型中未被预见的特性而出现故障。而且,由于不需要处理异常情况,它的简洁性也更加易于理解。 ⤴️

让我们来探讨一下“优雅”在NASA的工程系统中是如何被定义的。 ⤴️

系统工程的核心目标应该是创造出优雅的设计。这个观点最初是由罗伯特·弗罗施(Robert Frosch)在一次演讲中提出的。 ⤴️

优雅是你看见就会知道的东西,但并不容易定义,尤其是在系统工程的层面上。 ⤴️

“有尊严的优美(Dignified grace)”意味着系统在多种应用中展现出的显著易用性或操作的便利性。“有尊严的丰富(Dignified richness)”则指的是系统在应用中的显著坚固性,系统设计目标的全面实现,以及对那些隐含意图的满足。 ⤴️

“协调性(concinnity)”,韦伯斯特将其定义为“各部分的巧妙安排、和谐与优雅”。 ⤴️

这个定义传达了一个组织有序、系统内部关系定义精确的系统概念。系统的美学体现在它的丰富性、优雅和协调性上。 ⤴️

一个结构合理的系统自然也是一个高效的系统。 ⤴️

因此,我们可以这样定义系统的优雅:“一个在应用中稳健、完全满足明确和隐含的目的、结构良好并且操作流畅的系统。” ⤴️