級別: 初級
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, 的主要作者。他擁有數學的學士學位和計算機科學的碩士學位。
|