我為什么要教 Eclipse
級別: 初級
Gary Pollice, 實踐教授, 伍斯特工業(yè)學(xué)院
2005 年 9 月 07 日
本文來自于 Rational Edge:在 Gary Pollice 本月的專欄中,他討論了 Eclipse 技術(shù)的優(yōu)點并解釋了為什么他和伍斯特工業(yè)學(xué)院的其他教師在他們的課程中使用 Eclipse。
每個軟件技術(shù)的發(fā)展都需要在軟件開發(fā)工具中并行變化。作為教授未來軟件開發(fā)人員的人,我經(jīng)常從教學(xué)角度考慮我的學(xué)生對完成作業(yè)工具的需求。倘若科學(xué)技術(shù)快速地變化,我可以 —— 應(yīng)該 —— 教給學(xué)生多少關(guān)于具體工具的內(nèi)容呢?
一 方面,我知道如果大學(xué)教授不在課堂上使用好的工具,那么學(xué)生也許會拿著重要的書本知識離開而仍舊處于實踐的不利地位。另一方面,教授學(xué)生使用“行業(yè)力量” 工具需要許多時間。最好有個水晶球告訴我們哪個工具值得投資。記得 80 年代的 CASE 工具嗎?我們花費許多時間學(xué)習(xí)如何使用,但現(xiàn)在還有多少仍在使用?
幸運的是,近來對我來說生活簡單多了。Eclipse 對于我的學(xué)生是近乎于完美的軟件開發(fā)環(huán)境。它是行業(yè)力量。您不需要知道它的所有內(nèi)容才能有效地使用它。它像您曾想的那樣靈活。
如果您不知道 Eclipse 是什么,那么我推薦您去看看 Eclipse 的網(wǎng)站。1主 頁上的第一句話說出了全部:“ Eclipse 是通用的工具平臺 —— 一個開放的可以為任何內(nèi)容(沒有特殊的)而擴展的集成開發(fā)環(huán)境。”它真的是軟件工具的瑞士軍刀。聽起來太好都不真實了吧?我們大部分人都知道當一個工具試 圖做每件事時,它會以做好很少的事而告終。但是僅 Eclipse 例外!
什么使 Eclipse 對學(xué)術(shù)使用那么重要?這里是它的一些優(yōu)點:
- 在大部分平臺上提供一致的特性集
- 不僅支持 Java 或任意單一的語言
- 開源且免費,但完全得到支持
- 真正地可擴展并可配置
- 行業(yè)力量
我們將在下面更細致地討論。
在 伍斯特工業(yè)學(xué)院,我們教授的內(nèi)容不深入到任意具體的計算平臺。我們的學(xué)生通常可以自由地選擇他們使用最舒適的平臺,大多數(shù)至少有一臺計算機,且許多人有更 多臺。整個校園范圍內(nèi)實驗室中的機器運行著許多操作系統(tǒng)。這是我們想避免留一些需要具體平臺,如 Microsoft? Windows,的作業(yè)的原因。
當 我在軟件工程課上布置大型的團隊工程時,我想讓學(xué)生自由地全神貫注于問題,而不是具體的平臺。Eclipse 支持該目標,因為它可在所有我們使用的平臺上運行:Windows、Linux 和 MacOS X。更重要的是,它在每個平臺上以同樣的方式運行,所以即使我不是學(xué)生所選平臺方面的專家,我也可以與學(xué)生一起工作。
事實上,不論您使用什么平臺,Eclipse 就像為該平臺建立的應(yīng)用程序一樣。當您下載 Eclipse 時,您下載對應(yīng)您具體平臺的 Eclipse,對每個平臺它都有單獨的圖形工具包。這提供了接近本土的外觀,以及更好的性能。
![]() |
|
當 您發(fā)現(xiàn) Eclipse 不僅是 Java 開發(fā)平臺時,您將看到 Eclipse 的真正好處。Eclipse 的基本原理具體化到技術(shù)的體系結(jié)構(gòu)中:提供一個給與開發(fā)人員一個一致的方式來擴展系統(tǒng)功能的小核心。每個擴展,或插件為 Eclipse 配置提供具體的功能并且提供其他插件能夠使用的擴展點。2
插件體系結(jié)構(gòu)使 Eclipse 有可能支持許多語言和范型。插件的實例是:
- Eclipse C 開發(fā)工具(C Development Tool,CDT)工程(http://www.eclipse.org/cdt/)。此核心工程,由 Eclipse Foundation 所支持,3 提供了高質(zhì)量的 C 和 C++ 支持。可交付的工程包括對編輯、調(diào)試、makefile 生成器、語法分析、搜索和內(nèi)容輔助的支持。
- 同樣由 Eclipse Foundation 發(fā)起的,COBOL 插件(http://www.eclipse.org/cobol/)提供類似于 CDT 的功能。
- EPIC(http://e-p-i-c.sourceforge.net/)向 Eclipse 提供 Perl 開發(fā)環(huán)境。
- Pydev(http://sourceforge.net/projects/pydev/)是其中一個支持 Python 語言的插件。
最近當我察看最喜愛的 Eclipse 插件目錄(http://www.eclipse-plugins.info/eclipse/index.jsp) 時,我看到在語言分類中目前有五十一個插件。無論您使用什么語言,碰巧的是會有一個 Eclipse 插件使您在 Eclipse 中用該語言開發(fā)程序,Haskell、ML、Prolog 和 GOO 都得到支持。不仔細分析圖 1 中顯示的 Eclipse 實例,您可能不能說出我是否在使用 Java 、C++、Ruby 或任意一個其他被支持的語言。
這種外觀上的一致性給作為老師的我?guī)砹? 重大的好處 —— 并且也可以為作為實踐工程師或管理人員的您帶來好處。一旦您了解如何通過不同的 Eclipse 視圖進行定位,您就可以輕易地從一種語言或平臺遷移到另一種并且知道工作起來是一樣的。我祝賀 Eclipse 的開發(fā)團隊,他們建立了一組標準,其他開發(fā)人員可以 —— 且確實 —— 要依照該標準來實際上創(chuàng)建任意類型的插件。數(shù)量較少的沒有依照標準指導(dǎo)方針的插件通常是質(zhì)量不合格的。
教我的學(xué)生如何使用 Eclipse 通常需要一到兩節(jié)課。這對于他們所獲得的收益來說不是很大的代價 —— 且我從收到一致格式的作業(yè)中得到好處。當我能夠不出任何問題地加載并運行他們的工程時,評分就更簡單了。

圖 1:典型的 Eclipse 視圖
![]() |
|
開 源的出現(xiàn)已經(jīng)證明免費的軟件不一定必然是低質(zhì)量的軟件。然而,企業(yè),如 RedHat,也認識到,向使用該軟件的人提供支持是重要的。事實上,Eclipse 擁有一個非常活躍的專區(qū)愿意幫助解決任何問題。另外,由于 Eclipse 是許多商業(yè)軟件產(chǎn)品的基礎(chǔ),包括 IBM Rational 工具,許多廠商提供額外的支持。
如一個電視廣告中說的,“免 費”是很高的價錢,并且這對學(xué)術(shù)界尤其正確。IBM、Microsoft 和其他公司擁有極好的計劃,幫助教育工作者和學(xué)生以非常低的價格或免費獲得軟件。沒有他們的幫助,大學(xué)教育的費用會比目前更高。Eclipse 平臺和它的許多免費插件使學(xué)生很容易地下載他們所需要的東西。另外,通過嘗試新的語言和工具,大量的免費插件提供學(xué)生一種低風(fēng)險的方式來擴展視野。這對我 來說也非常好,因為我在不斷地尋找很棒的新事物來展示給學(xué)生。我不愿意為一個課程指定一本 100 美元的書籍,當我讓學(xué)生代替使用不增加總體課程成本的免費的軟件下載時,我的良心上好過些。
我的兩個學(xué)生剛完成他們的專業(yè)資格考試工程 (major qualifying project,MQP),WPI 的畢業(yè)要求。他們的工程是為 Eclipse 建立一個對象平臺,可以使您與您創(chuàng)建的類對象交互,且不必書寫完整的程序。他們做出了驚人的工作,但沒有 Eclipse 專區(qū)的支持,他們決不可能實現(xiàn)他們所做的。只要他們遇到困難,他們就向適當?shù)男侣劷M發(fā)送消息并接收到提示回答。這幫助他們不僅完成了工作,而且還成為專注 的職業(yè)開發(fā)人員的一部分,在進入他們的職業(yè)生涯之前,那種支持將是無價的。4
![]() |
|
在 這些年間,我用過許多號稱可擴展且可配置的工具。然而,當我買了它們之后,我發(fā)現(xiàn)配置不像聽起來那樣簡單。我的第一次經(jīng)歷是在 1974 年,我需要適應(yīng)一個數(shù)據(jù)點計算機,而銷售員告訴我可以用他們的新系統(tǒng)做到。我訂了一個帶有巨大的 5MB 磁盤的系統(tǒng)并等待。當它出現(xiàn)時,我問他,“好了,我現(xiàn)在如何做工作?”回答是,“您可以做,但我們沒有對應(yīng)它的軟件。您需要自己編寫。”在得克薩斯州的圣 安東尼奧花了兩周的時間以后,了解操作系統(tǒng)和匯編語言,我能夠按自己想要的擴展軟件。但我得到了經(jīng)驗 —— “可擴展的”是在旁觀者的眼中的。
然而,Eclipse 是真 正可擴展的。使用為該目的而設(shè)計良好的軟件是多么高興的事。現(xiàn)在,我正在寫一個插件,它將比我在 1974 年時的簡單匯編語言程序需要花費更多的時間,而我可以做如此復(fù)雜的事情。另外,由于 Eclipse 社區(qū)可以提供幫助,我期望工作可以更令人愉快且最終產(chǎn)品不容易有缺陷。
Eclipse 插件頁面(參見前面的腳注)列出了 825 個提供產(chǎn)品,它是平臺可擴展性的證據(jù)。對于大部分的 Eclipse 軟件,安裝插件是一件簡單的事。裝有最新的 Eclipse 版本后,您就可以簡單地在 Eclipse 中指向特定的 Web 站點并單擊按鈕。圖 2 顯示了加載 AspectJ 開發(fā)工具插件的向?qū)АH绻胍牟寮恢С指抡军c,您可以簡單地下載并將插件解包到適當?shù)哪夸浵?—— 這也是 Eclipse 交付使用的方式。要安裝 Eclipse,您只要將其拆包。只要您的系統(tǒng)中有了一個 Java JRE,您就可以準備行動了。
不是所有的 Eclipse 插件都免費。許多商業(yè)工具也是 Eclipse 的插件或與 Eclipse 綁定。例如,最新版本的 IBM Rational 工具處于 Eclipse 之上,包括為 Eclipse 提供許多擴展的 IBM Websphere。一旦您安裝了這些工具,您可以在它們之上建立擴展以及其他 Eclipse 插件。此種靈活性應(yīng)該給采用這些基于 Eclipse 的工具的企業(yè)帶來很多好處。
圖 2:安裝 AspectJ 開發(fā)工具插件的向?qū)?/b>
Eclipse 也是高度可配置的。其體系結(jié)構(gòu)允許每個插件提供具有功能的可配置選項。甚至在使用 Eclipse 許多年之后,我確定我仍舊沒有發(fā)現(xiàn)所有可能的配置功能 —— 但我已經(jīng)找到足夠讓我覺得該環(huán)境很舒適的配置功能了。
通 過 Preferences 窗口配置 Eclipse,如圖 3 所示。如您所見到的,我在改變一些 Java 編譯設(shè)置。您可以以不同的方式解釋許多類型的 Java 違規(guī),并且 Preferences 窗口中的 Compiler 窗格讓您決定這些是否為錯誤、警告或可接受的。最新的 Java 編輯器,一個疊合的編輯器,讓您選擇是否關(guān)閉代碼或甚至只察看您現(xiàn)在正處理的方法。
我已經(jīng)發(fā)現(xiàn)建立編碼式樣非常簡單,用 Eclipse 參數(shù)選擇進行設(shè)定,并與其他人分享該式樣。利用簡單的按鍵順序組合 —— 如 Windows 中的 SHIFT-CTL-F —— 代碼會自動地根據(jù)您的首選式樣格式化。

