技术!不是艺术!(原创)
2008-04-09 04:05:00来源:互联网 阅读 ()
技术,不是艺术!
前几天刚刚买了一本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!他开始他的实践了!也许他是个奇才,他搞出了与门、或门、非门……他制作出了加法机,他弄出了减法机……但是当他不断的实践之后,发现他所作的很多工作前人都已经做过了……
牛顿曾经说过,他能看的更远是因为他站在了巨人的肩膀上。没错,前人有大量的资料、理论、甚至经验、教训给我们学习,我们为什么不去了解呢?如果我们不了解这些,而是每天躺在床上高呼“创新”苦思冥想所谓的“新的思维模式”,这有意义吗?
你想写个编译器?好!你有两种选择:一种方法是苦思冥想,没日没夜的编码、测试,你希望找到一种新的思维方式,新的方法,新的思路——因为你要创新,你要与众不同。你认为你这是无招胜有招,你这是在搞艺术创作,你是怪才……另一种方法是找本编译原理,看完后去编码、测试……
你觉得哪个选择更好呢?
liugr3988 回复于:2004-05-16 19:51:18 有道理
vissed 回复于:2004-05-21 22:48:31 有时候思想比技术更值得学习!
古人云:听君一席话,胜读十年书!
beyondyxj 回复于:2004-06-01 09:01:52 套用一句古人说的话“记得旧文章,便是新才子”,还有就是一位大师级的工程师(名字我不记得了)说过的话,大概是这意思:精通旧的技术,你就可以领悟新的技术了!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash