别让架构太空人吓到你

或许 别让太空构架师吓到你 更贴切

作者:周思博(Joel Spolsky)
译:Paul May 梅普华
Saturday, April 21, 2001
属于Joel on Software, http://www.joelonsoftware.com

伟大的思想家想问题时会开始看出模式。他们看到人们要传送文书处理档案给别人,又看到人们要传送试算表给别人,然后就会发现里面有一个通用的模式:传送档案。这已经是一层的抽象。然后他们会再上一层:人们 传送 档案,不过网页浏览器也会「 传送 」网页要求啊。另外如果你有想到,其实呼叫某个物件的方法也像是传送讯息给该物件!这又是一样的东西!这些全都是 传送 的动作,所以我们聪明的思想家就发明了一种更新更广义的新抽象概念:「讯息传送(messaging)」,不过现在这件事变得愈来愈神秘,再也没人真的懂他们在说些什么。废话。

Charles_River.jpg

当你一直往上把事情弄得太抽象,就会像上太空一样没有氧气。有时候这些聪明的思想家就是停不下来,然后就创造出这些荒唐又无所不包的高层次宇宙景像,这些东西什么都好,就是完全没有实际的意义。

这种人我称之为架构太空人。要他们写程式或设计程式是难上更难,因为他们没法子不想架构。叫太空人是因为他们活在氧气层之上,我不知道这些人是_怎么_ 呼吸的。他们通常在真正的大公司上班,只要这种公司才养得起大批不事生产,完全没有贡献的高学历份子。

最近有个例子可以拿来说明。典型的架构太空人会针对「Napster是个用于音乐下载的点对点服务」这件事,把架构以外的东西全部忽略掉,然后说因为是点对点所以很有趣,完全没搞清楚重点在于可以输入歌名后可以 马上 听到

他们就只会说点对点如此这般如何如何。忽然间就出现了点对点会议、点对点创投基金。甚至还出现对点对点的激烈反击,看到一群白痴商业记者快乐地互相抄袭报导:「点对点已死!」

Harvard_Message_Board.jpg

架构太空人会说会说出类似这样的话:「你能想像一个像_Napster_ 这样的程式,你可以用它下载_任何东西_ 而不只是歌曲吗?」然后他们会建立像Groove这种自认比Napster _更_ 一般性的应用程式,不过似乎却忘了那个微不足道,让你输入歌名然后听歌的小功能,那个我们从一开始就要的功能。说到搞不清楚重点。如果Napster _不是_ 做成点对点形式,却_的确能_ 让你输入歌名就能听歌,恐怕还是会一样流行。

另一个架构太空人都喜欢做的事,就是发明某种新架构然后声称它可以解决某件事。Java、XML、Soap、XmlRpc、Hailstorm、.NET、Jini…天啊,我都要睡着了。而这些还只是过去12个月的而已!

我绝对不是说这些架构有什么问题。它们都是相当好的架构。让我受不了的是围绕在架构周围那些惊人的超级_宣传_ 。还记得微软.NET的白皮书吗?

新一代的Windows桌面平台Windows.NET支援生产力、创造力、管理、娱乐以及更多更多,是为了让使用者掌控其数位生活而设计的。

这东西大概是九个月前的事。上个月我拿到微软的Hailstorm。那份白皮书写着:

人们并没有掌控周边所围绕的科技…HailStorm让生活中的科技相互结合,在你的掌控之下为你服务。

噢,了不起,所以现在你房间里的高科技卤素灯不会再随便乱闪了。

微软并不孤单。下面这一段是摘录自Sun Jini 白皮书

这三个事实(你是个新世代的系统管理员,嵌入式微电脑隐身于周遭,单机电脑无所不在)应该结合起来,以改善使用单机电脑的世界 - 借着消除各种电脑间的界限,借着让电脑无所不在,借着把用电脑工作的细节变得像把DVD放进家庭剧院系统一样简单。(译注:请原谅我,因为这一段我原文也看不懂)

还有那段让我根本不想_想起来_ ,由业界推手George Gilder(译注:美国科技趋势专家)宣扬Java的话:

科技史上的一个十分重要的突破…

这是一个明确的情报,显示架构太空人正在攻击你:数不尽的夸大言辞;史诗般理想化的豪言壮语;夸大;完全缺乏真实感。可是大家就是吃这套!这些商业报导真是疯了。

大家究竟为什么会受无聊的架构所影响呢?这些架构常常只不过是一种用于RPC的新格式或是新的虚拟机器罢了。这些东西可能是不错的架构,也的确能帮助开发者,不过它们并 (我得强调_不_ )能代替弥赛亚骑白驴进耶路撒冷或是世界和平。不,微软,电脑_不会_ 突然开始会读心术然后自动做我们想做的事,只因为世界上每个人都有一个Passport帐号。不,升阳,我们并_不_ 想让公司业务资料的分析像「把DVD放进家庭剧院系统一样简单」。

Harvard_Science_Center.jpg

要知道搞架构的人会去解决那些他们能解的问题,而不是那些解了会_有用处_ 的问题。Soap + WSDL或许是很热门的新玩意,不过它并不会真的让你做到那些以前用其他技术做不到的事(如果你真要做的话)。架构太空人鬼扯的这些分散式服务天堂过去都曾有人答应过,如果用过DCOM或JavaBeans或OSF DCE或CORBA的话就知道了。

我们现在可以用XML作为电话上用的格式,这的确是很不错。值得欢呼一声。不过那对我来说,就像知道超市用卡车由仓库运货来差不多有趣。打个哈欠,是_芒果_ 哦,很有趣。讲些我以前做不到而现在可以的新鲜事吧,老太空人。否则就乖乖呆在太空,不要再浪费我的时间了。

这些网页的内容为表达个人意见。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.