Web开发一直是一个比较纠结的技术领域,为啥这么讲?你看:
如果我是一个前端开发工程师,意味着我至少需要熟练掌握3种编程语言:HTML,CSS和Javascript。这还是基于前后端分离的开发场景,如果是使用传统的MVC框架的话,则那些“全栈”工程师们还需要掌握服务器端的编程语言,例如Java,Python或者Ruby等。
基于这样一种复杂组合的前提,技术界又衍生出了各种各样的“框架”来试图增强复用性以提升开发效率 & 规范团队的编码风格。例如传统的MVC框架就有无数种:基于Java的SSH(实际上是3中框架的搭配)、基于Python的Django、基于PHP的Yii、基于Ruby的Rails等等等等……(你会发现上述框架都是基于服务器端语言的)然后,由于Javascript语言的设计实在是比较草率,所以出现了各种框架来进行改善(prototype, extjs, jquery, vue.js, react.js等等);与此同时,CSS的框架也层出不穷(Bootstrap,boolma……)
上述现象,一方面体现了Web开发技术领域的生机勃勃;而另一方面,从程序员角度来看(程序员也是一种用户哈),一致性体验严重不足!
在上古时期,曾经有一种开发技术在开发的一致性体验上有着明显由于同类产品的设计&同时也拥有非常高的开发效率(亲测体会,我曾经用了一个周末的时间,快速开发了一款公司内部使用的项目周报管理系统 ;-P),这种技术的名字叫Coldfusion。
Coldfusion其实是一款Web服务器软件产品的名称,他使用的前端开发语言名字叫CFML。其典型特点是:语法很简单,与HTML一样,使用一些标记实现特别的功能。这些标记也和HTML一样,不过都是用CF开头的。例如
一个小小的例子Hello world:
First ColdFusion Program
#MSG#
Coldfusion的功能非常强大,它本身所带的30多个例子几乎实现了以前用CGI实现的所有WEB应用。Coldfusion也可以处理数据库。所以在ASP出现之前,Coldfusion占据了NT上WEB数据库应用的市场。
你会发现,在早期的那个年代(CSS还没有从HTML中完全剥离出来),其初步实现了前端编辑语言与服务器端语言开发的一致性体验。
实际上,在当时Coldfusion几乎是没有什么像样的竞争对手的。Coldfusion出到3.0版本的时候,微软的ASP(注意不是.net平台)刚刚出来1.0版本。在那个时候PHP也是初出茅庐,而Java领域的开发人员们还在使用Servlet在服务器端拼写HTML字符串!
可惜的是,一种优秀的技术实现,被汹涌的商业竞争大潮所淹没了。
Coldfusion产品分成两大部分Coldfusion Studio(开发使用的IDE)和Coldfusion Server(服务器端),均是由Allaire公司开发出售。
需要说明的是CFML语言理论上不是绑定在Coldfusion产品上面的(事实上也的确有一些第三方的服务器产品支持CFML),但是实际上在市场里面大家基本上就会认为Coldfusion=CFML。
当时Allaire公司旗下还有另外一款更加闪光的产品:Homesite。“老年”的程序员可能还有印象,在当时Homesite和Macromedia公司的Dreamweaver以及微软公司的Frontpage并成为所见即所得HTML编辑器的“三剑客”。此外,Allaire公司还有一款Java的服务器端产品JRun在当时也是大名鼎鼎。
2001年,Macromedia公司收购Allaire公司。从产品上带来了两个后果:
- Homesite产品随之消失;
- Coldfusion产品从C++移植到Java平台。
2005年,Macromedia公司被更大的巨头Adobe公司收购,在此后的3年,Coldfusion逐渐淡出了人们的视野。
有时候,我们怀旧的时候,有可能会YY一下,在那个年代,开源的理念还没有深入人心,否则的话CFML的技术直接开放给开源社区的话,这项技术目前的生存状态还不一定是个什么样……