semantic age is coming!
从去年开始spring很火,的确作为一个技术环境可配置的容器,spring对贫容器环境组件的支持还是很不错的也或得了很多的赞誉。于是很多人喧嚣着,spring会成为j2ee开发的主流,lightweight会是未来的趋势,在很多人眼里spring扮演了j2ee救世主的角色。我说这是不可能的,ejb在技术完备性是spring不可比拟的,但是更重要的是ejb提供一套标准的企业级开发语义,就是enterprise software development semantic。看到这里有些人又要说了,你这样人就是喜欢创造概念,我怎么从来没听说个什么enterprise software development semantic。好,我先不说什么语义先说重用,举一个例子,我说:就这样吧。那你一定很迷惑,那样呀?缺乏必要的语义环境,“这样”,这个很common很易复用的词是无法理解的,那么在这句话里,我所使用的“这样”并不能很好的复用到你的思想里,于是我要提供足够的语义上下文。比如我说:今天我很累,要睡了,就这样吧。一定就很容易推断出语境了。
组件,作为软件物理的最小组成部分,和我们说话用的词在概念上有很大的相似性,代表一定的软件语义。因此要复用它关键不是看侵入性或是别的什么,而是看重建一个复用的语义环境是否很容易,比如我说“玄牝”,很多人都不会理解,我要引证道德经,才能很好的解释,那么这个词的复用性就很差,因为语义没有标准的理解,相反,“苹果”因为语义相对通用就很好理解。spring的成功在于对各种组件支持都很好,但是远到不了动摇j2ee根基的程度,因为他没有统一的公认的企业级开发语义,而ejb有,比如事务,我们用spring会很简单,但是那是一种贫语义的事务描述,而ejb通过Required,RequiredNew等词汇,对事务进行了统一的富语义的描述,最重要的是这是标准的。
spring给我们自由,ejb给我们对企业开发的一种统一一致的模型,我们可以使用spring来构造我们的系统,但不是在一个标准的企业级开发语义上的,而是我们自己定义的语义。当然我并不是说我们的语义就一定不好,而sun的就一定好。但是随着mda福音的传播,核心语义定义才是真正的竞争力,早晚有一天j2ee应用兼容性判别会用语义兼容这样的条件,我们怎么办?看看jsr250吧,看看ibm j2ee mof吧,看看cwm吧,语义的威力就要展示出来了。
spring想真正继续影响主流j2ee开发,拿出你的语义吧,否则被绞杀是不可逃避的命运(成为一个语义的plug-in implement),semantic age is coming,我们怎么办?