微软和Sun针对Java的世纪之战
1996年9月的某一天,微软浏览器部门的主管艾达姆·波茨瓦斯几经考量之后,提笔给时任微软CEO的比尔·盖茨写了一邮件,他非常恳切地提醒比尔·盖茨注意一个正在形成的威胁。他写到:”必须意识到Java不仅仅是一种语言,如果它只是一种语言,我们愿意并且能够容易地为它建立最佳的表现形式,事情可以圆满解决了。但是事实上,Java绝不仅仅是一种语言,它是COM的替代者!” 而COM恰恰是Windows的编程模型。而Java编程很多时候比C++编程要容易的多,更致命的是他是跨平台的。波茨瓦斯也提出了对抗Java的方法,就是悄悄地为Java提供某些扩展,使得用Java 编写的程序能够在Windows中工作得更好,但是在其它平台上却不能运行。
盖茨显然被这封信吓坏了,他第二天就回信了:”这可把我吓坏了。我不清楚微软的操作系统要为Java的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位。了解这一点非常重要,是应该最优先考虑的事情。”
然后,微软推出J++语言,并推出了Visual j++集成编程工具,对Java进行了大量的修改。1997年,Sun公司以歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软,2001年1月,SUN胜诉,根据双方达成的和解协议,微软不得对Windows操作系统中包含的Java语言作任何改动,并获赔2000万美元。
2001年年底,微软在推出新版操作系统Windows XP和新版IE时,故意不安装Java软件,并且推出自己仿造Java创造的语言C#和.net框架。2002年的3月8日,SUN公司向美国加州地区法庭提出起诉,称此举造成它直接经济损失高达10亿美元。2002年6月,微软干脆称从2004年起,因为安全原因微软的Windows操作系统将不再支持Java语言。
2002年12月23日,法院判决裁定微软公司必须在其Windows操作系统和IE中发布与其竞争的 Java编程语言。摩兹法官的意见是:在微软的垄断下,Java拥有一个并不健全的市场,比如说,大部分PC上所安装的Java软件要么就是旧版本,要么就是仅适用于Windows的版本,这使得其它软件开发者对Java平台产生了厌恶的情绪,这些都是因为微软反竞争行为的结果,看来微软已经利用Windows的垄断地位来破坏SUN对Java的销售渠道。树立市场正义的唯一方法是纠正微软的所作所为,”阻止微软从它过去的错误中获得将来的利益!”
2004年4月2日,两者达成和解协议微软将向Sun赔付20亿美元以消解旧怨,他们开始共同应对来自IBM和Linux的挑战。
微软和Sun针对Java的世纪之战的更多相关文章
- 微软和Google的盈利模式对比分析
一: 微软和Google是世界上最成功科技巨头之一,但他们之间却有着不同的产品和业务,二者的盈利方式也各有不同,本文将分析和探讨的二者盈利模式的异同. 微软的盈利模式 在1975年由大学肄业的Bill ...
- Spring Boot 针对 Java 开发人员的安装指南
Spring Boot 可以使用经典的开发工具或者使用安装的命令行工具.不管使用何种方式,你都需要确定你的 Java 版本为 Java SDK v1.8 或者更高的版本.在你开始安装之前,你需要确定你 ...
- Procedure for installing and setting Sun JDK Java on Default Amazon Linux AMI
# First verify the version of Java being used is not SunJSK. java -version # Get the latest Sun Ja ...
- 2017.10.28 针对Java Web应用中错误异常处理方法的运用
针对Java Web应用中错误异常处理方法的运用 在javaweb中其异常都需要对Checked Exception之下的Exception进行继承,并且有选择地对发生的错误和异常进行处理.Java同 ...
- linkerd——针对java的为微服务提供可靠性的proxy,服务发现重试LB等
Buoyant是一家云服务公司,宣布了Linkerd(发音为“linker-DEE”)的一周年纪念日,这是一个基于微服务的原生云应用程序的开源“服务网格”项目.诚如公告所述: 在20世纪90年代,TC ...
- path 与classpath针对JAVA来说
Path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方CLASSPATH 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类 ...
- Java、javax、org、sun、Java.util等常用包的区别、详解、实例
Java.javax.org.sun包都是jdk提供的类包,且都是在rt.jar中.rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就 ...
- 捷微jeewx , 免费开源(java)微信公众账号管家系统发布
JeeWx, 微信管家平台,简称"捷微". 捷微是一款免费开源的JAVA微信公众账号开发平台. 平台介绍: 一.捷微Jeewx简介 Jeewx是一个开源.高效.敏捷的微信开发平台 ...
- 一次测试岗位针对Java和接口的面试题
1.post和get的区别? 1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在UR ...
随机推荐
- log4j的参数配置(转)
转载:log4j.properties文件各参数含义与配置 以下是配置文件log4j.properties的一些属性: log4j.rootLogger=WARN, stdout, Rlog4j. ...
- Java语法基础学习DaySeven
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean byte——Byte ...
- django面试五
http和https的区别https协议需要到ca申请证书,一般免费证书很少,需要交费. 注:CA - certificate authority,身份认证,权威机构认证,CA认证: http是超文本 ...
- vim 使用 Tricks
vim + /etc/fstab:打开文档时直接光标直接置于最后一行首部: 1. 最小影响的修改:非 insert mode 修改 del/x:删除光标所在字符: r:replace,替换光标所在的字 ...
- TCP三次握手及释放连接详解(转)
一.TCP头部简介 ACK :即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符.表示发来的数据已确认接收无误.TCP报文格式中的控制位由6个标志比特构成,其中一个就是ACK,ACK为1表 ...
- Java中的内部类————以及jdk1.8的lambda表达式
一.内部类学习导图 1>.静态内部类: 使用static修饰符来修饰内部类,则这个内部类就属于外部类本身,而不属于外部类的某个对象.因此使用static修饰的内部类被称为静态内部类. publi ...
- djang 过滤器和装饰器
Django自定义过滤器 Django 自定义过滤器, 在项目目录中建立templatetags目录. 建立my_filter.py 文件, 导入模板模块 :from django import te ...
- linux rpm yum 安装 软件
rpm 安装: 1.rpm包的了解: rpm 安装 升级 删除 rpm -ivh ****.rpm 安装 rpm -Uvh ****.rpm 升级 rpm -e name 删除 ...
- Python学习手册
基础 概念 源码编译为字节码,解释器解释字节码 CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃 ...
- 《DSP using MATLAB》Problem 6.10
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...