The GNUstep Project

1. History
2. GNUstep
3. Design
4. GNUstep
5. Other parts
6. Installation and setup
7. Desktop Use
8. Programming
9. Syntax
10. Scope
11. Questions?

1. History

Roots in the NeXT system of the 1980s

Steve Jobs and NeXT 1985

NeXT cube launched 1988

NeXTSTEP system became OPENSTEP (1994)

NeXT bought by Apple 1996

2. GNUstep

FSF started implementing OPENSTEP

Passed or "close enough" first major release targets 2002

Compatible with OpenStep and MacOS X

Dual-platform applications

"Many applications run quite well"

No severe changes between versions

3. Design

OpenStep is an API

1. FoundationKit is a collection of non-graphical objects,

2. AppKit is a collection of objects for graphical applications

3. Display Postscript is a screen drawing interface

Not a desktop, nor a library, but a design.

4. GNUstep

GNUstep’s implementation:

1. GNUstep-Make - a common build system

2. GNUstep-Base - implements the non-graphical parts

3. GNUstep-GUI - implements the graphical parts

4. GNUstep-Back - implements the screen display "backend" (Back-Art)

5. Other parts

Display Ghostscript, to implement Display Postscript

Three servers:

- The GNUstep Distributed Notification Controller (gdnc)

- The GNUstep Distributed Objects Mapper (gdomap)

- The GNUstep Pasteboard Server (gpbs)

Not a window manager, nor just a desktop interface, but a design.

6. Installation and setup

Relatively simple, compared to others

Distributions have gnustep already packaged

Need to install a font package for Back-Art

Each user: select backend and language

Make sure two servers started on boot, and one on login.

7. Desktop Use

"Workspace" is a file manager.

caption goes here

8. Programming

Objective C is compiled by GCC.

Superset of the ANSI C language that provides a SmallTalk-inspired syntax.

Brad J. Cox, Dennis Gladding (1992), Richard Stallman, Kresten Thorup (1993), Ovidiu Predescu, Stan Shebs.

Objective-C uses a runtime - dynamic manner at execution time.

Python, Ruby and Scheme

9. Syntax

Send an object a message:

[myObject aMessage];

A message can take a parameter:

[myObject aParameteredMessage: aParameter];

or many parameters:

[myObject manyParameterMessage: aParameter otherName: anotherParameter];

Blocks can be embedded:

[[myObject message1] message2];

@interface...@end and @implementation...@end

10. Scope

What can you do with GNUstep? Some examples:

Development: GORM, InterfaceBuilder and Renaissance, HelpViewer, Charmap

Productivity: GWorkspace, Ink, Zipper, Terminal

Media: Camera, Maliwan, Cynthiune, ViewPDF, Preview and Slideshow, Cenon, PRICE

Network applications: GNUMail, GNUstepWeb, GSLDAP, TalkSoup, GnuTooth, Toolbox

Games: StepBill. Need more?

11. Questions?

MJ Ray

A short presentation about the GNUstep project, which is a Free Software Foundation desktop project, based on a object-orientated C language and the OpenStep platform.

This presentation was developed with the collaboration of Nicolas Roard.