说Dreamweaver不愿意生成更漂亮的代码,真是太冤枉了,相信我,Adobe的Dreamweaver开发者(乃至世界上所有的WYSIWYG软件开发者)肯定是想尽一切办法让自己软件生成的代码更加漂亮。
但这里面有一个根本性问题,就是软件生成的代码也许永远都不可能达到和人类代码相同的水平——很多自动代码生成器,剥开它美丽的外表,隐藏在下面的通常都是肮脏的实现。如果哪一天,人类只需要对软件说出需求,然后软件就能自动生成软件,而且自动生成的代码不但高效,还很漂亮,那全世界的程序员就失业了。(再然后就是科幻小说的剧情:计算机统治了地球,人类沦为电池。。。)
Dreamweaver成为众矢之的、屡屡挨批的原因,除了因为受众广泛,很大程度跟使用者对它的定位错误有关:Dreamweaver是一个编辑器,有一个方便的WYSIWYG界面,它还有控件功能,可以只通过拖拖放放就生成一个网站,但这种控件自动生成的代码是用于制作原型的,且仅应该用于制作原型。
比如某天你灵感涌现,想出了下一个价值500亿美元的网站,你花了3天把程序写好,然后开始构思界面,但是你拿不准宽度该用960像素,还是1020像素,背景该用蓝色还是绿色,诸如此类,而且你也不想找美工商量,免得他/她只是画几个图就分走你50%的股份,于是你调出Dreamweaver,用控件拖拖放放,改几个属性,拼凑弄出你想象中的设计——在这个过程中,你不关心控件生成的代码是否美观,是否符合W3C标准,因为你只是想要个原型,一个能看的草图,仅此而已。
来回几次,你终于把样式决定下来,Dreamweaver的控件功能高效地完成了构建原型的作用,现在它的历史任务完成了,你祭出你的所有装备武装自己:VIM、FIREBUG、十个不同种类的网页阅览器、等等,对着Dreamweaver上的原型小心翼翼地编写一个优美的、符合标准的、使用最新最酷的HTML5和CSS3功能的网页,然后把这个网页用到你的程序上。(如果你喜欢Dreamweaver的语法感知功能,你当然也可以用Dreamweaver来写,但任何时候,你都知道自己不应该依赖控件生成的代码)。
之后网站开始上线运营,BETACN、SOLICOM和Counter-Strike DN用大篇幅报道了你的神来之作,10cent和摆渡试图抄袭你,但最终失败,某天你正在DEBUG之际,接到了一个不熟悉的电话,你说你很忙,没有空做采访,电话那一头的家伙说自己开了一个什么工场,你觉得似乎在哪个地方听说过这个名字,于是决定给他三分钟解释自己。。。
在城市的最高层建筑上举办上市庆功宴之际,有个无名小记向你请教创业心得,你拒绝了他的采访,可他仍然紧追不舍,你很感动,回忆起自己当初落魄之时,对着录音笔久久不能言语,最后终于开口:
“Dreamweaver是一个编辑器,也可以用它的控件来快速制作原型,但千万不要把这两件事搞混了。”
小记还想向你索要签名,但你只是挥了挥手,转身离开,这次小记没有再追上来,转而在自己的速记本上写上“当他说完这句话之后,眼睛泛起了泪光,久久不能自已,最后失声痛哭离场,留下一个孤单的背影。。。”