关于 Eclipse 的一场 “三角关系”

上个世纪 90 年代,世界上的计算机要么不联网,要么在企业内部联网。但是,在互联网的概念下,计算机之间共享信息和资源的需求成为了必要。

**1995 年 5 月,Java 横空出世。**Java 的父亲是当时凭借 Solaris 操作系统风头正盛的 SUN 公司。当时,大多数高级语言的程序在运行前需要根据不同的计算机进行编译,然后才能运行。Java 这种高级程序语言不需要与硬件相关的编译器,而是在运行时边解释边运行。如此一来,Java 程序就不受计算平台限制,正好满足了共享的需求。

可想而知,Java 的流行是个必然。 但是,Eclipse 的大火却是大家没想到的。Java 好用,但相应的编译器却不好用。而且,当时的编译器少得可怜,一款开源且好用的 Java IDE Eclipse 打遍天下无敌手。

那时候,开源基金会也少得可怜。2004 年,Eclipse 成立基金会,摇身一变成为全球知名的开源基金会。再然后,随着 SUN 被 Oracle 收购,Oracle 又将 Java EE 捐赠给 Eclipse,它由此成为 Java 大本营的重要基石。

如今,Java 已被唱衰多年,多少新涌现的语言说要取代 Java。现在,开源基金会也像雨后春笋一般,Eclipse 基金会几经重大变化。还会有人对他们的故事感兴趣吗?

一段三角关系

如果不去特意追溯,任谁也想不到 Eclipse 开源基金会背后站着的是蓝色巨人 IBM。

IBM 一直是专利大户,多年来都是拥有专利最多的公司,甚至没有之一。他们养了一支庞大的知识产权律师团队,对侵犯专利者重拳出击。似乎,IBM 与开源天生绝缘。

但利益是永恒的。 1996 年,IBM 收购了开发 Smalltalk 和 Java 集成开发环境 VisualAge 的 OIT(Object Technology International)。据说,当时 VisualAge 的代码价值 4000 万美元,IBM 眼都没眨就说要消除不兼容的开发环境这个市场痛点,要增加这些环境中通用组件的重用性。2001 年,一个天生为开发环境集成平台而设计的产品诞生了,它日后成为了整个 IBM 工具策略的基础。

**IBM 给这个产品取名为 "Eclipse",有 "日食" 的意思。**很多人说这个是非常糟糕的名字,在此之前有 Eclipse 汽车,有 Eclipse 口香糖,还有 Eclipse 女子足球组。IBM 的律师也反对这个已经烂大街的名字。

但 IBM 一意孤行。2001 年 11 月,IBM 用一个让人无法拒绝的价格从足球队手里购买了 eclipse.org 域名,非要用这个名字。更想不到的是,Eclipse 是开源的,IBM 为它建立了开放源代码许可和运营模式,不仅贡献大量源码、开发者,还有关于开源协议的法律咨询援助。

这是 IBM 最大胆的开源 "赌注"。

------ IT 咨询公司 Illuminata 分析师 James Governor

IBM 的开源决定是一次革命性的举措。那个时候,软件开源协作开发还是十分新颖的想法,Eclipse 的成功展示了开源模式的优势。

------ Eclipse 基金会执行董事 Mike Milinkovich

**话说回来,这个名字多少带点针对 SUN(太阳)公司的意思。**SUN 对此一直耿耿于怀,与此同时,Eclipse 展现了强大的能力,让 SUN 自带的编译器 NetBeans 黯然失色,逐渐成长为 Java IDE 的老大。

2004 年,Eclipse 正式宣告独立出来,成立 Eclipse 开源基金会,而且总部设立是在加拿大渥太华,不再依赖于创始者 IBM,而是转向行业,让其它技术供货商、甚至是 IBM 的对手加入 Eclipse 董事会,协助决定未来方向。

面对这一邀请,SUN 公司的第一反应是不。据知,在 Eclipse 基金会成立前夕,SUN 就在考量要不要加入,除了技术层面外,其中最主要的一个关注就是 Eclipse **这个名字。**SUN 表示,如果基金会不同意改名字,他们就不准备加入。还有该公司高管也表示,不会加入一个名字中带有要消亡 SUN 公司的组织。

