面向對象開發環境 GNUstep

fmms 12年前發布 | 21K 次閱讀 C/C++開發 C/C++

簡單來說, GNUstep 是實作 OpenStep 介面的開放軟體 (Open Source) 計劃, 目標為提供跨平臺的物件導向程式開發環境.

面向對象開發環境 GNUstep

早在 1985 年, Steve Jobs 離開蘋果電腦 (Apple) 后成立了 NeXT 公司, 并于 1988 年推出了 NeXT 電腦, 使用 NeXTStep 為作業系統. 在當時, NeXTStep 是相當先進的系統. 以 Unix (BSD) 為基礎, 使用 PostScript 提供高品質的使用者圖形介面, 并以 Objective-C 語言提供完整的物件導向環境.
盡管 NeXT 在軟體上的優異, 其硬體銷售成績不佳, 不久之后, NeXT 便轉型為軟體公司. 1994 年, NeXT 與太陽 (Sun Microsystem) 合作推出 OpenStep 界面, 目標為跨平臺的物件導向程式開發環境. NeXT 接著推出實作 OpenStep 介面的 OPENSTEP 系統, 可在 Mach, Microsoft Windows NT, Sun Solaris 及 HP/UX 上執行. 1996 年, 蘋果電腦買下 NeXT, 做為蘋果電腦下一代作業系統的基礎, OPENSTEP 系統便演進成為 MacOS X 的 Cocoa 環境.
在 1995 年, 自由軟體基金會 (Free Software Fundation) 開始了 GNUstep 計劃, 目的在實作 OpenStep 介面, 以提供 Linux/BSD 系統一個完整的程式發展環境. 但由于 OpenStep 介面過于龐大, 開發人力不足, 及許多技術在當時尚未成熟 (如 Display PostScript), 所以直到目前為止, GNUstep 才算是一個完整的程式開發環境.
盡管 OpenStep 早在 1994 年便提出, 其介面及架構在現今仍相當先進及實用, 使得開發 GNUstep 程式相當容易.
GNUstep 使用 Objective-C 語言, 是 C 語言加上 SmallTalk 的物件導向的功能. 結合兩者的優點, 又不至于像 C++ 如此復雜.
GNUstep 提供兩個主要的程式庫, Foundation 及 AppKit. Foundation 處理非圖形介面的部份, 如字串, 檔桉, 網路, 基本資料結構, 多行緒等, 又稱之為 GNUstep Base. AppKit 則處理圖形介面的部份, 包含視窗, 使用者介面等, 又稱之為 GNUstep GUI.
由于 GNUstep 具有跨平臺的特性, 有關繪圖及字型的部份, 則交由 GNUstep Back 來處理. 使用者可依所使用的作業系統, 選擇適當的后端處理 (Backend). GNUstep GUI 會自行處理與 Back 相關的功能, 程式開發者只要使用 GUI 程式庫, 便可適用于各種后端上, 完全不用考慮平臺問題.
目前 GNU GCC 3.x 支援 Objective-C 語言, GNUstep 則提供 GNUstep Make 來簡化編譯 Objective-C 程式. GNUstep Make 提供類似 Makefile 的功能, 稱為 GNUmakefile. 與 Makefile 相比較之下 GNUmakefile 簡單許多.
綜合上述, GNUstep 實作 OpenStep 介面, 該介面已在商業市場上使用多年, 目前并演進成 MacOS X 的 Cocoa 環境. GNUstep 包含四個主要部份, 統稱為核心 (Core):
1. GNUstep Make: 提供類似 Makefile 的功能, 稱為 GNUmakefile, 較 Makefile 好用許多.
2. GNUstep Base: 提供 OpenStep 的 Foundation 程式庫, 處理非圖形介面的功能.
3. GNUstep GUI: 提供 OpenStep 的 AppKit 程式庫, 處理圖形介面的功能.
4. GNUstep Back: 提供與作業系統相關的后端處理, 提供 GNUstep GUI 有關繪圖及字型的功能.
簡單的說 GNUstep 其實也是要打造類似 KDE 或 GNOME 的整合式環境,只是說它用 的程式語言是 Object C , 而本身也有一套 GUI Toolkits 來開發,當然先進的物件導向設計是最讓人印象深刻的.

項目主頁:http://www.baiduhome.net/lib/view/home/1326963397843

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!