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

news2024/11/17 2:35:26

上个世纪 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 及其合作伙伴很重要。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023-02-16 学习记录--React-邂逅Redux(三)

React-邂逅Redux(三) “天道酬勤,与君共勉”——承接React-邂逅Redux(二),让我们一起继续探索Redux的奥秘吧~☺️【今日新知识——异步action】 一、什么是异步action? action有两种形式&#x…

C#:Krypton控件使用方法详解(第二讲) ——kryptonCheckBox

今天介绍的Krypton控件中的kryptonCheckBox,这个控件和VS中带的CheckBox控件还是不一样的,下面介绍这个控件。kryptonCheckBox控件的外观属性如下图所示:Checked属性:对应的属性值为Bool类型有两个,当属性值为true时kr…

DHCP协议

DHCP协议 文章目录DHCP协议DHCP作用及特点DHCP服务IP分配的三种方式DHCP协议中的报文类型DHCP服务工作流程抓包参考动态主机配置协议 DHCP(Dynamic Host Configuration Protocol),提供了一种 插网即用的技术。DHCP是一个应用层协议。当我们将…

CANoe仿真工程开发

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、网络拓扑图二、数据库文件设计四、Panel设计五、CAPL代码实现六、Automation Sequences七、分析窗口设置八、Trace窗口与Logging九、Desktop布局十、工程运行…

【算法 | 例题简答】相关例题讲解

目录 简答题 计算题 时间复杂度的计算 递归算法计算 背包问题(0-1背包问题) 回溯法 动态规划法 编程题 用回溯法解方程 动态规划法解决蜘蛛吃蚊子 用分治法解决抛硬币问题 用二分法分两边求最大值 简答题 1、什么是算法?算法有哪…

Revit问题:Navisworks中导入的rvt模型角度不正确调整

一、Navisworks中导入的rvt模型角度不正确调整方法 通常情况下,我们做好一个Revit模型,有时候出于成果保护或者鉴于Revit自带的碰撞检测效果不够直观、Revit模型体量太大,需要一个轻量化的模型展示,我们通常情况下会使用Autodesk公…

【python】基于Socket的聊天室Python开发

基于Socket的聊天室Python开发一、Socket简述二、创建服务端Server2.1 创建服务端初始化2.2 监听客户端连接2.3 处理客户端消息三、创建客户端Client3.1 创建服务端初始化3.2 发送消息3.3 接收消息3.3 线程工作3.4 线程工作是不是挺好玩的呢?也可以作为课程设计哦&a…

【C++】Expression的学习笔记

关于不同类别表达式的举例,请参考博文《C 中的值类别》 1. 左值和右值的简单理解 左值对应了具有内存地址的对象,而右值仅仅是临时使用的值对象。(引用自博文《C 中的值类别》)左值有名称(变量或常量名称&#xff09…

RFC7519规范-JWT - json web token

简介 什么是JWT(JSON Web Token) 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程: 客户端使用用户名和密码请求登录服务端收到请求,验证用户名和密码验证成功后,服务端会签发一个token,再把这个to…

mybatis-spring-boot-starter中设定多数据源,并实现Durid的监控

实现功能: 1: 配置两个数据源,根据不同的mapper路径使用不同的数据连接 2 :使用Druid连接池 3:Druid 可监控多个数据源的sql执行操作 分析: 查看mybatis_spring_boot_stater中关于自动装配的类可知【如上…

基于动力学模型的无人驾驶车辆主动转向控制

章五 基于动力学模型的无人驾驶车辆主动转向控制 主动转向控制联合仿真 基于动力学模型的无人驾驶车辆主动转向控制 无人驾驶车辆模型预测控制第五章(上) 无人驾驶车辆模型预测控制第五章(下) 北理工无人驾驶车辆模型预测控制第4…

测试新版Android Studio的手机镜像效果

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为669字,预计阅读2分钟 前言 春节刚上班,就开始了疯狂出差的节奏,期间发现Android Studio发布新的版本2022.1.1(Electric Eel),里面两个更新的内容蓝牙模拟器和…

ChatGPT 帮我自动编写 Python 爬虫脚本

都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。 ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不同于…

2023美赛数学建模资料思路模型

美赛我们为大家准备了大量的资料,我们会在比赛期间给大家分析美题目和相关的思路 全文都是干货,大家仔细阅读,资料文末自取! 首先我们来看美赛23年题型的一个变化: 美赛23年题目变化: A题:连…

【C语言】初识指针

目录 一、指针是什么 二、指针和指针类型 三、野指针 四、指针运算 五、指针和数组 六、二级指针 七、指针数组 一、指针是什么 指针就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度…

2023年2月的十篇深度学习论文推荐

本月的论文包括语言模型、扩散模型、音乐生成、多模态等主题。 1、MusicLM: Generating Music From TextPage https://arxiv.org/abs/2301.11325 By Andrea Agostinelli, Timeo I. Denk, et al. 扩散模型和自回归离散模型都在生成音乐/音频显示出令人印象深刻的性能。 与最…

第45期:一条 SQL 语句优化的基本思路

SQL 语句优化是一个既熟悉又陌生的话题。面对千奇百怪的 SQL 语句,虽然数据库本身对 SQL 语句的优化一直在持续改进、提升,但是我们不能完全依赖数据库,应该在给到数据库之前就替它做好各种准备工作,这样才能让数据库来有精力做它…

FreeMarker生成word文档,固定word模板

该方法也就是通过freemarker生成固定的word文档,动态的word模板布局不能用该方法。 也就是必须有一个固定的模板文档是.ftl类型 如果初始文件为 需要手动改为: 也就是所有需要替换的地方,都需要有${XX}替换。 主要步骤为: 将 w…

JVM学习8: 字符串

基本特性 代表不可变字符序列final不可被继承实现了Serializable、Comparable等接口jdk8及以前使用final char[]存储,jdk9开始改为使用byte[]存储通过字面量方式给一个字符串变量赋值,此时字符串对象在字符串常量池里面 字符串常量池 字符串常量池不会…

《论文阅读》PAL: Persona-Augmented Emotional Support Conversation Generation

《论文阅读》PAL: Persona-Augmented Emotional Support Conversation Generation 前言简介思路出发点相关知识coefficient of determination任务定义模型框架实验结果前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中文翻译的解读后感到失望?…