当时,业界普遍认为 IBM 独占 Eclipse 主导地位,想要推动自家的 Java 软件,这让 IBM 与 SUN 之间产生间隙。但那时,IBM 主管也曾驳斥传言,说取名 Eclispe 不是克制 SUN 的意思,请不要自作多情。

第三者微软,在 2005 年才浮出水面。 2005 年 3 月 EclipseCon 大会的主题演讲中,IBM Rational 软件部门 CTO 兼设计、构建和测试工具副总裁的 Lee Nackman 表示,微软公司才是 IBM 想要 "吞噬" 的公司。

我们的目标是微软。微软是市场的领导者,并且正在成为主导市场的工具平台。显然,我们需要争夺更多的开发者群体。所以,在 1998 年左右,我们觉得应用服务器和中间件的竞争是关键,我们需要把开发者带回到基于 Java 的中间件上来。

2001 年初,IBM 看到 Visual Studio 和微软生态不断成长,非常困扰。我们决定与 Windows 和 Visual Studio 进行竞争。因此,Eclipse 的目标过去是,现在也是微软,而不是 SUN 公司。

好一出峰回路转的单箭头大戏,任谁都会说一句 IBM "不娶何撩"?但是,冷静想想,一切又似乎都有迹可循。

不谈 IBM 与微软那笔 DOS 操作系统的 "旧债"。21 世纪初,互联网爆发,依靠个人电脑崛起的微软如日中天,Windows 在手之外,它还要开发C# 语言和 .Net 平台,要与 Java 一争高低。这在重仓 Java 的 IBM 眼里,可谓是 "旧债加新仇"。

2004 年 Eclipse 基金会成立,就有不少人猜测,这将有助于抵挡微软工具与 Windows-based 软件的竞争。要想增强竞争力,IBM 或者是 Eclipse 必须拿出更强势的产品。

**然而,IBM、SUN 和微软之间的三角关系并没想象中那么简单。**因为微软与 SUN 之间也曾有一段 "爱恨情仇",这佐证了微软就是在打压 Java。

Java 一降生,SUN 就抱有通过 Java 实现跨操作系统平台的梦想,这让微软很是眼馋。1996 年,微软向 SUN 公司购买了 Java 的授权。但是,微软并没有依合同向用户提供用 Java 开发的产品,而是通过 SUN 的技术,搞自己的类似产品。

为此,SUN 把微软告上法庭。这场官司直到 2001 年才以 SUN 获得胜利告终,当时法院判定:**微软误导 Java 开发者、阻碍他们开发兼容 Java 技术的产品,从而打压 Java。**然而,此时微软的 ASP 已经获得了更大的市场占有率。

一滴时代的眼泪

战胜 Visual Studio 和微软生态那个点,Eclipse 曾经一度非常接近过。**可惜,却无疾而终。**在知乎相关问题中,排名第一的答案多少有点情怀向了。

的确,**Eclipse IDE 是 Eclipse 基金会的第一个王牌项目。**当年,Java 开发没有统一天下的 IDE,稀少又昂贵,Eclipse IDE 以开源和免费的姿态出现在大家面前,而且速度相对更快,又有 Google 支持,还在各种教科书中备受推崇,让不少人如获至宝,口碑极盛。

下面这两张图, Eclipse 基金会执行董事 Mike Milinkovich 在多个演讲中都拿出来过,以佐证 Eclipse IDE 曾经一骑绝尘:

转折点出现在 2014 年 Eclipse 4.4 Luna 的发行。 如果说之前的 Eclipse IDE 瑕不掩瑜,那么后几年中发展中,它的弊端就渐渐显现出来了。曾有一篇唱衰 Eclipse 的文章直指这一版本:

如果说有一个时间点,标志着 Eclipse 的死亡,那这个时间点一定是 Eclipse 4 的发布。在 Eclipse 3.x 时代,Eclipse 做的很不错,统治着所有开发工具。但是突然间,好像他们决定要亲手终结自己的生命,他们改写了所有 UI 代码。

在 3.x 时代,Eclipse 是一个速度非常快的 IDE,每一次 Release,它都添加了各种实用的功能。而 Eclipse 4,一切都变了,运行速度变慢,UI 错误不断,而且还很丑陋。好像 Eclipse 一下退步了好几年。

