java与.net平台进行的分析和看法

看到一篇非常好的文章。

原文地址:

http://blog.csdn.net/parrylau/article/details/2022837




java.net平台进行的分析和看法

一、简介

 

JAVA.NET继续发展下去,可能的两种结果:其中的一种退出竞争或是两种共存,而共存的可能性更大。JAVA得以生存的原因在于它的时间优势:它已经发展了六年;它在大多数的操作系统上可以运行;它得到了业界领导者如ORACLEIBM的支持;并且使用JAVA进行开发的项目计划几乎覆盖所有的应用程序领域。而.NET的优势在于微软拥有90%的桌面操作系统市场,同时微软也开始采用SUN的市场战略,即将其特有的技术标准化。如:在远程通信上它向IETFInternetEngineering Task Force)和W3CWorld Wide Web Consortium)提交了SOAPSIMPLE OBJECT ACCESS PROTOCLE)(类似于RFC-REQUEST FORCOMMENT);向ECMA (European Computer Manufacturer's Association)提交了C#语言和通用运行时(COMMON RUNTIME)基础结构的标准。

 

首先是对JAVA .NET平台的构成做一个分析,然后是我个人对JAVA如何形成的一个认识,接着是分析微软和SUN之间的合作与分歧,最后是JAVA.NET合作的前景


二、对JAVA .NET平台的构成做一个分析
  
JAVA是平台无关的语言,.NET是语言无关的平台。


JAVA平台的构架

JAVA平台包括JAVA语言,以及一套虚拟机——如JVMKVMCVM等——通过它们实现在PC机,手提电脑或是嵌入式系统上运行JAVA的字节码。同时,JAVA平台还定义了一整套覆盖面很广的API,它们被用来与微软的API协调或是相互竞争。如JDBCODBCJTAPITAPIJDOADO等等。因此,简要来说,JAVA平台包括语言,虚拟机,以及API库。由于使用虚拟机机制,所以JAVA语言在所有的平台上只有唯一的版本,因此它使用RMI(远程方法调用Remote Method Invocation)协议进行远程通信;微软则在.NET框架中使用DCOM——正在逐步演变为SOAP(简单对象访问协议)。SUN最初对JAVA的宣传是“一次性代码编写,所有环境下运行”,但在推出了“J2EE (Java 2 Enterprise Edition)和“J2ME (Java 2 Micro Edition)后不得不收回了它最初的宣传,因为“一种尺码的鞋适合所有的脚”的解决方案并是最好的选择。

 

 

.NET平台的构架

.NET框架包括C++, VB.NET (VB 7.x) C# 等一系列语言;与JAVA虚拟机类似的一套运行时环境;以及一套倾向与WINDOWS体系的API接口。其中的运行时环境可能存在于一个浏览器、或是一个WEB SERVER、或是在操作系统中。将来也许在SQL SERVER中也可能存在这样的运行时环境。另外需要提及的是微软的SOAP协议,它在继承了DCOM的一些特性的基础上发展起来,基于XML格式通过HTTP进行传输。SOAPJAVA版本,可以在http://xml.apache.org上看到它的有关文档。

从商业角度来看,.net 是平台垄断,而 java 是语言垄断;好像C++之父给个一个论断:JVM本身就是一种平台(大意)。SUN or MS都是要将开发者binding到自己的平台上。不过不考虑技术本质,考虑现在的市场现象,这个论断可以成立。

从易学角度来看,.net看一本书就可以开始干活了,而Java要看许多书还不一定能干活。有一个很好的比喻,.net就像品牌机,什么东西都预先由MS装好,但整体性能总是那么差强人意.JAVA更容易DIY,DIY就需要自看更多的书,当然这是取舍问题。

不过单纯从语言以及sunms的基本语言库来说,java已经比不上.net了(以前是.netjava,现在是java.netjava剩下的只是哪将近十年来的经验积累。)

对于开发产品系列或规模来说, MS 的产品线的互补性已经是很难撼动的了,Visual StudioWindowsOfficeSql Server。比如: MS有自己的数据库系统软件,Oracle的这个最终幻想可能还要长久的幻想下去,而且有无终点还很难说。

 

三、发展历程

 

JAVA最初来源于SUN的一套为机顶盒设计的语言,当时的名字是OAKSUN将之更名,并将它放在INTERNET上作为开放源码共享。随着专门为网页设计的JAVA APPLET的出现,JAVA语言迅速在INTERNET上流行起来。当时的浏览器主要是NETSCAPE。当微软发现明天市场的主宰可能是浏览器而不是桌面系统时,开始着手对NETSCAPE进行收购,在收购计划失败后微软发展了自己的浏览器IE。当时的INTERNET需要一种语言,而JAVA适时的出现了,由于它与C++的许多相似的语法,使得很多程序员转向了JAVA。而它确实具有很多优势,以至于在98年秋,它的反对者微软在MSDN中都宣称,JAVA是编写COM组件的最佳语言。随着JAVA一起出现的还有LINUX操作系统和APACHE服务器。这三者的联合在服务器端的应用表现出强大的威力,以至WINDOWS NT在企业级服务器市场受到了很大的冲击。

但是自从98年出现的DHTMLJAVASCRIPT导致了JAVA APPLET在网页设计领域的淡出,在这里有两方面因素:

1、大部分APPLET效果现在都可以由DHTML完成;

2、而DHTML对带宽的要求更低。但是JAVA因为在服务器端的应用仍有市场,而得以继续发展。这是开发源码的支持者为JAVA添加了活力,首先是APACHE提出的SERVERLET 和稍后出现的JSP,这些在.com网站的程序开发中占据了一席之地。JAVA平台首先以SERVERLET,然后是JSP,最后是EJB(Enterprise Java Beans),逐步向企业级应用拓展。EJB是一个面向对象的事务进程系统,有些类似于微软的MTSMicrosoft TransactionServer)。事实上MTSEJB都不是很成功,因为它们都无法达到INTERNET应用的规模。就我的观点来看,JAVA最失败的时刻是,SUN通过法律手段向微软索赔$2000万,并获得成功的时候。微软从那时开始制订自己的.NET计划,同时也宣布了JAVA作为独一无二的INTERNET 平台的地位的结束。

 

