GNUstep

GitHub地址

GNUstep

简单来说,GNUstep 是实现 OpenStep 接口的开放软件 (Open Source) 计划,目标为提供跨平台的面向对象程序开发环境。

C 语音有Dennis Ritchie于20世纪70年代早期首创,20世纪70年代晚期才获得广泛支持并流行开来。UNIX 操作系统的普及也促进C 语音的普及,UNIX 完全有C 语音编写。

Objective-C 主要由 Stepstone 公司的布莱德·考克斯(Brad Cox)和 汤姆·洛夫(Tom Love) 在 1980 年代发明。

1981年 Brad Cox 和 Tom Love 还在 ITT 公司技术中心任职时,接触到了 SmallTalk语言。Cox 当时对软件设计和开发问题非常感兴趣,他很快地意识到 SmallTalk语言 在系统工程构建中具有无法估量的价值,但同时他和 Tom Love 也明白,目前 ITT 公司的电子通信工程相关技术中,C 语言被放在很重要的位置。

于是 Cox 撰写了一个 C 语言的预处理器,打算使 C 语言具备些许 Smalltalk 的本领。Cox 很快地实现了一个可用的 C 语言扩展,此即为 Objective-C语言的前身。到了 1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关库商品化贩售,并在之后将公司改名为StepStone。1986年,Cox 出版了一本关于 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,书内详述了 Objective-C 的种种设计理念。

在1985 年,Steve Jobs 离开苹果公司后成立了 NeXT Computer 公司。 NeXT 公司于 1988 年获得Objective-C 的授权,并发展了Objective-C的语言库和开发环境,即NEXTSTEP,推出了 NeXT 电脑,使用 NeXTStep 为操作系统。在当时,NeXTStep 是相当先进的系统。以 Unix (BSD) 为基础,使用 PostScript 提供高品质的使用者图形接口,并以 Objective-C 语言提供完整的面向对象环境。

1992年自由软件基金会的 GNU 开发环境增加了对 Objective-C 的支持,所有Free Software foundation(FSF)产品版权归属于FSF,它以GUN通过公关许可来发布产品。

尽管 NeXT 在软件上的优异,其硬体销售成绩不佳,不久之后,NeXT 便转型为软件公司。NeXT也开发了一套网络程序架框WebObjects,用于产生动态网页。可能因为售价过高之故(超过50,000美元),它并没有流行起来。尽管如此,WebObjects仍为动态网页程序创建了一个良好的示例。

1994 年,NeXT 与太阳 (Sun Microsystem) 合作推出 OpenStep ,目标为跨平台的面向对象程序开发环境。OpenStep分离了NEXTSTEP的Mach基础或NeXT特定硬件的部分。NeXT 接着推出实现 OpenStep 接口的 OPENSTEP 系统,可在 Mach,Microsoft Windows NT,Sun Solaris 及 HP/UX 上执行。1996年12月20日,苹果公司宣布收购 NeXT Software 公司,NEXTSTEP/OPENSTEP环境成为苹果操作系统Mac OS X的基础,WebObjects则集成到Mac OS X ServerXcode中。这个开发环境的版本被苹果公司称为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 的整合式环境,只是说它用的程序语言是Objective-C,而本身也有一套 GUI Toolkits 来开发,当然先进的面向对象设计是最让人印象深刻的。

参考文章

https://www.oschina.net/p/gnustep-org

https://my.oschina.net/wolx/blog/304204

https://zh.wikipedia.org/wiki/Objective-C

https://zh.wikipedia.org/wiki/NeXT

https://zh.wikipedia.org/wiki/OpenStep

http://www.gnustep.org/resources/OpenStepSpec/OpenStepSpec.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354