简单之美(The Beauty of Simplicity)

简介:       As an admirer of the “artistic flare, nuanced style, and technical prowess thatseparates good code from great code” e...

      As an admirer of the “artistic flare, nuanced style, and technical prowess thatseparates good code from great code” explored by Robert Green and Henry Ledgardin their article “Coding Guidelines: Finding the Art in the Science” (Dec. 2011),I was disappointed by the authors’ emphasis on “alignment, naming, use of whitespace, use of context, syntax highlighting, and IDE choice.” As effective asthese aspects of beautiful code may be, they are at best only skin deep.

       我对“艺术的闪耀,有细微差别的风格和将好的代码与卓越的代码区分开来的技术能力”敬佩至极,而在文章“编程指南:在科学中寻找艺术”(2011年12月)中,Robert Green和Henry Ledgard两位作者对之进行了探索。令我感到失望的是,作者强调了“对齐,命名,空格的使用,上下文的使用,句法规则的重要性,以及IDE的选择”。对于优美的代码来说,这些方面固然重要,但它们最多只是表面上很肤浅的东西。

 

       Beautymay indeed be in the eye of the beholder, but there is a more compelling beautyin the deeper semantic properties of code than layout and naming. I alsoinclude judicious use of abstraction, deftly balancing precision andgenerality; elegant structuring of class hierarchies, carefully trading betweenbreadth and depth; artful ordering of parameter lists, neatly supporting commoncases of partial application; and efficient reuse of library code, leveragingexisting definitions with minimum effort. These are subjective characteristics,beyond the reach of objective scientific analysis—matters of taste not offact—so represent aspects of the art rather than the science of software.

       虽然实际上只有旁观者才可能看到优美性,但相对于布局和命名来说,在更深层次的语义特性中有更具说服力的优美。这些更深层次的东西包括了抽象的明智使用,熟练的平衡精度和一般性;类层次的优雅组建,宽度与深度之间的合理折中;参数列表的艺术式排序,部分应用的共同事例的恰当支持;以及库代码的高效重复利用,用最小代价来改变当前定义。这些都是主观的特性,而非客观的科学分析——是味觉,而非事实的问题——因此代表了艺术方面,而非软件科学方面。

 

       Formalizingsuch semantic properties is more difficult than establishing uniform codingconventions; we programmers spend our professional lifetimes honing our writingskills, not unlike novelists and journalists. Indeed, the great Americanessayist Ralph Waldo Emerson (1803–1882) anticipated the art in the science ofsoftware like this: “We ascribe beauty to that which is simple; which has nosuperfluous parts; which exactly answers its end; which stands related to allthings; which is the mean of many extremes.” It is to this standard I aspire.

        要规范这些语义特性比建立统一的编程规则更难;我们程序员用整个职业生涯来磨练我们的写作水平,这与小说家和记者没有什么两样。事实上,美国最伟大的作家Ralph Waldo Emerson(1803–1882)像这样预言软件科学中的艺术:“我们将优美归结为简单的东西,它没有多余的部分,它精确地道出了其目的,它代表了相关的所有事物,它是许多极端情况的折中。”我崇拜的是这个标准。

 

Jeremy Gibbons, Oxford,U.K.

 

 

参考文献

The Beauty of Simplicity, Communicationsof the ACM, vol. 55, no. 4, April 2012.

