Difference between revisions of "Introduction to GNUstep"
m |
m |
||
(8 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
* [http://www.gnustep.org/information/GNUstep-brochure.pdf Summary brochure] (2Mb PDF) | * [http://www.gnustep.org/information/GNUstep-brochure.pdf Summary brochure] (2Mb PDF) | ||
* [http://www.gnustep.org/information/Booklet.pdf Summary Booklet] (3Mb PDF) | * [http://www.gnustep.org/information/Booklet.pdf Summary Booklet] (3Mb PDF) | ||
− | * Our [ | + | * Our [[Mission]] |
Line 18: | Line 18: | ||
=== ...a desktop === | === ...a desktop === | ||
− | Many GNUstep [[applications]] have been written to provide a powerful user experience for working on your computer. These include our workspace manager, [[GWorkspace]], and mail client, [[GNUMail]]. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use [[WindowMaker]] for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet. | + | Many GNUstep [[:Category:Applications|applications]] have been written to provide a powerful user experience for working on your computer. These include our workspace manager, [[GWorkspace]], and mail client, [[GNUMail]]. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use [[WindowMaker]] for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet. |
Here are some current ones: | Here are some current ones: | ||
− | * [http://www.nongnu.org/ | + | * [http://www.nongnu.org/gap/ GNUstep Application Project] |
− | * [ | + | * [https://trunkmaster.github.io/ Nextspace] |
− | |||
== GNUstep is not a window manager == | == GNUstep is not a window manager == | ||
− | GNUstep is [ | + | GNUstep is [[GNUstepIsNotWindowMaker|not a window manager]]. And the libraries are not used by WindowMaker at present, although WindowMaker shares a similar look. |
− | |||
− | |||
+ | At no stage will you ever 'run' GNUstep - you will run applications and tools and will make use of its services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at the [http://io.debian.net/~tar/gnustep/ GNUstep Live CD] for example. | ||
== Additions to OpenStep == | == Additions to OpenStep == | ||
Line 42: | Line 40: | ||
== Why should I learn Objective-C? == | == Why should I learn Objective-C? == | ||
− | [[Objective-C]] gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. | + | [[Objective-C]] gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. Don't like [[Objective-C]]? You can use Java (See [http://www.gnustep.it/jigs/index.html JIGS]) or Ruby (See [http://www.gnustep.org/experience/RIGS.html RIGS]). |
Line 52: | Line 50: | ||
== Why not just use GNOME/KDE, X11, and C/C++? == | == Why not just use GNOME/KDE, X11, and C/C++? == | ||
− | GNUstep works with GNOME, KDE, as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects. | + | GNUstep works with GNOME, KDE (See [[IconManager.app]]), as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects. |
+ | |||
+ | |||
+ | == What development tools can I use? == | ||
+ | |||
+ | See page [[Development tools]] for this. | ||
Latest revision as of 07:36, 14 April 2020
GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. GNUstep is based on and completely compatible with the OpenStep specification developed by NeXT (now Apple Computer Inc.) as well as implementing many extensions included in Mac OS X/Cocoa.
- Summary brochure (2Mb PDF)
- Summary Booklet (3Mb PDF)
- Our Mission
GNUstep is...
...an object-oriented tool development kit
The first two packages (GNUstep-make and GNUstep-base) that make up the core libraries contain a complete system for writing non-graphic tools in Objective-C. The make package allows you to setup a simple and powerful system for building, installing and packaging your tools. The base package includes all the classes necessary for writing an incredible array of tools, from wrappers for system tools to tools for communicating with web and other types of servers.
...a graphical development kit
The core libraries contain classes for developing a complete graphical application for almost any purpose. Along with our object-oriented, graphical development applications, ProjectCenter and Gorm it's simple to write very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments.
...a desktop
Many GNUstep applications have been written to provide a powerful user experience for working on your computer. These include our workspace manager, GWorkspace, and mail client, GNUMail. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use WindowMaker for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet.
Here are some current ones:
GNUstep is not a window manager
GNUstep is not a window manager. And the libraries are not used by WindowMaker at present, although WindowMaker shares a similar look.
At no stage will you ever 'run' GNUstep - you will run applications and tools and will make use of its services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at the GNUstep Live CD for example.
Additions to OpenStep
In addition to the OpenStep API, GNUstep also implements many additional classes and methods, some from the Cocoa API for the sake of compatibility. GNUstep is written in the object-oriented language Objective-C, a superset of C which adds object-orientation to C. Objective-C is very simple, yet very powerful. GNUstep also includes bindings to other languages such as Java (JIGS) and Ruby (RIGS).
For more information, see the following testimonial from a GNUstep user.
Why should I learn Objective-C?
Objective-C gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. Don't like Objective-C? You can use Java (See JIGS) or Ruby (See RIGS).
Why should I use GNUstep?
GNUstep provides an excellent, mature framework for writing good applications. There's good anecdotal evidence that OpenStep developers have written very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments. Using the visual interface modeling application, you can construct a decent user interface skeleton in a day or so with no coding.
Why not just use GNOME/KDE, X11, and C/C++?
GNUstep works with GNOME, KDE (See IconManager.app), as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects.
What development tools can I use?
See page Development tools for this.
License
The GNUstep libraries are covered under the GNU Lesser (Library) Public License. This generally means you can use these libraries in any program (even non-free programs) without affecting the license of your program or any other libraries GNUstep is linked with. If you distribute the GNUstep libraries along with your program, you must make the improvements you have made to the GNUstep libraries freely available. The stand-alone tools in GNUstep are under the standard GPL.
With GNUstep-Base, we recommend the use of the ffcall libraries, which provides stack frame handling for NSInvocation and NSConnection. "Ffcall is under GNU GPL. As a special exception, if used in GNUstep or in derivate works of GNUstep, the included parts of ffcall are under GNU LGPL" (Text in quotes provided by the author of ffcall).
Design
The GNUstep logo has been designed by Ayis Theseas Pyrros. It stands for the "yin-yang" of objects taking you "a couple of steps" further.