.Net的Java渊源
废话不说,直奔主题吧!
在Sun的Java渐渐流行的时候,MS跟Sun协商,获得了制作虚拟机的授权,于是MS开始生产Windows平台上的虚拟机,并开发了自己的Java开发工具---Visual J++,并在原生的Java里面加入了自己的一堆东西,比如说COM,COM+之类的。Sun开始并没有在意MS的举动,以为他只是在搞自己的虚拟机而已,但是后来发现MS越来越不像话了,把自己的东西都搞到Java里面了,那样的话,Java还是Java吗?Java的“一次编译,处处运行”的良好名声就要被MS搞得一塌糊涂了。于是Sun大为生气,起诉了MS。
在Sun的Java渐渐流行的时候,MS跟Sun协商,获得了制作虚拟机的授权,于是MS开始生产Windows平台上的虚拟机,并开发了自己的Java开发工具---Visual J++,并在原生的Java里面加入了自己的一堆东西,比如说COM,COM+之类的。Sun开始并没有在意MS的举动,以为他只是在搞自己的虚拟机而已,但是后来发现MS越来越不像话了,把自己的东西都搞到Java里面了,那样的话,Java还是Java吗?Java的“一次编译,处处运行”的良好名声就要被MS搞得一塌糊涂了。于是Sun大为生气,起诉了MS。
结果当然是Sun胜诉了。MS不得以不能再继续胡乱折腾Java了,还受到了制裁。MS当然很生气,于是在XP里面干脆就不集成虚拟机了,没想到又被Sun起诉了。
微软虽然在诉讼中失败,并且不能再随意折腾Java了,但是MS在折腾Java的过程中却把Java研究透了,MS了解到了虚拟机、字节码这些技术是未来计算的趋势,同时,MS对Java的缺点也有了自己的见解。于是,DotNet就在这个时候开始了酝酿。DotNet具有Java的很多良好特性(比如虚拟机、字节码、编程模型等等),同时也抛弃了Java的很多缺点(比如DotNet程序总是在第一次运行时被编译成本地代码,易用性也有了很大的提升)。
Sun牢牢控制着Java SDK,MS牢牢控制着DotNet的SDK,但是Java和DotNet有一个很重要的区别,Java比DotNet更开放。MS几乎控制了DotNet的开发工具---几乎所有公司都用VS.net开发,从Java移植开源项目的人也被认为是DotNet的异教徒,因为MS总有一天会推出自己的类似工具来取代它们。