目录
相关文章
|
5月前
|
设计模式 算法 程序员
探索代码之美:我的编程之旅
【7月更文挑战第30天】在数字世界的迷宫中,我踏上了一场与代码共舞的奇幻旅程。从最初的迷茫和困惑,到逐渐解锁编程的奥秘,我发现了一个充满创造力和逻辑美的新世界。本文是一篇个人的技术感悟,记录了我在编程之路上的成长历程,以及我对技术美学的理解和追求。
|
2月前
|
算法 程序员
编程之舞:探索代码之美
【10月更文挑战第3天】本文将带您领略编程的艺术,从初学者的困惑到专家的洞察,我们将一起探讨如何通过代码表达创意,解决问题,并实现技术与美学的完美结合。准备好随着代码的节奏起舞,发现那些隐藏在逻辑背后的美吧!
|
3月前
|
设计模式 算法 程序员
代码之美:探索编程艺术与实践
在数字化时代,编程已成为一种创造性的艺术。本文将深入探讨编程的美学原则、设计模式的应用以及高效编码的实践技巧,旨在为读者揭示如何通过技术和创新思维提升代码质量,实现技术与艺术的完美结合。
|
4月前
代码之美:我的编程之旅
在数字世界的编织中,每一行代码都承载着创造者的智慧与梦想。本文将带领读者穿梭于编程的迷宫,探索那些隐藏在逻辑结构之中的艺术与哲学。从最初的迷茫到逐渐的掌握,再到深入的理解和应用,这是一段关于成长、挑战和启示的旅程。我们将一起见证技术如何在现实世界中展现其力量,以及它如何塑造我们对世界的认知与未来的想象。
46 6
|
1月前
|
设计模式 前端开发 算法
探索代码之美:我的编程之旅与实践感悟
【10月更文挑战第23天】 在数字世界的海洋中,编程是构建梦想之船的技艺。本文将带你领略编程的魅力,从我踏入这个奇妙世界的第一步开始,到逐渐掌握各种编程语言和工具的过程。我们将一起探讨编程思维的重要性、解决问题的策略,以及如何通过不断学习和实践来提升自己的技术水平。文章不仅分享了我个人的经验和技巧,还提供了实用的代码示例,旨在帮助初学者更好地理解编程概念,并为资深开发者提供新的视角和灵感。
47 2
|
4月前
|
人工智能 数据挖掘 数据库
探索代码之美:我的编程之旅与技术感悟
【8月更文挑战第31天】在数字世界的海洋中,编程是那艘能带我们探索未知的船。我通过编程找到了自己的方向,从一个迷茫的大学毕业生成长为一名不断学习和提升的技术人员。就像甘地所说,“你必须成为你希望在世界上看到的改变。”我在代码中看到了创造和改变的力量,这篇文章将分享我的技术旅程和对编程之美的理解。
|
4月前
|
敏捷开发 程序员 项目管理
探索代码之美:编程之旅
在数字化时代,编程已成为必备技能。本文作者以自身从零开始学习Python的经历,分享了掌握基本语法、调试技巧及参与项目的重要性,并强调持续学习与好奇心是成为优秀程序员的关键,旨在为初学者提供实用建议与启发。
42 0
|
4月前
|
算法 测试技术 开发工具
探索代码之美:高效编程的艺术与实践
【7月更文挑战第52天】在数字世界的构建过程中,编程不仅仅是一门科学,更是一种艺术。本文将深入探讨如何通过高效的编程实践来提升代码质量、优化开发流程,并且分享在此过程中所获得的技术感悟。我们将从代码的简洁性、可读性和性能优化三个维度出发,分析并提出实用的编程技巧和策略,旨在帮助开发者在追求效率的同时,也能享受编程带来的乐趣和成就感。
|
6月前
|
算法 开发者
代码之美:技术感悟与编程艺术
【6月更文挑战第28天】在数字世界的构建中,代码不仅仅是冷冰冰的指令集合,更是开发者智慧与情感的结晶。本文将深入探讨编程背后的艺术性,揭示如何通过技术感悟提升代码质量,以及在日复一日的编码实践中如何保持创新与热情。
|
5月前
|
算法
代码之美:从技术感悟到生活哲学
在数字时代的浪潮中,编程不仅仅是一种专业技能,更是一种思考方式。本文将通过个人的技术实践和深入思考,探索编程如何影响我们的世界观、解决问题的方法以及日常生活。从算法的简洁性到系统设计的艺术性,我们将一同走进代码背后的美学与哲学,感受技术与生活的和谐共鸣。