称之为平台。称之为工具。称之为自 Linux 以来最热门的开源软件运动。所有这些描述目前都围绕着 Eclipse1,这个与语言无关的代码库被誉为“通用平台”。
根据其创建者——他们正在培养一种非常不像微软的诀窍,即发布平淡的声明来淡化围绕 Eclipse 日益增长的行业热议——更准确地说,它是一个元平台。也就是说,它是一个构建工具,开发人员可以从中创建 IDE(集成开发环境),或者他们可能想要的任何其他东西。
“Eclipse 是每个人都可以构建的通用管道,”2 Eclipse 平台负责人 John Wiegand 说。“我们认为它是一个用于工具集成的平台。”
在实践中,初次接触 Eclipse 的用户往往会认为它是一个 Java IDE,因为那是该技术最成熟的实现。(Wiegand 认为,人们认为 Eclipse 是一个 Java IDE,因为那是最容易获得的下载。)
对其成功同样重要的是,用户很快注意到 Eclipse 是免费的——这个因素已成为一大吸引力,因为同类 IDE 的售价通常至少为 1,000 美元。这可能就是 IBM 在决定在软件社区中播下该平台种子时的计划。
随着 1999 年软件工作的开始,IBM 开始投入约 4000 万美元的资金。IBM 还将 Eclipse 分拆为一个独立运营的公司,并提供关键人员来负责该项目。例如,平台负责人 Wiegand 在官方上是 IBM 的员工,但他全职从事 Eclipse 项目。(最初,有 40 人被分配到 Eclipse;今天,在渥太华、明尼阿波利斯、北卡罗来纳州研究三角园区、苏黎世、多伦多和法国圣纳泽尔都有开发团队。)
该项目的首个成果 Eclipse 1.0 于 2001 年 10 月首次亮相。当 2.1 版本于 2003 年发布时,热议达到了主要程度。2.1 的 Eclipse 软件开发工具包包括一个功能齐全的 Java IDE,该 IDE 升级了编辑器和调试器的重大改进。SDK(软件开发工具包)为 Java 文件和插件 XML 文件提供编辑器。2.1 版本还标志着 Eclipse 的 Mac OS 实现的首次亮相。作为一个多平台参与者,Eclipse 可在 Windows 98 和 XP、Mac OS、IBM 的 AIX Unix、Sun 的 Solaris 8、惠普的 HP/UX 以及 Red Hat 和 SuSE 版本的 Linux 等构建版本中运行。
随着 2.1 版本的发布,Eclipse 组织宣布新增五家企业成员,包括移动电话巨头爱立信,使总数达到 34 家。知名成员包括富士通、日立、数据库供应商 Sybase、嵌入式软件公司 QNX 和 MontaVista、惠普以及企业代码提供商 SAP 等。
现在,3.0 升级的工作正在顺利进行中,预计将于明年年初完成(beta 版本已经推出)。“我们正在推进可扩展性——如何处理数百个插件——和改进的响应能力等,”Wiegand 说。
Eclipse 也开始从其 Java 根基扩展到广泛使用的 C++ 语言。2002 年,一个名为 C/C++ 开发团队 (CDT) 的 Eclipse 子组宣布3 CDT 1.0 可用。该版本是一个基本的 C/C++ 开发环境——完整配备了调试器和 GNU 工具和编译器——该团队表示这是朝着其完全功能的跨平台 C/C++ IDE 的最终目标迈出的重要一步。
尽管与 IDE 密切相关,但 Weigand 坚决希望使 Eclipse 对那些不一定对 IDE 感兴趣的开发人员具有吸引力。相反,他喜欢将 Eclipse 定位为一个语言中立的基础,底部有一个虚拟机,任何人都可以基于此添加软件组件。“有许多组织在 Eclipse 之上构建商业项目,并且还有更多在排队中,”他说。IBM 的 Webster Studio 是基于 Eclipse 的商业产品的最大示例。但是,当前可用的插件列表还包括来自 Timesys 的 Timestorm、Borland 的 Together Edition for Websphere Studio、来自富士通的 Interstage 以及来自 Instantiations 的 CodePro Studio。
Eclipse 具有简洁的用户界面,这可能解释了它作为插件基础对商业用户日益增长的吸引力。它还具有被广泛认为是强大且文档完善的后端,这是开发的另一个推动力。
除了商业世界之外,插件似乎是 Eclipse 在独立开发人员中引起轰动的主要原因。根据 CPL(通用公共许可证)4的条款,在其发布下,开发人员可以为他们创建的任何第三方扩展和插件收费。为了简化该任务,Eclipse 配备了一个用于创建插件的内置开发环境。在这里,Eclipse 应用其标准窗口小部件工具包 (SWT),这是一个与平台底层窗口系统和用户界面紧密集成的应用程序编程接口。
小型商店和个人程序员已经接受了诱饵,并且已经在管道中填充了插件;例如,自制网站 http://eclipse-plugins.2y.net 列出了近 400 个新产品。
随着 IDE 和众多插件继续在软件社区中推动 Eclipse,项目领导层还有扩大平台覆盖范围的其他计划。其中最重要的是努力创建一个成熟的应用程序平台。Wiegand 将该目标描述为“富客户端平台”。Wiegand 解释说:“我们希望获取 Eclipse 平台的一个子集,并使其可用于构建应用程序。”
当被问及这是否类似于可视化编程环境时,Wiegand 说,不,“我们谈论的是一个实际的平台。”由于 Eclipse 本身运行在 Windows、Unix 和其他基本操作系统之上,因此 Wiegand 设想的可以被认为是平台外壳。然而,对于试图构建最终用户应用程序的中级开发人员来说,它将非常有用——尤其是在企业领域。
虽然 Eclipse 尚未接近达到其受欢迎程度的顶峰,但也有一些批评。其中最主要的是“功能蔓延”的指责。正如最近在 eclipse.technology5 上的帖子所说,这是十几个致力于该平台的新闻组之一:“为什么 Eclipse 和如此多的其他 IDE 如此努力地确保开发人员无法在其开发环境中获得简洁性?”
有时令人恼火的是,特别是考虑到这项工作日益普及,Eclipse 组织的公众形象似乎如此执着于保持其公开声明的低调和相当平淡。另一方面,也许这种沉默寡言,可以追溯到旧式的 Unix 负责人时代,比我们已经习惯的夸张和空头支票式的承诺更可取。
在 TheServerSide.com 上,这种克制较少,这是一个有影响力的博客,跟踪 Java 开发人员社区。“密切关注 Eclipse,它将改变我们编写代码的方式,”6 软件开发人员 Cedric Beust 在今年早些时候的一篇文章中写道。
当 Beust 试图解释为什么 Eclipse 获得了如此多的软件关注,但在严格客观的术语中讨论时有时会显得枯燥时,也许他最好地表达了这一点。“很难传达为什么 Eclipse 用起来感觉如此好,因为很多都归因于当您使用该工具时向您显现的微小细节,”他写道。
1. Eclipse:请参阅 http://www.eclipse.org。
2. Wiegand, J. 个人访谈 (2003 年 8 月 20 日)。
3. Eclipse. Eclipse.org 发布 C/C++ 开发工具 (2002 年 1 月 29 日); http://www.eclipse.org/org/press-release/nr.redhat.linux.htm。
4. 开源促进会。CPL 版本 1.0; https://open-source.org.cn/licenses/cpl.php。
5. Eclipse 新闻组 (2003 年 9 月存档); http://news.eclipse.org/newsgroups/。
6. Beust, C. Serverside at JavaOne。The ServerSide 博客(由 Sun Microsystems 和 Middleware Co. 赞助); http:// www.theserverside.com/。
ALEXANDER WOLFE 在纽约市的库珀联盟学院获得了电气工程学位。他是一位科学作家,居住在纽约州森林小丘,曾为 IEEE Spectrum、EE Times、Embedded Systems Programming 和 Byte.com 撰稿。
互联网
Eclipse 网站
http://www.eclipse.org
Eclipse 新闻组
http://www.eclipse.org/newsgroups/index.html
(需要密码;可通过免费注册获得。)
Java 软件开发人员博客
http://www.theserverside.com/
由 Sun Microsystems 和 Middleware Co. 赞助。
Eclipse 插件
http://www.eclipse.org/community/plugins.html
http://eclipse-plugins.2y.net
书籍
Java 开发人员 Eclipse 指南
Sherry Shavor、Jim D’Anjou、Scott Fairbrother、Dan Kehn、John Kellerman 和 Pat McCarthy (Addison-Wesley, 2003)
Eclipse in Action:Java 开发人员指南
David Gallardo、Ed Burnette 和 Robert McGovern (Manning, 2003)
Eclipse:循序渐进
Joe Pluta (MC Press, 2003)
最初发表于 Queue vol. 1, no. 8—
在 数字图书馆 中评论本文
Amanda Casari, Julia Ferraioli, Juniper Lovato - 超越代码仓库
关于开源的现有研究大多选择研究软件仓库而不是生态系统。开源仓库最常指的是版本控制系统中记录的工件,偶尔包括围绕仓库本身的交互。开源生态系统指的是仓库集合、社区、它们的交互、激励、行为规范和文化。开源的去中心化性质使得对生态系统进行整体分析成为一项艰巨的任务,社区和身份以有机和不断发展的方式相交。尽管存在这些复杂性,但对软件安全和供应链日益严格的审查使得在进行有关开源的研究时,采取基于生态系统的方法至关重要。
Guenever Aldrich, Danny Tsang, Jason McKenney - 为尚未理解的项目经理提供的三部和声
本文探讨了系统采购工具箱中的三种工具,它们可以协同工作以加速开发和采购,同时降低项目风险:OSS、开放标准和敏捷/Scrum 软件开发流程都是 DoD 采购项目管理工具箱的强大补充。
Jessie Frazelle - 开源固件
开源固件可以通过使固件的操作更加可见且不太可能造成危害,从而帮助将计算带到一个更安全的地方。本文的目标是让读者感到有能力向可以帮助推动这一变革的供应商提出更多要求。
Marshall Kirk McKusick, George V. Neville-Neil - FreeBSD 5.2 中的线程调度
繁忙的系统每秒进行数千次调度决策,因此调度决策的制定速度对于系统的整体性能至关重要。本文——摘自即将出版的书籍“FreeBSD 操作系统设计与实现”——以开源 FreeBSD 系统为例,帮助我们理解线程调度。最初的 FreeBSD 调度程序是在 20 世纪 80 年代为大型单处理器系统设计的。尽管它今天在那种环境中仍然运行良好,但新的 ULE 调度程序专门设计用于优化多处理器和多线程环境。本文首先研究了最初的 FreeBSD 调度程序,然后描述了新的 ULE 调度程序。