| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
From a developer's point of view, GNUstep provides an integrated makefile system, low-level and GUI libraries for application building, and a platform independant graphical rendering system.
The primary language used on GNUstep is Objective-C. It's a Smalltalk based set of extensions applied to ANSI C. It's object-oriented like Java and C++, but is a very dynamic language that uses a single inheritance model and allows protocols (or interfaces as known in Java). Unlike C++ which is completely staic, method calls in Objective-C are resolved at runtime and very loosely bound. This allows for certain things which are impossible in C++ without type-casting or cumbersome wrapper code and macros. Despite this, it is incredibly fast (being a compiled language) where method calls are about 2-3 times as slow as an ordinary C call, and where alot of optimisation is possible for further speed increases. It is not an interpreted bytecode language like Java.
It is a superset of C, which means that it doesn't interfere with ANSI C code and hence is completely compatible with any available C library. We use the gcc(1) set of compilers, and as of version 4.1.0, you can also mix Objective-C and Objective-C++ code in the same file. For those familiar with the language, it provides full category support (which means you can add code to classes in separate files or even at runtime) and can be optionally semi-staic bound.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This is a library (or if you prefer, a framework) that provides the basic services needed in all applications, whether they be command-line or graphical. For developers, this is the common stuff found in ANSI C like
There's also more advanced classes which make it deadly simple to handle advanced issues such as
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This library provides the Graphical User Interface (GUI) services needed for advanced application development. There are the usual control and window classes such as:
There are also the more advanced GUI controls, some of which are not found on some other platforms including:
It also provides support for:
User interfaces are stored in nib files, created by our interface builder, Gorm.app, which allows easy separation of interface and code. gnustep-gui uses the gnustep-back bundle to provide a clean abstraction between the user interface and the low-level drawing code.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |