面向对象开发环境 GNUstep
fmms
13年前
<p>简单来说, GNUstep 是实作 OpenStep 介面的开放软体 (Open Source) 计划, 目标为提供跨平台的物件导向程式开发环境.</p> <p><img style="width:649px;height:486px;" alt="面向对象开发环境 GNUstep" src="https://simg.open-open.com/show/39e49a8f1119e1b4d1240d76594f782c.png" /></p> <p>早在 1985 年, Steve Jobs 离开苹果电脑 (Apple) 后成立了 NeXT 公司, 并于 1988 年推出了 NeXT 电脑, 使用 NeXTStep 为作业系统. 在当时, NeXTStep 是相当先进的系统. 以 Unix (BSD) 为基础, 使用 PostScript 提供高品质的使用者图形介面, 并以 Objective-C 语言提供完整的物件导向环境.<br /> 尽管 NeXT 在软体上的优异, 其硬体销售成绩不佳, 不久之后, NeXT 便转型为软体公司. 1994 年, NeXT 与太阳 (Sun Microsystem) 合作推出 OpenStep 界面, 目标为跨平台的物件导向程式开发环境. NeXT 接着推出实作 OpenStep 介面的 OPENSTEP 系统, 可在 Mach, Microsoft Windows NT, Sun Solaris 及 HP/UX 上执行. 1996 年, 苹果电脑买下 NeXT, 做为苹果电脑下一代作业系统的基础, OPENSTEP 系统便演进成为 MacOS X 的 Cocoa 环境.<br /> 在 1995 年, 自由软体基金会 (Free Software Fundation) 开始了 GNUstep 计划, 目的在实作 OpenStep 介面, 以提供 Linux/BSD 系统一个完整的程式发展环境. 但由于 OpenStep 介面过于庞大, 开发人力不足, 及许多技术在当时尚未成熟 (如 Display PostScript), 所以直到目前为止, GNUstep 才算是一个完整的程式开发环境.<br /> 尽管 OpenStep 早在 1994 年便提出, 其介面及架构在现今仍相当先进及实用, 使得开发 GNUstep 程式相当容易.<br /> GNUstep 使用 Objective-C 语言, 是 C 语言加上 SmallTalk 的物件导向的功能. 结合两者的优点, 又不至于像 C++ 如此复杂.<br /> GNUstep 提供两个主要的程式库, Foundation 及 AppKit. Foundation 处理非图形介面的部份, 如字串, 档桉, 网路, 基本资料结构, 多行绪等, 又称之为 GNUstep Base. AppKit 则处理图形介面的部份, 包含视窗, 使用者介面等, 又称之为 GNUstep GUI.<br /> 由于 GNUstep 具有跨平台的特性, 有关绘图及字型的部份, 则交由 GNUstep Back 来处理. 使用者可依所使用的作业系统, 选择适当的后端处理 (Backend). GNUstep GUI 会自行处理与 Back 相关的功能, 程式开发者只要使用 GUI 程式库, 便可适用于各种后端上, 完全不用考虑平台问题.<br /> 目前 GNU GCC 3.x 支援 Objective-C 语言, GNUstep 则提供 GNUstep Make 来简化编译 Objective-C 程式. GNUstep Make 提供类似 Makefile 的功能, 称为 GNUmakefile. 与 Makefile 相比较之下 GNUmakefile 简单许多.<br /> 综合上述, GNUstep 实作 OpenStep 介面, 该介面已在商业市场上使用多年, 目前并演进成 MacOS X 的 Cocoa 环境. GNUstep 包含四个主要部份, 统称为核心 (Core):<br /> 1. GNUstep Make: 提供类似 Makefile 的功能, 称为 GNUmakefile, 较 Makefile 好用许多.<br /> 2. GNUstep Base: 提供 OpenStep 的 Foundation 程式库, 处理非图形介面的功能.<br /> 3. GNUstep GUI: 提供 OpenStep 的 AppKit 程式库, 处理图形介面的功能.<br /> 4. GNUstep Back: 提供与作业系统相关的后端处理, 提供 GNUstep GUI 有关绘图及字型的功能.<br /> 简单的说 GNUstep 其实也是要打造类似 KDE 或 GNOME 的整合式环境,只是说它用 的程式语言是 Object C , 而本身也有一套 GUI Toolkits 来开发,当然先进的物件导向设计是最让人印象深刻的.<br /> <br /> </p> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1326963397843" target="_blank">http://www.open-open.com/lib/view/home/1326963397843</a></p>