编程的艺术门槛

编程是门艺术,这个说法由来已久。最近在朱赟的公众号(滴答滴答)读到一篇文章《设计是门逻辑学,然后才是美学》,文中作者漂洋过海追寻艺术,老师却说:“设计不是艺术!”。如果设计都不是艺术,那么编程还能是艺术么?

艺术

那么艺术到底是什么?我一下懵了,发现从来没有想过这个问题,只好求助于 Google。Wikipedia 上的定义是:「艺术是具有智能思考能力的动物(目前其实只有人类吧),借由各种形式及工具借以表达其情感与意识形态,所产生的形态泛称之为艺术.

而上面那篇文章中老师的观点是:

设计是实现别人的需要,艺术是自我表达的需要。

和 Wikipedia 的说法相近,核心都在于表达。而目前公认的艺术分类,包括八大艺术种类:文学,绘画,音乐,舞蹈,雕塑,建筑,戏剧,电影。

它们的共性是这些都是人类自古以来的创造,其中最年轻的艺术门类当属「电影」了,其作品承载了作者的情感和意识形态。而所有被公认的艺术门类,显然它们最终作品呈现出的艺术表达形态更容易被普通人直接的感受到,直接作用于人们的视觉、听觉和触觉感官。

关于编程是一门艺术这个概念,到底什么时候钻入程序员的头脑中的呢?也许来自我们在学习编程的路上,很多讲述编程的书籍都冠以艺术之名,比如:《UNIX编程艺术》,这是一本讲述

Unix 专家们在创造 Unix

过程中形成的理念和文化,那么技术文化是艺术么?还有另一本程序员中的圣经《计算机程序设计艺术》,我们都知道,却几乎没读过。这是一套讲述算法,并基于数学来推导和论证算法的基础书籍,那么算法是艺术么?

编程的直接产物是代码,代码是面向程序员的,而非普罗大众。编程的间接产物是信息产品,在当下这个信息时代,信息产品的形态很多样化,可以是你手机上的

App,也可以是你每晚打开的电视。很可能一切和电子相关的东西,在当下或多或少都和编程有关,但我们发现即使是在这些间接产物中,也找不出一样可以让我们很严肃的把它归为艺术。即使是神化的乔布斯时代,我们给予的最大赞誉也只是苹果的每件产品都像艺术品一般。仅仅是像,像可以无限逼近,但毕竟还不是。

所以相对而言,编程也如设计是实现别人的需要,像我在这写作倒更多是自我表达的需要了。编程受限于程序语言的表达能力,是不可能达到像自然语言的表达能力的,因此编程的艺术性,它的受众也只可能是程序员们。虽然面向大众的艺术,很多大众也表示看不懂,但至少能感受,而编程艺术则是只有程序员本身才可能感受得到了。

技术

程序员的日常编程工作就是编写代码,完成功能,实现别人的需要。在这个过程中不小心就还会制造一些 bug,程序员也不知道这些 bug

是怎么变出来的,就像你天天在家做饭,不知道怎么厨房里就多了那么多小强。美食也不属于公认的艺术门类,但时不时我们会听到美食艺术的说法,这一点倒是和编程艺术很像。但若是你在创造美食的过程,时不时冒出些小强,哪里还有去感受艺术的心思。程序员大部分时候就是在不断的解决源源不绝,生生不息的

bug,这个过程与艺术无关,只与技术有关,技术越练越好,bug 也就越来越少。bug 少到我们能腾出精力和心思,才能去感受编程的艺术性。

编程的艺术源于技术,没有技术则艺术成了无源之水,无根之木。所以那些冠以「艺术」之名的程序书籍其实都是讲的技术或者技术原则与文化。而关于编程最基础的技术当然是写好代码,而如何写好代码这件事以前看过王垠写过的一篇长文《编程的智慧》,其中观点我都认同,包括下面一些方面:

反复推敲代码

写优雅的代码

写模块化的代码

写可读的代码

写简单的代码

写直观的代码

写无懈可击的代码

正确处理错误

正确处理null指针

防止过度工程

文章很长,但花点时间细细读来,必有收获,其中关于推敲代码这点于我感触最深。

看一个作家的水平,不是看他发表了多少文字,而要看他的废纸篓里扔掉了多少。

我觉得同样的理论适用于编程。好的程序员,他们删掉的代码,比留下来的还要多很多。

我曾经自己维护了一个项目,包括一些样板代码,称手的小工具等等。每一年我都会抽业余时间对这个工程做一次重构,一些代码随着技术发展而过时了,一些则被重新实现变得更简洁。每年的一次回顾,对过去自己的审视,对代码的推敲都带来新的成长,这个过程持续了大约七年。

在技术成长到了一定阶段,有些程序员就会开始不满足于仅仅实现别人的需要,也会在代码里尝试自我表达。最基础且最明显的表达是为代码签名,打上自己的标签,要是雷军二十年前没有为那段汇编代码签名,我们今天哪里知道这会是雷军写的,并在这里评头论足。但依然有很多程序员不会为自己的代码签名,连机器生成的代码都会签名说这是自动生成的,而一份没有签名的代码是缺乏艺术最基本的要素「自我」的,永远停留在艺术的门槛之外。

技艺

单独说编程艺术是不完整的,编程是从技术走向艺术。编程艺术是开在枝头的鲜花,而技术是支撑花朵的枝与根。

而在技术和艺术之间实际存在一道很高的门槛,艺术是一种自我表达,但自我表达却未必是艺术。关于这一点我们说个大家耳熟能详的人

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • 今天早晨和同事在微信上吵架,他问我为什么不顾及别人的感受,我说无关人等不用搭理。后来意识到,问题不在于那些他重视而...
    Larissa阅读 230评论 0 0
  • 我是从小就在农村长大的,那些长在土里的、崖边的、田坎上的、水沟里的花都几乎被我把玩过,认识了很多植物,尽管可能不能...
    霓羽殇阅读 172评论 0 1