编程--是一门艺术

编程--是一门艺术

ID:9119294

大小:51.25 KB

页数:9页

时间:2018-04-18

编程--是一门艺术_第1页
编程--是一门艺术_第2页
编程--是一门艺术_第3页
编程--是一门艺术_第4页
编程--是一门艺术_第5页
资源描述:

《编程--是一门艺术》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、编程:是一门艺术摘要:Knuth在他的多卷书《计算机编程艺术》中向我们展示了计算机编程的技巧和艺术性,并在其图灵奖演说中论述了计算机编程和艺术的关系。这篇文章受Knuth著作的启发,进一步阐述为什么计算机编程应该是一门艺术并通过代码展示艺术的主要表现形式。图片来源:accidentallyincode  1.引言"(program(computers)==*art)?so:what"“只有大约5%的程序员能够在编写代码时创造出艺术。其他95%一定是为了取得成功的科学家,不是艺术家。”  谈及“艺术”,人们

2、自然会联想到“美”、“技艺”、“灵感”等词,但很少会把它和“计算机编程”这听起来似乎无趣的词联系在一起。而DonaldKnuth,《计算机编程的艺术》多卷书的作者,通过他的著作,成功地展现了计算机编程的艺术。随后他又在图灵奖演说[1]中对计算机编程的艺术做了科学地论述和诠释。他不是第一个这么做的人,但无疑他是最成功的一个。GuidovanRossum,Python的设计者,如是说:“我同意Knuth对‘艺术’一词的定义(或使用)。对于我来说,它和创造性联系十分紧密,而这对于我的工作非常重要。如果(计算机编

3、程)其中没有艺术,它将没有任何乐趣,而我也不会在30年之后仍然从事它。”  编写优美的程序需要灵感和高超的技巧,就像诗人写诗,画家作画,建筑师构筑,充满了乐趣、挑战和美。优雅的程序会像诗歌一样耐人寻味,像名画那样大开眼界,像教堂一样堂皇华丽。所以,计算机编程也同样是一门艺术,程序员就是创造这种艺术的艺术家。  2.编程之美  什么样的程序才是美的程序?这个问题似乎没有完整的答案。一个很酷的Demo或一个很炫的视频游戏都能让我们赞叹不已。Doom和HalfLife可以说把3D技术推向了极至,这种程序总能给人

4、一种视觉上的美,就像画家手中的美丽油画,只是程序员们的画布在电脑屏幕上,画笔是键盘。Linux也是一种美,一种开放的美,从Unix那里继承来的优雅的设计,强大的可移植性,丰富的工具,这让它看起来像优秀建筑师们设计的一座富丽堂皇的教堂。这些美是显而易见的。还有一种美,隐藏在程序背后,流动于源代码之中。什么又是美的代码呢?可能它们一看上去就很美。这里有一个惊人的宏定义的C代码集合[2]:允许程序建立常量,使它们看上去像是屏幕上的图形!程序的自描述能力大大加强!#defineX)*2+1#define_)*2#

5、defines((((((((((((((((0staticunsignedshortstopwatch[]={s_____XXXXX___XX_,s___XXXXXXXXX_XXX,s__XXX_____XXX_XX,s_XX_________XX__,s_XX_________XX__,sXX___________XX_,sXX___________XX_,sXX_XXXXX_____XX_,sXX_____X_____XX_,sXX_____X_____XX_,s_XX____X____XX__,s

6、_XX____X____XX__,s__XXX_____XXX___,s___XXXXXXXXX____,s_____XXXXX______,s________________};  这种只能在Usenet或混乱C代码竞赛中才能见到的代码虽然没有多少实际用处,但它的确能让我们感受到代码——一堆有规则的符号——也能创造出视觉上的美。也可能是程序使用的技巧——算法很美,就像汉诺塔程序,快速排序程序,自然而然地使用递归让它们看起来很紧凑,易读,这当然也是一种美,是只有程序员才能体会到的美。还有一种美,深藏在代码

7、之后,是程序的设计思想之美,一种需要领悟的美。Unix带给我们的不仅是它的强大功能,还有它那深邃的设计哲学[3]:“小巧就是美的。”(Smallisbeautiful.)“让每个程序都擅长做一件事。”(Makeeachprogramdoonethingwell.)“一切都是文件。”(Everythingisafile.)“沉默是金。”(Silenceisgolden.)“让操作系统内核小而轻巧。”(Makeoperatingsystemkernelssmallandlightweight.)  这些思想在

8、Unix设计中不失为黄金法则。这种美将穿越时空,千古流传,让Unix不仅仅是一个优秀的操作系统,而成为一门计算机领域的哲学。  人们都喜欢美的东西,程序员们更是珍视美的程序,我们把那些创造美好程序的人尊称为“黑客”。PaulGraham认为黑客和画家很相似[4]:黑客和画家的共同之处是,他们都是创造者。和作曲家,建筑师,作家一样,黑客和画家尝试去做的也是创造好的东西。他们本身并不做研究,但是如果在创造好东西的过程中发现了一些新

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。