本文发表在 rolia.net 枫下论坛作者:ccidnet
2002-3-3 21:26:39
1. 在开发语言上
.NET的支持面是比较广的,C++、VB、C#、Perl、COBOL等等均得到支持,开发人员可以很容易找到适合自己的语言。而J2EE只支持JAVA语言。这就是说J2EE在语言的选择面上是比较窄的。当然,C#是.NET支持的最重要的一种语言,相对于JAVA而言,C#是支持JIT(just-in-time)编译方式的,而JAVA是基于解释方式的。同时微软为不同的平台环境提供了不同的JIT编译方式。对于类似于Windows CE这样的移动计算环境,微软提供了压缩的.NET框架,相应的也提供了EconoJIT(经济型编译器)。在一般的桌面环境下,微软提供了标准的编译器。另一方面,C#将成为一种工业标准,因为ECMA(欧洲计算机制造商协会)正在接纳C#;而JAVA语言只是SUN公司提出来的。
2. J2EE支持JAVA、EJB,而.NET支持XML/SOAP
从标准的开放性上来说,XML/SOAP要好于前者。XML由W3C组织提出,得到众多厂家的支持,是下一代Internet上内容表示的标准,XML能够有效地表达网络上的各种知识,为信息的交换和计算提供新的载体。XML相对于网络计算的作用,完全可以与计算机起步阶段ASCII码的作用相提并论。XML也可以说是网络信息的标准代码,它表示的不是符号信息,而是知识化的块状内容。这种标准语言虽然不是程序设计语言,但是它代表的却是下一代网络上互操作的光明前景。说到这里,不由得让人想起了人们"当年"对 JAVA 的狂热。确实,JAVA有着非常诱人的初衷,让许多人能够在这样的一种理想的感召下为想象中的各种系统之间的互操作能力而投入积极的开发中。但是实际上,JAVA既没有成为人们想象中的成功的商业计算工具,也并没有实质上的技术进步。JAVA试图从统一计算平台的角度来实现互操作,但是这可能永远都是一个梦想。真正能够互操作的,只能是标准和通用的数据描述语言。而SOAP协议本身也是由微软和IBM这样的商业巨头联合推出开发。这一切都表明.NET技术标准的开放性是不错的。
3. .NET的SOAP协议能够保证一个平台上的组件能够与.NET平台上的组件进行信息的交换。
4. 关于“编译一次,多处运行”
最重要的一点是,在现有的条件下,各种各样所谓的跨平台、“编译一次,多处运行”等口号只是商业炒做。JAVA的首席设计师James Goslin在谈到这个问题时曾经表达过这样的看法,所谓的“编译一次,多处运行”口号只是一种美好的想法。这就是说,基于某一种开发平台进行开发是不可避免的,假如你基于IBM公司的WebSphere利用JAVA开发商业程序的话,基本上就固定在这个平台上了。JAVA所号称的100%纯的口号其实不是这样;当然,C#也是如此。
5.代码通用性
在.NET平台上开发程序的一个重要好处在于可以实现真正的“代码重用”。因为在设计.NET平台时,一个重要的思想就是运行时和具体的语言分开。所有的资源管理、内存分配、变量类型等均由运行时处理,这样的话,用C#写的类直接就可以用在C/C++程序中。这样的话,只要基于.NET平台,过去的程序不会因为要采用新型语言而做非常大的修改。而在J2EE平台上,JAVA就是JAVA,它将运行时和具体的语言混在一起。更多精彩文章及讨论,请光临枫下论坛 rolia.net
2002-3-3 21:26:39
1. 在开发语言上
.NET的支持面是比较广的,C++、VB、C#、Perl、COBOL等等均得到支持,开发人员可以很容易找到适合自己的语言。而J2EE只支持JAVA语言。这就是说J2EE在语言的选择面上是比较窄的。当然,C#是.NET支持的最重要的一种语言,相对于JAVA而言,C#是支持JIT(just-in-time)编译方式的,而JAVA是基于解释方式的。同时微软为不同的平台环境提供了不同的JIT编译方式。对于类似于Windows CE这样的移动计算环境,微软提供了压缩的.NET框架,相应的也提供了EconoJIT(经济型编译器)。在一般的桌面环境下,微软提供了标准的编译器。另一方面,C#将成为一种工业标准,因为ECMA(欧洲计算机制造商协会)正在接纳C#;而JAVA语言只是SUN公司提出来的。
2. J2EE支持JAVA、EJB,而.NET支持XML/SOAP
从标准的开放性上来说,XML/SOAP要好于前者。XML由W3C组织提出,得到众多厂家的支持,是下一代Internet上内容表示的标准,XML能够有效地表达网络上的各种知识,为信息的交换和计算提供新的载体。XML相对于网络计算的作用,完全可以与计算机起步阶段ASCII码的作用相提并论。XML也可以说是网络信息的标准代码,它表示的不是符号信息,而是知识化的块状内容。这种标准语言虽然不是程序设计语言,但是它代表的却是下一代网络上互操作的光明前景。说到这里,不由得让人想起了人们"当年"对 JAVA 的狂热。确实,JAVA有着非常诱人的初衷,让许多人能够在这样的一种理想的感召下为想象中的各种系统之间的互操作能力而投入积极的开发中。但是实际上,JAVA既没有成为人们想象中的成功的商业计算工具,也并没有实质上的技术进步。JAVA试图从统一计算平台的角度来实现互操作,但是这可能永远都是一个梦想。真正能够互操作的,只能是标准和通用的数据描述语言。而SOAP协议本身也是由微软和IBM这样的商业巨头联合推出开发。这一切都表明.NET技术标准的开放性是不错的。
3. .NET的SOAP协议能够保证一个平台上的组件能够与.NET平台上的组件进行信息的交换。
4. 关于“编译一次,多处运行”
最重要的一点是,在现有的条件下,各种各样所谓的跨平台、“编译一次,多处运行”等口号只是商业炒做。JAVA的首席设计师James Goslin在谈到这个问题时曾经表达过这样的看法,所谓的“编译一次,多处运行”口号只是一种美好的想法。这就是说,基于某一种开发平台进行开发是不可避免的,假如你基于IBM公司的WebSphere利用JAVA开发商业程序的话,基本上就固定在这个平台上了。JAVA所号称的100%纯的口号其实不是这样;当然,C#也是如此。
5.代码通用性
在.NET平台上开发程序的一个重要好处在于可以实现真正的“代码重用”。因为在设计.NET平台时,一个重要的思想就是运行时和具体的语言分开。所有的资源管理、内存分配、变量类型等均由运行时处理,这样的话,用C#写的类直接就可以用在C/C++程序中。这样的话,只要基于.NET平台,过去的程序不会因为要采用新型语言而做非常大的修改。而在J2EE平台上,JAVA就是JAVA,它将运行时和具体的语言混在一起。更多精彩文章及讨论,请光临枫下论坛 rolia.net