四、展望

现在,我们能看到到还只是一个很混乱的局面。而在未来,我们将看到.NET的成熟,以及它和JAVA的融合。JAVA将继续保持它的特点:跨平台的服务器端应用,如WAP服务器,或者是电信领域的如JAIN(Java API for Intelligent Networks,同时它在嵌入式系统中将继续保持它的优势,象智能卡、移动电话、PDA等。而我们还将看到.NET的成熟,当然这种成熟需要时间,可能是相当长的一段时间,就好象当年JAVA成长那样。ORACLE 8i 及其更老一些的版本,充当着一个JAVA 运行时的载体的角色,这使得JAVA 得以与ORACLE 数据库引擎紧密结合;同样,.NET体系也会与新版本的SQL  SERVER,紧密的结合,这将包括一个VES (虚拟执行系统)执行引擎。这将使程序开发人员可以在SQL 语句和存储过程中嵌入C#VB.NET 的成分。目前,你可以通过调用DLL函数来使用扩展存储过程,但数据库本身并没有一个面向对象的运行时引擎与之相匹配。未来的标志.NET 成熟的里程碑非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris, LinuxPalm OS.NET接口。与JAVA核心的整合。比如说,针对CLICommon Language  Infrastructure)的JAVA编译器,针对JAVA虚拟机的C#编译器。SQL SERVER 或是ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,完善的.NET平台。

可以预见到,微软将会赞助一些开放源码的项目,以使.NET UNIX 平台扩展,而这将有助于一些开放源码组织减少它们对JAVA的偏爱。

 

五、JAVA的命运

 

JAVA的一个主要目标是通信设备提供商,如NOKIA就在它的WAP SERVER 应用了JAVA。类似于70年代和80年代初,PC销售时硬件供应商将最终的应用程序绑定在操作系统中一起销售,JAVA现在也被绑定于通信设备中被销售。它的另一个主要方向是JAINJava API for Advanced Intelligent Network),它主要是定义一套与协议(如CDMAGSMIMT2000)无关的API,以便于基于开放市场的组件开发。这使得ISV(独立软件供应商)可以以插件的形式提供通信服务,如可自动转接至最近的可拨通的国际呼叫中心的800免费电话。当然,JAIN也遇到了对手,想微软和不列颠通信提出的Parlay计划——它也被业界所支持。另外,JAVA在嵌入式设备中也保持着领先的地位,如smart 3G GPRS,在这里的移动电话系统采用的是J2MEJava 2 Micro Edition),但是如果它不能很好的解决一些固有的问题,如载入时的延迟等,也许,很快,它就将被C#代替,如果.NET 能提供快速的运行环境,和广泛的业界支持。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值