级别: 初级
Gary Pollice, 实践教授, 伍斯特工业学院
2005 年 9 月 07 日
本文来自于 Rational Edge:在 Gary Pollice 本月的专栏中,他讨论了 Eclipse 技术的优点并解释了为什么他和伍斯特工业学院的其他教师在他们的课程中使用 Eclipse。
每个软件技术的发展都需要在软件开发工具中并行变化。作为教授未来软件开发人员的人,我经常从教学角度考虑我的学生对完成作业工具的需求。倘若科学技术快速地变化,我可以 —— 应该 —— 教给学生多少关于具体工具的内容呢?
一
方面,我知道如果大学教授不在课堂上使用好的工具,那么学生也许会拿着重要的书本知识离开而仍旧处于实践的不利地位。另一方面,教授学生使用“行业力量”
工具需要许多时间。最好有个水晶球告诉我们哪个工具值得投资。记得 80 年代的 CASE
工具吗?我们花费许多时间学习如何使用,但现在还有多少仍在使用?
幸运的是,近来对我来说生活简单多了。Eclipse 对于我的学生是近乎于完美的软件开发环境。它是行业力量。您不需要知道它的所有内容才能有效地使用它。它像您曾想的那样灵活。
如果您不知道 Eclipse 是什么,那么我推荐您去看看 Eclipse 的网站。1主
页上的第一句话说出了全部:“ Eclipse 是通用的工具平台 ——
一个开放的可以为任何内容(没有特殊的)而扩展的集成开发环境。”它真的是软件工具的瑞士军刀。听起来太好都不真实了吧?我们大部分人都知道当一个工具试
图做每件事时,它会以做好很少的事而告终。但是仅 Eclipse 例外!
什么使 Eclipse 对学术使用那么重要?这里是它的一些优点:
- 在大部分平台上提供一致的特性集
- 不仅支持 Java 或任意单一的语言
- 开源且免费,但完全得到支持
- 真正地可扩展并可配置
- 行业力量
我们将在下面更细致地讨论。
Eclipse 在多重平台上提供一致的特性集
在
伍斯特工业学院,我们教授的内容不深入到任意具体的计算平台。我们的学生通常可以自由地选择他们使用最舒适的平台,大多数至少有一台计算机,且许多人有更
多台。整个校园范围内实验室中的机器运行着许多操作系统。这是我们想避免留一些需要具体平台,如 Microsoft® Windows,的作业的原因。
当
我在软件工程课上布置大型的团队工程时,我想让学生自由地全神贯注于问题,而不是具体的平台。Eclipse
支持该目标,因为它可在所有我们使用的平台上运行:Windows、Linux 和 MacOS
X。更重要的是,它在每个平台上以同样的方式运行,所以即使我不是学生所选平台方面的专家,我也可以与学生一起工作。
事实上,不论您使用什么平台,Eclipse 就像为该平台建立的应用程序一样。当您下载 Eclipse 时,您下载对应您具体平台的 Eclipse,对每个平台它都有单独的图形工具包。这提供了接近本土的外观,以及更好的性能。
Eclipse 支持超过 Java 的语言
当
您发现 Eclipse 不仅是 Java 开发平台时,您将看到 Eclipse 的真正好处。Eclipse
的基本原理具体化到技术的体系结构中:提供一个给与开发人员一个一致的方式来扩展系统功能的小核心。每个扩展,或插件为 Eclipse
配置提供具体的功能并且提供其他插件能够使用的扩展点。2
插件体系结构使 Eclipse 有可能支持许多语言和范型。插件的实例是:
最近当我察看最喜爱的 Eclipse 插件目录(http://www.eclipse-plugins.info/eclipse/index.jsp)
时,我看到在语言分类中目前有五十一个插件。无论您使用什么语言,碰巧的是会有一个 Eclipse 插件使您在 Eclipse
中用该语言开发程序,Haskell、ML、Prolog 和 GOO 都得到支持。不仔细分析图 1 中显示的 Eclipse
实例,您可能不能说出我是否在使用 Java 、C++、Ruby 或任意一个其他被支持的语言。
这种外观上的一致性给作为老师的我带来了
重大的好处 —— 并且也可以为作为实践工程师或管理人员的您带来好处。一旦您了解如何通过不同的 Eclipse
视图进行定位,您就可以轻易地从一种语言或平台迁移到另一种并且知道工作起来是一样的。我祝贺 Eclipse
的开发团队,他们建立了一组标准,其他开发人员可以 —— 且确实 ——
要依照该标准来实际上创建任意类型的插件。数量较少的没有依照标准指导方针的插件通常是质量不合格的。
教我的学生如何使用 Eclipse 通常需要一到两节课。这对于他们所获得的收益来说不是很大的代价 —— 且我从收到一致格式的作业中得到好处。当我能够不出任何问题地加载并运行他们的工程时,评分就更简单了。
图 1:典型的 Eclipse 视图
Eclipse 是开源且免费的,但得到全面支持
开
源的出现已经证明免费的软件不一定必然是低质量的软件。然而,企业,如
RedHat,也认识到,向使用该软件的人提供支持是重要的。事实上,Eclipse 拥有一个非常活跃的专区愿意帮助解决任何问题。另外,由于
Eclipse 是许多商业软件产品的基础,包括 IBM Rational 工具,许多厂商提供额外的支持。
如一个电视广告中说的,“免
费”是很高的价钱,并且这对学术界尤其正确。IBM、Microsoft
和其他公司拥有极好的计划,帮助教育工作者和学生以非常低的价格或免费获得软件。没有他们的帮助,大学教育的费用会比目前更高。Eclipse
平台和它的许多免费插件使学生很容易地下载他们所需要的东西。另外,通过尝试新的语言和工具,大量的免费插件提供学生一种低风险的方式来扩展视野。这对我
来说也非常好,因为我在不断地寻找很棒的新事物来展示给学生。我不愿意为一个课程指定一本 100
美元的书籍,当我让学生代替使用不增加总体课程成本的免费的软件下载时,我的良心上好过些。
我的两个学生刚完成他们的专业资格考试工程
(major qualifying project,MQP),WPI 的毕业要求。他们的工程是为 Eclipse
建立一个对象平台,可以使您与您创建的类对象交互,且不必书写完整的程序。他们做出了惊人的工作,但没有 Eclipse
专区的支持,他们决不可能实现他们所做的。只要他们遇到困难,他们就向适当的新闻组发送消息并接收到提示回答。这帮助他们不仅完成了工作,而且还成为专注
的职业开发人员的一部分,在进入他们的职业生涯之前,那种支持将是无价的。4
Eclipse 是真正地可扩展及可配置的
在
这些年间,我用过许多号称可扩展且可配置的工具。然而,当我买了它们之后,我发现配置不像听起来那样简单。我的第一次经历是在 1974
年,我需要适应一个数据点计算机,而销售员告诉我可以用他们的新系统做到。我订了一个带有巨大的 5MB
磁盘的系统并等待。当它出现时,我问他,“好了,我现在如何做工作?”回答是,“您可以做,但我们没有对应它的软件。您需要自己编写。”在得克萨斯州的圣
安东尼奥花了两周的时间以后,了解操作系统和汇编语言,我能够按自己想要的扩展软件。但我得到了经验 —— “可扩展的”是在旁观者的眼中的。
然而,Eclipse 是真
正可扩展的。使用为该目的而设计良好的软件是多么高兴的事。现在,我正在写一个插件,它将比我在 1974
年时的简单汇编语言程序需要花费更多的时间,而我可以做如此复杂的事情。另外,由于 Eclipse
社区可以提供帮助,我期望工作可以更令人愉快且最终产品不容易有缺陷。
Eclipse 插件页面(参见前面的脚注)列出了 825
个提供产品,它是平台可扩展性的证据。对于大部分的 Eclipse 软件,安装插件是一件简单的事。装有最新的 Eclipse
版本后,您就可以简单地在 Eclipse 中指向特定的 Web 站点并单击按钮。图 2 显示了加载 AspectJ
开发工具插件的向导。如果您想要的插件不支持更新站点,您可以简单地下载并将插件解包到适当的目录下 —— 这也是 Eclipse
交付使用的方式。要安装 Eclipse,您只要将其拆包。只要您的系统中有了一个 Java JRE,您就可以准备行动了。
不是所有的
Eclipse 插件都免费。许多商业工具也是 Eclipse 的插件或与 Eclipse 绑定。例如,最新版本的 IBM Rational
工具处于 Eclipse 之上,包括为 Eclipse 提供许多扩展的 IBM
Websphere。一旦您安装了这些工具,您可以在它们之上建立扩展以及其他 Eclipse 插件。此种灵活性应该给采用这些基于 Eclipse
的工具的企业带来很多好处。
图 2:安装 AspectJ 开发工具插件的向导
Eclipse 也是高度可配置的。其体系结构允许每个插件提供具有功能的可配置选项。甚至在使用 Eclipse 许多年之后,我确定我仍旧没有发现所有可能的配置功能 —— 但我已经找到足够让我觉得该环境很舒适的配置功能了。
通
过 Preferences 窗口配置 Eclipse,如图 3 所示。如您所见到的,我在改变一些 Java
编译设置。您可以以不同的方式解释许多类型的 Java 违规,并且 Preferences 窗口中的 Compiler
窗格让您决定这些是否为错误、警告或可接受的。最新的 Java 编辑器,一个叠合的编辑器,让您选择是否关闭代码或甚至只察看您现在正处理的方法。
我已经发现建立编码式样非常简单,用 Eclipse 参数选择进行设定,并与其他人分享该式样。利用简单的按键顺序组合 —— 如 Windows 中的 SHIFT-CTL-F —— 代码会自动地根据您的首选式样格式化。
图 3:Eclipse Preferences 窗口
Eclipse 可配置性是 Emacs 可配置性的再现。如果您是一个 Emacs 用户,您很可能添加自己的宏指令和简化操作来为您的式样进行定制。Eclipse 继承了该传统。
Eclipse 是行业力量
IBM5最
初将 Eclipse 作为私有的平台进行开发,但在 2004 年它帮助组成了非盈利的 Eclipse Foundation
以俯瞰技术的更远发展。现在,基金会理事会批准新的子项目并且基金会吸收了商业组织、学术和研究机构、标准团体等等,以确保 Eclipse
处于软件工具行业的最前沿。这意味着您可以依赖 Eclipse 作为可预见的未来中使用的可行的行业力量工具。
当我花时间向我的学生介绍
Eclipse 时,我知道时间花得很值得。Eclipse
是他们可以带到工作中的东西,因为如此多的企业在使用它。如果他们的企业还没有使用,那么它是他们可以引入的东西。尤其是它拥有他们生产高质量软件所需要
的特性。我常常向我的学生讲述人、过程和工具的道理,并且 Eclipse 确实说明了好工具的益处。
在我的软件工程课上,学生在最小程度上也要接触:
- 基本的 Eclipse Java 开发环境。
- JUnit 单元测试插件。
- 用于版本控制的 CVS 或 Subversion 插件。
一旦他们掌握了这三种技术,他们就有了一个好的基础软件开发工具包,并且很容易通过其他的插件添加新增的功能。
总结
不
是所有的学生都使用 Eclipse。一些人仍旧使用文本编辑器,如 Textpad®,和命令行程序运行。然而,我的那些接触 Eclipse
的学生中的大多数都带着对好的开发工具的功能的更好的理解离开了,并且增加了他们能够在更大型软件开发项目中有效工作的信心。
这里是两个不同的学生做出的关于在我最近的软件工程项目中使用 Eclipse 的经历的评述:
学生 1:
我曾经认为像 Eclipse 这样的工具为你做了太多的事并使你成为懒惰的程序员。在像 Eclipse
这样惊人的工具带走了琐碎的编码工作时我们完成了多么多的工作,当我看到这时,很难看出任何专业人员如何避免使用像 Eclipse
这样的工具。一致的格式、直观的调试、内嵌的 CVS 和 JUnit 支持、类和包的一览和层次,以及用于它们所有的图形用户界面,使
Eclipse 成为非常友好的助手。
学生 2:学习使用像 Eclipse 这样的高级图形用户界面来开发软件也是极好的,由于它去掉了许多重复琐碎的工作,使我有更多的时间考虑实际的代码和重要的算法。
当然,在学生使用任何产品时,他们都会遇到问题。一些人发现了当使用可视化编辑器时使 Eclipse 崩溃的方法。一些人发现 Eclipse 很慢并带有他们不需要的特性而显得“臃肿”6 —— 但许多人一旦实际调试其他人的代码时就改变了观点。他们的大多数经历是积极且非常真实的。
恰好那些没有结束热爱 Eclipse 的学生接触到了真实的软件,并且他们了解了我希望他们在毕业时达到的质量级别。他们见到如何设计并实现健壮的产品,并且他们发现工具是多么有价值。如果您没有试过 Eclipse,我推荐您试一试。您会很高兴使用的。
更多的读物
下面是一些我觉得有帮助的 Eclipse 资源。
- Eclipse 网站(http://www.eclipse.org)有关于产品每个部分的文章。它们是入门和寻找详细技术信息的好去处。
- Eclipse ECESIS 工程页面(在 http://www.eclipse.org/ecesis/)提供一个很棒的,关于如何使用 Eclipse 和书写插件的录像教程。
- 如果您对 Eclipse 很陌生,我推荐 Addison-Wesley 出版的,由 D'Anjou 等人所著的 The Java Developer's Guide to Eclipse, 2e。这是一本提供关于大部分主题的有用信息的大而完全的书籍。
- 如果您要建立自己的插件,您或许应该看看 Beck 和 Gamma 所写的 Contributing to Eclipse,以及 Clayberg 和 Rubel 所写的 Building Commercial-Quality Plug-Ins。两本书都是由 Addison-Wesley 出版的。
注释
1从 http://www.eclipse.org 开始。
2要了解更多关于插件体系结构的内容,请参见 http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html。
3Eclipse Foundation 是非营利的企业,目标是促进 Eclipse 平台:http://www.eclipse.org/org/index.html。
4Eclipse 对象工作台的主页是 http://sourceforge.net/projects/ebob/。
5参见 http://www.eweek.com/article2/0,1759,1750358,00.asp
6我们发现仍在开发中的 Eclipse 3.1 比 Eclipse 3.0 慢得多。由于我们不需要新版本支持的所有特性,所以班里的大多数使用 Eclipse。
参考资料
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文。
关于作者
|
|
Gary
Pollice
是马塞诸塞州伍斯特市,伍斯特工业学院的教授实践的教授。他教授软件工程、设计、测试和其他计算机科学课程,并指导学生项目。在进入学术界之前,他花了超
过 35 年的时间开发各种类型的软件,从业务应用程序到编译程序和工具。他的最后一份业内工作是由 IBM Rational Software
提供的,在那里他被称为“RUP 怪人”,他还是原 Rational Suite 队伍中的成员。他是 2004 年 Addison-Wesley
发表的文章 Software Development for Small Teams: A RUP-Centric Approach, 的主要作者。他拥有数学的学士学位和计算机科学的硕士学位。
|