技术讲求敬业精神和实用原则,不可以拿来炫耀;而艺术追求完美境界,和“新潮”风牛马不相及。沉湎于所谓理念而忽视技术基础者,是不可能做出哪怕是一丁点成就的。“被猪亲了”,正是某些浅薄者的真是写照。(编者按)技术,不是艺术!
前几天刚刚买了一本Eric S. Raymond所著的 "The Art of UNIX Programming"(中文名是《UNIX程序设计艺术》)。由于刚刚拿到手,所以还没有时间细细品味,不过,冲着Eric Raymond的大名,我有理由相信这本书一定会令我领会到UNIX下编程的艺术及其魅力。然而,虽然叫做“艺术”,但我默难认为还是有必要明确一下:
我们搞的是技术,不是艺术!
不久前跟一个网友聊天,聊的无非是些计算机方面的内容。他的确是个强人:
他句句都是特别有个性----不知道是他故意在我面前张扬个性呢,还是他本身就这样。
他一再强调所谓的“创新”,“打破传统”之类的理念。
他喜欢用BitTorrent诠释他的观点:“你看!在传统的理念中,一个服务器上用户越多,下载速度越慢;但是BT打破了这种传统观念,所以说我们不能墨守成规。”当我试图给他解释BT的原理时,他的回答是:“我不关心他的原理,我只是说这种理念”………………
他告诉我,他找到了一种新的解决汉诺塔问题(hanoi)的方法,可以在层数少于10的情况下,让时间复杂度和层数成一次函数增长…………
“我们的口号就是让不可能成为可能”……
然而可惜,他不会C,问他为什么不学C,他的回答是:
“我就是觉得c太没意思了。太基础太强大了。只要掌握了c就知道所有原理了。就没法创新了。就必须遵守计算机根本原则了。 ”
我狂晕!!!
面对这种话,我实在没话说了…………只好答道:“哦…………这样啊…………”。之后也就懒得再跟他说什么了…………
由于此人和我多少有些交情,我也就不方便说太多,只是…………如果他连BT的原理都不了解,就去尝试理解所谓的理念,实在是对BitTorrent的一种侮辱…………
另外,为了避免给大家留下错误的印象,我想我还是有必要说明一下他的话:
关于他所说的新的解决hanoi的方法,我没有问具体的算法----因为在我的头脑中,他所说的根本不可能实现。然而事后我又后怕起来:万一是我学艺不精,误人子弟怎么办?于是特意请教一位在中科院软件研究所的大虾,当我问完问题后,大虾高呼:你被猪亲啦!傻啦?!
看来要么是我和这位大虾都被猪亲了,要么就是我那位强网友被猪亲了…………(其实还有几种可能:我那位强网友改变了hanoi的玩法,或者他用另一种方式来计算时间复杂度)
近些年,在什么地方都大呼“创新”高谈“打破传统”,于是,大家明白了:靠!我们原来学的东西都没用啊!都得创新啊!得打破传统啊!得无招胜有招啊!要不然就没法发展了!!
创新?没错!我们的确需要创新!但是,我还是得发点杂音:大家能不能冷静点。我们搞得是技术,不是艺术!
艺术方面,似乎可以发挥的空间很大,你甚至可以在没有学过什么基本原理的情况下成为艺术方面的大家。如果艺术作品都像工厂流水线上的作品一样千篇一律,那么绝对不会有人喜欢的。
然而,技术却不同。技术领域,有众多的模式(Pattern)和原理可以遵循----这些模式都是经过千锤百炼,是前人总结的精髓。只有了解那些基本的理论思想才能有创新,换句话说,创新是要建立在传统之上的。
也许你会举出一些反例,最好的反例大概就是物理学领域的例子了:近代物理打破了经典物理中的牛顿三大定律,有了今日的成就。
然而试想:如果没有经典物理的基础,怎么可能会有近代物理的今天?如果爱因斯坦对经典物理一无所知,他能否获得诺贝尔奖,能否提出相对论?
如今,很多人在追求个性,追求创新,然而,不难发现,如今的创新,已经近乎到了要改变规律的地步。
如果从辨证唯物主义哲学的角度讲,世界是物质的,物质是变化的,而物质的变化是遵循一定规律的,规律是永远不会改变的。
我们人类的确是很伟大,但是依然没有能力去改变规律,我们所能作的,只是充分发挥主观能动性,去发现并利用规律,让它为我们人类服务。
BT也正是基于这种思想:看起来它似乎有悖常理,但是如果你了解到它的内部原理,你会发现:它依然没有改变规律,它只不过用了一个众所周知的道理:下载的人多了,资源也就多了,可利用的资源也自然多了,BT只是利用了这些以前没有利用到的资源。
也许我们人类起初认识到的规律是不正确或者不全面的(比如经典物理中的牛顿三大定律),之后我们又有了更深刻的认识,但是这并不是代表规律本身被改变了----规律永远是客观存在并不会改变的。
再回到计算机的话题之上。
好了!现在有个人,他不会任何编程语言,不知道windows的基本操作,UNIX/UNIX-like更是压根没听说过,他说他不学这些是怕这些东西影响他的思维,因为他要创新,要改变计算机界的思想,要改变计算机界的思维模式。OK!他开始他的实践了!也许他是个奇才,他搞出了与门、或门、非门……他制作出了加法机,他弄出了减法机……但是当他不断的实践之后,发现他所作的很多工作前人都已经做过了……
牛顿曾经说过,他能看的更远是因为他站在了巨人的肩膀上。没错,前人有大量的资料、理论、甚至经验、教训给我们学习,我们为什么不去了解呢?如果我们不了解这些,而是每天躺在床上高呼“创新”苦思冥想所谓的“新的思维模式”,这有意义吗?
你想写个编译器?好!你有两种选择:一种方法是苦思冥想,没日没夜的编码、测试,你希望找到一种新的思维方式,新的方法,新的思路----因为你要创新,你要与众不同。你认为你这是无招胜有招,你这是在搞艺术创作,你是怪才……另一种方法是找本编译原理,看完后去编码、测试……
你觉得哪个选择更好呢?
hantu 于 2009-04-10 00:23:53发表:
有些人嘴巴稍大一点也正常
刘冲 于 2009-03-27 19:09:01发表:
做学问,老实点。
wangfeng819 于 2009-03-27 19:08:02发表:
写了这么长的文章,不顶一下不合适
jerry520 于 2009-03-27 16:33:53发表:
小伙有前途啊!
litkt 于 2009-03-27 16:15:55发表:
[i=s] 本帖最后由 litkt 于 2009-3-27 16:24 编辑 [/i]
有时技术就是艺术。工艺工艺嘛。
高技术不如巧安排,这就是艺术。
中国的红绿灯会说话,技术程度更高吧?但在车水马龙的大街上就是听不清楚到底是哪个方向允许通行。
德国的红绿灯只有嘟嘟声,技术程度较低,但这声音设计得既不刺耳穿透力又强,使盲人能轻易分辨出哪个方向允许通行。
这就是艺术的威力了。
简单就是美,简单就是力量,这就是Unix的艺术。
艺术可以大幅度降低技术的难度。在某种程度上艺术就是技术。
这和近代物理没多大关系。
近代物理并没有突破牛顿三定律,而是扩展了牛顿定律。
近代物理理论在我们的时空尺度,就是牛顿定律。近代物理只是摸清了牛顿定律的适用边界并且摸清了这个边界内外共同的规律,并没有否定牛顿定律。
tsaqhlg 于 2009-03-27 15:33:01发表:
先顶再看