商业公司主导下的非营利开源软件基金会之 ———— Eclipse 的成长和发展(上)…

前一阵子,Eclipse 基金会高调发布了一个新的可用的项目—— Theia 1.0,而且PR 直接称:一款可以替代VS Code的开源云 IDE,并且使出了杀手锏:VS Code 的插件可以无缝直接使用。

技术如何我们暂且不论,这是否是一种似曾相识的感觉S Code 是否像极了GitHub 的Atom果你是身处软件行业多年的老兵,不妨回忆一下二十多年以来,为了讨好开发者,各个商家争先创新、降低价格、投其所好,无所不用其极的各类做法。

如果忘记的话,这里简单提示一下:java 与.Net , JBuild 与 Visual studio……

商家从未放弃过在赢得开发者这块宝地上的竞争!

在进一步了解之前,笔者想先介绍一下和具体的IT技术无关的一件事,准确点说是关于合法机构的法律文件解读,过程显然是有点无聊和乏味,但是耐心的了解一番,对你总是有益而无害的,而这篇文章也为另外一篇:商业公司主导下的非营利开源软件基金会之 ———— Cloud Foundry 基金会简史 ,也需要同样的背景知识。

因为我们前面介绍的很多组织都是5013)类型的,也就是说是慈善机构,基于人道主义也好,或者是行最大的善也罢,这类组织的目的只有一个:为了人类本身!然而,这也不是唯一的组织机构,这个世界上有形形色色的由人所组成的团体,这些团体的性质也各异,有可能所做的事情完全相同,但是通过 会属性:伦理、经济、法律、文化等等解读,就有了完全不同的色彩。

试图通过介绍一个基金会,而将一个法律实体的来龙去脉完全展开来讨论是不现实,比如追溯 5016)的非营利商业机构是美国1913年的Tariff 法案,以及后来逐步细化和添加条款的变更,有兴趣的读者可以详细阅读公开的文件: IRC 5016) Organizations ,其最为基本的7条要求如下:

  1. 必须是商业组织共性所组成的个人联盟,而且其目的也必须是推动这些商业组织的共性。

  2. 成员必须是组织机构,且要有意的去扩展成员

  3. 必须是非营利性的

  4. 任何私人股东或独立个人均不能从净收益中获得好处

  5. 它的活动必须针对改善一项或多项业务状况,以区别于为个人提供的特定服务。

  6. 它的主要活动不包括为个人提供特定服务

  7. 该机构绝对不能从事任何的常规性盈利业务,即使是为了生存需要而和企业合作,也是不可以的。

作为第三代开源软件非营利组织的机构,5016) 无论从哪个角度看,都是有利于开源项目本身的发展的,当然,某种程度上也有利于具有匠人精神的开发者们专注于自身能力的自由发展。

那么从公司的角度讲,权衡之余,既希望是自己信任的人担任执行总监,又希望做到公开、透明,而不仅仅是一个慈善的组织,那么这样性质的机构无疑是最为合适的了。

谈到 Eclipse ,我们不得不回顾一下当年的IT技术大势,年轻的读者可以类比一下现在的Go语言、VS Code、以及云原生等技术领域的厂家、机构等的激烈角逐。

Java VS .Net

得平台者得天下,这是有识之士,或者说是商界精英的常见战略,2000左右,是互联 爆发如日中天的年代,以Wintel为代表的个人桌面,Windows 开发C#语言和.Net平台,是Java的最主要的竞争对手,正如浏览器方面,微软的以操作系统捆绑这个大招简直所向披靡。

那么就看谁能打动用户的心思了。这是商界的主要语言之争。IBM 押注Java,很早就在大量的产品中使用Java语言来开发。Eclipse 既是其中的参与者,也是其中的创造者。

微软 Visual Studio 打遍天下无敌手

有了语言的背书,接下来就是工具了。当时能够提供 IDE的厂家其实并不多,微软作为PC 操作系统的霸主,当然有天然的先天优势,要知道当时的集成开发环境还是备受商界青睐的产品。

IBM 后来想要居上,祭出开源这张王牌,正如后来的Sun 将Java 开源一样,通过免费来将高深的技术产品大众化,当然,作为用户,没有人能够拒绝的了免费,Google利用免费打败了很多的优秀的搜索引擎公司,淘宝在中国也利用免费(收取卖方租金)的做法打败了e-Bay,在软件开发这个细分的领域,通过免费来抢占开发者的习惯和技能,也同样有效。

Eclipse 的技术设计

有了以上的背景,我们可以简单聊聊 Eclipse 在技术上做的现在回看起来做的无比正确的事情,有心的读者一定可以看得出来,Eclipse 的设计是和Linux完全无心的技术完全不同的,Eclipse 从一开始就非常注重技术架构。

Eclipse 的起源

Eclipse 并不是如很多开源项目那样,在诞生之初就是开源的,如GNU、Linux、Python、Perl 等,而最初来自于公司的专有项目,来自于 IBM 子公司 —— Object Technology International (OTI),研究和开发 IDE 初衷则是:

IBM希望减少向其客户提供大量然而又不兼容的开发环境,并提高这些环境中通用组件的重用性,希望通过使用相同的通用框架,开发团队可以利用彼此的组件,进行高度集成,并允许开发人员在项目之间共享。

这就是我们常常谈到的避免重复制造轮子 的做法。当然,Eclipse 也不是从头开始做起的,而是基于IBM 长期累积的开发产品线重构,可以追溯到 IBM VisualAge for Smalltalk和 IBM VisualAge for Java这两款产品都是用 Smalltalk 语言编写的。IBM VisualAge Micro Edition产品是用 Java 编写整个IDE的第一个较正式的实验项目,并且实际上相当的成功。Eclipse 继承了其中的最佳做法。

就在 IBM VisualAge 遇到瓶颈之时(对于第三方来说,非常难以扩展),IBM 另外成立了一个小型的专家团队(类似《人月神话》中的S360项目),基于之前的经验,进行全新的设计,采用全新的插件机制,让合作伙伴可以轻松的扩展。

如此的架构设计,也为以后的开源铺平了道路。

架构概述

Eclipse 的技术设计如下:

基金会的建立

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91301 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月27日
下一篇 2020年6月27日

相关推荐