有些人将原因归结于 Eclipse 不再看重 IDE 产品,而更乐忠于推广 Eclipse 基金会;也有人认为 Intellij 才是 Eclipse 式微的真正元凶:"每一次在使用 Eclipse 的时候,你都会感到,你还在使用它的唯一原因,就是太穷,买不起 Intellij。"

此前,2013 年 6 月的 Google I/O 大会上,Google 推出新的 Android IDE "Android Studio"。本来,是与 Eclipse 合作开发;随后,谷歌 "反水",投身 IntelliJ,打造出今天的 Android Studio。由此,这次大会上的 "Android Studio",最大的转变就是从 Eclipse 切换到了 IntelliJ IDEA。

**2013 年~ 2014 年,似乎成为了 Eclipse 及其基金会的分水岭。**资料显示,2012~2014 年 Eclipse 基金会出于财务亏损状态。

旋即,2015 年 6 月,Google 重点决定建设 Android Studio,并宣布在年底停止支持其他集成开发环境,比如 Eclipse。8 月,Eclipse 基金会开始向个人或组织寻求捐助来为它的开源项目提供资金。

与此同时,Eclipse 基金会也表示,初期他们的重点放在改进核心 Eclipse 平台、JDT 和 Web 工具,未来会扩展到更多项目。这是一个转型的信号。

如今,据 2022 年 5 月份的数据来看,Eclipse IDE 依旧占据在榜单第二的位置,受到了 14.21% 份额的关注度,似乎并没有像别人所鼓吹的那般滑落神坛。

https://pypl.github.io/IDE.html

**但是,他们似乎已经放弃了追赶微软的计划。**在 2021 年的年度报告中,他们的战略目标包括:传达 Eclipse 基金会的差异化价值主张、将 Eclipse 基金会建立为卓越的欧洲 OSS 组织、培育新兴技术的项目和工作组等等。

要知道,曾经十余年中,他们的年度报告战略位置,排在第一的永远都是 "成为首选开发者平台" 这样类似的表述。

一场失败的谈判

2018 年是 Java 社区发生重大变化的一年,因为企业 Java 的管理权从 Oracle 和 Java Community Process (JCP) 手中被转移到了 Eclipse 基金会。有必要提一嘴的是,之所以是 Oracle,是因为 SUN 在 2010 年被它收购了。

Mike Milinkovich 在一场采访中如此表述这项转移:

我们绝对欢迎 Java EE 加入 Eclipse 基金会。虽然这是一项繁重的工作,但 Eclipse 基金会在 Java 社区和企业中有着深厚的根基。

我们觉得这是天作之合,也是我们的绝佳机会。除此之外,我认为 Jakarta EE 会促使许多开发人员最终认识到 Eclipse 基金会还有我们的 Java IDE 以外的项目。

很明显,在 Eclipse 基金会看来这是一件好事,这巩固了 Eclipse 基金会在 Java 世界中的重要地位。但不知道大家发现一个 "华点" 没有,转移后的 Java EE 被改名为 Jakarta EE 了。这缘于一次失败的 谈判**。**

简单来说,Oracle 捐赠 Java EE 给 Eclipse 基金会有几个条件:

1)**Eclipse 基金会发行的产品(如 Eclipse IDE)必须只能捆绑由 Oracle 认证(而不是任何其他供应商认证)的 Java 运行。**这一条会损坏了该基金会 "供应商中立" 的立场。

2)**Oracle 要求 Eclipse 基金会不能修改旧的代码,如需修改则要重命名,包括项目名称和软件包的名称。**这意味着现有的应用程序无法在没有重构和重新编辑的情况下运行在更新后的平台上。

有点霸王条款的意思的了。不少人在当时劝 Oracle 允许 Eclipse 基金会继续使用 Java 的名字,毕竟 Java EE 之前就是从 J2EE 改名过来的,频繁地改名会造成使用者的困扰,导致市场混乱。

但 Oracle 没有让步。 在长达数月的谈判之后,两者最后达成的共识是:Jakarta EE 不能发布针对基础库 javax 的修改包,Jakarta EE 规范也不能使用包括 Java 商标的现有规范名称。

因此,有人担忧 Oracle 会在一定程度上杀死 Java EE。但最重要的是,这凸显了开源基金会在大企业面前的弱势地位。

一次搬家的背后

2020 年 5 月,Eclipse 基金会宣布将总部搬往欧洲的比利时布鲁塞尔。