圖 3:Eclipse Preferences 窗口
Eclipse 可配置性是 Emacs 可配置性的再現(xiàn)。如果您是一個 Emacs 用戶,您很可能添加自己的宏指令和簡化操作來為您的式樣進行定制。Eclipse 繼承了該傳統(tǒng)。
![]() |
|
IBM5最 初將 Eclipse 作為私有的平臺進行開發(fā),但在 2004 年它幫助組成了非盈利的 Eclipse Foundation 以俯瞰技術(shù)的更遠發(fā)展。現(xiàn)在,基金會理事會批準新的子項目并且基金會吸收了商業(yè)組織、學(xué)術(shù)和研究機構(gòu)、標準團體等等,以確保 Eclipse 處于軟件工具行業(yè)的最前沿。這意味著您可以依賴 Eclipse 作為可預(yù)見的未來中使用的可行的行業(yè)力量工具。
當我花時間向我的學(xué)生介紹 Eclipse 時,我知道時間花得很值得。Eclipse 是他們可以帶到工作中的東西,因為如此多的企業(yè)在使用它。如果他們的企業(yè)還沒有使用,那么它是他們可以引入的東西。尤其是它擁有他們生產(chǎn)高質(zhì)量軟件所需要 的特性。我常常向我的學(xué)生講述人、過程和工具的道理,并且 Eclipse 確實說明了好工具的益處。
在我的軟件工程課上,學(xué)生在最小程度上也要接觸:
- 基本的 Eclipse Java 開發(fā)環(huán)境。
- JUnit 單元測試插件。
- 用于版本控制的 CVS 或 Subversion 插件。
一旦他們掌握了這三種技術(shù),他們就有了一個好的基礎(chǔ)軟件開發(fā)工具包,并且很容易通過其他的插件添加新增的功能。
![]() |
|
不 是所有的學(xué)生都使用 Eclipse。一些人仍舊使用文本編輯器,如 Textpad?,和命令行程序運行。然而,我的那些接觸 Eclipse 的學(xué)生中的大多數(shù)都帶著對好的開發(fā)工具的功能的更好的理解離開了,并且增加了他們能夠在更大型軟件開發(fā)項目中有效工作的信心。
這里是兩個不同的學(xué)生做出的關(guān)于在我最近的軟件工程項目中使用 Eclipse 的經(jīng)歷的評述:
學(xué)生 1: 我曾經(jīng)認為像 Eclipse 這樣的工具為你做了太多的事并使你成為懶惰的程序員。在像 Eclipse 這樣驚人的工具帶走了瑣碎的編碼工作時我們完成了多么多的工作,當我看到這時,很難看出任何專業(yè)人員如何避免使用像 Eclipse 這樣的工具。一致的格式、直觀的調(diào)試、內(nèi)嵌的 CVS 和 JUnit 支持、類和包的一覽和層次,以及用于它們所有的圖形用戶界面,使 Eclipse 成為非常友好的助手。
學(xué)生 2:學(xué)習(xí)使用像 Eclipse 這樣的高級圖形用戶界面來開發(fā)軟件也是極好的,由于它去掉了許多重復(fù)瑣碎的工作,使我有更多的時間考慮實際的代碼和重要的算法。
當然,在學(xué)生使用任何產(chǎn)品時,他們都會遇到問題。一些人發(fā)現(xiàn)了當使用可視化編輯器時使 Eclipse 崩潰的方法。一些人發(fā)現(xiàn) Eclipse 很慢并帶有他們不需要的特性而顯得“臃腫”6 —— 但許多人一旦實際調(diào)試其他人的代碼時就改變了觀點。他們的大多數(shù)經(jīng)歷是積極且非常真實的。
恰好那些沒有結(jié)束熱愛 Eclipse 的學(xué)生接觸到了真實的軟件,并且他們了解了我希望他們在畢業(yè)時達到的質(zhì)量級別。他們見到如何設(shè)計并實現(xiàn)健壯的產(chǎn)品,并且他們發(fā)現(xiàn)工具是多么有價值。如果您沒有試過 Eclipse,我推薦您試一試。您會很高興使用的。
![]() |
|
下面是一些我覺得有幫助的 Eclipse 資源。
- Eclipse 網(wǎng)站(http://www.eclipse.org)有關(guān)于產(chǎn)品每個部分的文章。它們是入門和尋找詳細技術(shù)信息的好去處。
- Eclipse ECESIS 工程頁面(在 http://www.eclipse.org/ecesis/)提供一個很棒的,關(guān)于如何使用 Eclipse 和書寫插件的錄像教程。
- 如果您對 Eclipse 很陌生,我推薦 Addison-Wesley 出版的,由 D'Anjou 等人所著的 The Java Developer's Guide to Eclipse, 2e。這是一本提供關(guān)于大部分主題的有用信息的大而完全的書籍。
- 如果您要建立自己的插件,您或許應(yīng)該看看 Beck 和 Gamma 所寫的 Contributing to Eclipse,以及 Clayberg 和 Rubel 所寫的 Building Commercial-Quality Plug-Ins。兩本書都是由 Addison-Wesley 出版的。
![]() |
|
1從 http://www.eclipse.org 開始。
2要了解更多關(guān)于插件體系結(jié)構(gòu)的內(nèi)容,請參見 http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html。
3Eclipse Foundation 是非營利的企業(yè),目標是促進 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我們發(fā)現(xiàn)仍在開發(fā)中的 Eclipse 3.1 比 Eclipse 3.0 慢得多。由于我們不需要新版本支持的所有特性,所以班里的大多數(shù)使用 Eclipse。
![]() |
|
- 您可以參閱本文在 developerWorks 全球站點上的 英文原文。
![]() |
|
![]() |
|
|
Gary Pollice 是馬塞諸塞州伍斯特市,伍斯特工業(yè)學(xué)院的教授實踐的教授。他教授軟件工程、設(shè)計、測試和其他計算機科學(xué)課程,并指導(dǎo)學(xué)生項目。在進入學(xué)術(shù)界之前,他花了超 過 35 年的時間開發(fā)各種類型的軟件,從業(yè)務(wù)應(yīng)用程序到編譯程序和工具。他的最后一份業(yè)內(nèi)工作是由 IBM Rational Software 提供的,在那里他被稱為“RUP 怪人”,他還是原 Rational Suite 隊伍中的成員。他是 2004 年 Addison-Wesley 發(fā)表的文章 Software Development for Small Teams: A RUP-Centric Approach, 的主要作者。他擁有數(shù)學(xué)的學(xué)士學(xué)位和計算機科學(xué)的碩士學(xué)位。 |
posted on 2006-03-18 21:25 Vincent.Chen 閱讀(285) 評論(0) 編輯 收藏 所屬分類: Eclipse