最近看了一些帖子,是关于taglib的,大家纷纷口诛笔伐,欲除之而后快……。这场争论本身没引起我多大的兴趣,倒是勾起了我的一些回忆,要是不怕罗嗦的,就让我这个“老人家”给你讲一个故事吧。
咳咳……
在很久很久以前,那时,web还是新鲜事物,dreamweaver没有被发明出来,那时的所见即所得的工具是frontpage,但是非常的不好用,所以,程序员们大多都用文本编辑器来写html,大家用netscape浏览着为数不多的网页,觉得很快乐。
然后,某天一觉醒来,cgi就横空出世了。大家纷纷啧啧称奇,你瞧,页面内容会动态变化耶,好cool哦。。。都来学习吧!!把html放在perl代码中用引号扩起来,这样你就能"动态"加入一些东西,你看,多简单呀。一阵短暂的骚动之后,大家使着cgi,又恢复了很快乐的幸福生活。
当时的delphi有一个写isapi的模块,只要在一个文本文件中使'#xxx'的标注,程序中可以做一个替换,运行时,就能看到替换过的页面,非常cool。可惜,用delphi写isapi是一件比较费脑子的事情,所以这东西似乎也没有流行多久。
后来asp就出现了。哇塞,可以直接在asp的html之间插入代码!那岂不是想怎么变化就怎么变化了么?简直是划时代。于是纷纷来学,一时之间,摩肩接踵,满大街跑的都是'asp工程师'了,可谓盛况空前呀~~。
即便是有了asp这样的神兵利器,桶子们的快乐日子也没有能持续多久。因为php马上就出现了。这个东西不仅象asp一样cool,而且它还免费,还开源,还跨平台……。开源的!想一想,可以自己写代码加进php去扩展它的功能呢。所有追求上进的web开发者都不能抗拒这样的诱惑。于是纷纷加入开发军团,而且一有功夫就跑到asp那边去踢馆闹事。。。罪过罪过。
Sun从来都是最无耻的,无耻就无耻在桶子们刚刚满足的抱着php欢天喜地的时候,它竟然推出了jsp!你想想,这东西不仅象php一样跨平台、开源、免费,而且还是编译为java的。我考,每个请求都是启动一个线程,而不是fork的,那该多快?一边搬着脚指头算性能,可怜的桶子们一边又要忙不迭的开学了。
桶子在欢天喜地的庆祝jsp的诞生,可是他们并不知道,可怜的他们已经进入sun布下的最阴险的陷阱: 恐怖的爪哇丛林。江湖流传着一种关于爪哇丛林的传说:'从来没有人见过有人能活着从里面出来,丛林深处偶尔还会传来另人毛骨悚然怪叫,有人说那听起来很恐怖,有人说那听起来很兴奋'。
jsp和php还有asp实际上都是一码事。无非就是'把代码塞进html中',比起之前cgi的'把html塞进代码中',在'写出让人更恶心的代码'上并没有太大的长进。而爪哇丛林中也有delphi精神的继承人,那时似乎是叫webmacro的,主要是名字叫得太恶心,所以一直也混得比较惨。不过据说后来它洗心革面改了个唬人的名号叫velocity,又加入了丛林第一大帮apache,混了很久,总算捞到了一点脸熟的名声。
说起apache帮,那可是名声显赫,龙蛇混杂,其中有个误人不浅的struts不得不提。那个家伙号称MVC2,其实就是'把简单的事情弄复杂'那套坑蒙拐骗的小伎俩。做一个很简单的东东,都要动用action,form,啃完一大本的taglib,还要折腾n个巨复杂无比的配置文件。唉,不知葬送了多少无知桶子的宝贵青春。那阵子,如果你见到一个面色苍白眼窝深陷的桶子,可以走上去问"struts?",那人要是扑通一声跪下,抱住你的腿就开始痛哭流涕的,那一定就是刚到struts连锁店抽过的了。唉~~,悲惨世界呀。
apache帮据说还有一个Tapestry,在struts被搞臭之后,这个家伙又开始火了。老人家我没什么功夫来仔细看了,不过,用html加入标签,再用dom解析替换的方式,怎么着都让人想起delphi,webmacro,velocity这些影子呢。。。
咳咳……
唉~,江湖……