在计划中,2020 年 7 月这一搬迁就要完成。届时,Eclipse 基金会将在比利时、加拿大和美国设立总部,但其官方总部将设在欧洲。而 Eclipse 和 Eclipse Foundation 的名称、商标和品牌将由新的比利时实体控制。而且,未来 Eclipse 基金会的会费以欧元计价。

除此之外,Eclipse 基金会还正在建立一个基于 GitLab 的新平台,托管在欧洲的服务器上。

这让人不得不联想到 2019 年的微软收购 GitHub 事件。当时,微软 ------ 这个 Eclipse 的宿敌正在史无前例地加大对开源的支持力度。这让 Mike Milinkovich 感到担忧

微软正在走向另一种形式上的完全垄断,可能危及包括 Eclipse IDE 等在内的其它公司和项目。GitHub + VS Code 的组合已经非常流行,这种单一性文化会引发忧虑。

当然,我们也不能将 Eclipse 基金会的这次搬家归结于微软,这次行动的确有战略上的必要性:

首先,Eclipse 基金会有三分之二的提交者位于欧洲国家。Mike Milinkovich 表示, Eclipse 基金会已经是欧洲最大的开源组织;

其次,Mike Milinkovich 认为欧洲越来越重视开源和开发的价值,而且尽管欧洲有一些开源组织,但它们主要坚持单一项目,并没有托管数百个项目这样体量的开源基金会。这对 Eclipse 基金会是个机会,让它建立起一个真正的全球开源机构。

我们(Eclipse Foundation)在美国的工作多少有些局限了自己。在美国,我们的确和一定数量的研究实验室和政府机构和合作,一些美国资助的研究机构也和我们有联系。

然而,在我看来,欧洲在政策层面上是要比美国先进的,欧洲的研究机构更加愿意从外部去拥抱开源。近来,欧洲越来越倾向于使用开源的方法来达成研究成果的发表和传播。多年来,他们一直鼓励研究者或者开发者建立社区。

------ Mike Milinkovich

结语:物是人非,分久必合。

日转星移。IBM/Eclipse、SUN 和微软之间的爱恨情仇,似乎已经随风飘散了。

2010 年,SUN 公司被 Oracle 公司收购。2018 年那场与 Oracle 谈判虽然失败,但那早已与 SUN 无关了。Eclipse 拿到了 Java EE,进一步巩固了自己在 Java 社区中的权威。

2021 年 8 月,微软宣布

将成为 Eclipse 基金会的战略成员,并且加入其董事会。

其实,早在 2016 年,微软就以解决方案成员的身份加入了 Eclipse 基金会,并在当时提供了一套开发工具和服务。现在,两者之间的合作更加紧密了。微软盛赞 Eclipse 基金会:

1)Eclipse 基金会在供应商中立治理、基础设施、营销、社区建设和开发人员倡导工作方面拥有深厚的专业知识。

2)Eclipse 基金会仍然是 Java 生态系统的重要基石,与 Java 社区的核心部分有着密切的联系。

3)Eclipse 基金会正在通过工作组扩大其作用,其中许多工作组对 Microsoft 及其合作伙伴很重要。

果然啊,三十年河东,三十年河西。

相关推荐
蓝染-惣右介6 分钟前
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
java·设计模式
秋恬意38 分钟前
IBatis和MyBatis在细节上的不同有哪些
java·mybatis
齐 飞1 小时前
BeanFactory和FactoryBean
java·sprint
大霞上仙1 小时前
lxml 解析xml\html
java·服务器·网络
Xiaoweidumpb1 小时前
tomcat temp临时文件不清空,占用硬盘,jdk字体内存泄漏
java·tomcat
AI人H哥会Java2 小时前
【Spring】控制反转(IoC)与依赖注入(DI)—IoC容器在系统中的位置
java·开发语言·spring boot·后端·spring
不能只会打代码2 小时前
Java并发编程框架之综合案例—— 分布式日志分析系统(七)
java·开发语言·分布式·java并发框架
自律的kkk2 小时前
SpringBoot中使用AOP切面编程实现登录拦截
java·spring boot·aop·切面编程·登录拦截
丁总学Java2 小时前
nohup java -jar productQualification.jar --spring.profiles.active=prod $
java·spring·jar