前面提到的两种技术不能流行是必然的。除了技术本身的缺陷之外,有两个主要的原因:第一,
报价管理软件开发还没有解决开发用户界面的便捷性问题,在这种情况下,无论何种形式的努力,都不足以吸引用户;第二,在解决第一个问题的前提下,要抗衡一个标准,必须付出更多非技术性的努力,就像享有盛誉的苹果公司在追逐用户体验上的创新一样。 事实上,从使用Java技术的第一天起,我就没有感受到Java在用户界面上的努力:简陋的AWT,使用不便的Swing,匮乏的界面开发工具,传说中的虚拟机芯片。
Java会在用户界面领域统帅大旗吗?我不大相信。有趣的是,Java的另一项用户界面技术——Servlet,却大获成 功。严格来说,Servlet不是一项用户界面技术,它其实是“请求——响应”模式协议的高级抽象,HTTP协议的抽象已经纳入Servlet的标准(从技术的角度来看,是一个框架)之中。Servlet框架,负责实现协议以及调度框架中生存的各种抽象概念的实现类。而生存在框架中的“服务器端小程序”实现类(“服务器端小程序”也被叫做Servlet,这里为了区别它与前面提到的Servlet框架在概念上的不同,有意使用“服务器端小程序”这个词),通常要做两件事情:第一,报价管理软件开发根据通过协议输入的参数进行服务器端的逻辑计算;第二,负责用户界面生成。“服务器端小程序”生成用户界面的方式,简直是太丑陋了。
可是,如此丑陋的方式,竟然也不能阻止Servlet技术的流行。什么原因呢?很简单,这项技术拥抱了标准,在用户界面上它可以支持HTML标准,支持的方式是直接输出HTML文本。为了改善HTML文本直接输出的不便,业界又出现了JSP技术。JSP技术的思想很简单,在HTML页面中嵌入Java程序(使用Tag或直接嵌入Java代码)。
早期的报价管理软件开发应用中,HTML负责用户界面,Java程序负责服务器端的逻辑计算。
后来针对这样的分工做了一些改进,产生了页面控件的概念。 页面控件是一个通过Tag技术被调用的Java程序。它不仅仅负责逻辑计算,还负责提供封装好的用户界面(HTML格式)。这就是报价管理软件开发的概念。由于这种改进,使页面的组装变得更加灵活和方便,协同软件开发中单纯的HTML开始变得越来越少。这又带来了另一个好处:由于页面控件可以产生各种界面,所以Servlet逐渐脱离了对于特定浏览器的依赖,应用的场合更加广泛。