discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ruby-talk:21190] Re: ANNOUNCE: RIGS 0.1.0 - Ruby Interface to GNUs


From: Laurent Julliard
Subject: Re: [ruby-talk:21190] Re: ANNOUNCE: RIGS 0.1.0 - Ruby Interface to GNUstep
Date: Fri, 14 Sep 2001 10:23:43 +0200

"Avdi B.Grimm" wrote:
> 
> Anyone here want to talk about experiences programming in the
> NextStep/GNUStep/Cocoa environment? I've heard a lot of people raving about
> what a productive environment it was/is; but I've never seen any specifics or
> code samples.  I've heard that it's main strength is a terrific OO
> application framework. So, what's so wonderful about the API? How does it
> compare to other application frameworks like GNOME, KDE, or MFC?
> 
> always eager to try out something new and nifty (or old and nifty),
> 
> -Avdi Grimm

Let me tell you about my own experience.

Context: 4 months ago I knew nothing about Objective C and GNUstep. One
day I cam across the announcement of a new GNUstep release and decided
to go deeper into it.

The first thing that struck me as I was learning is that GNUstep as well
as the  Cocoa Framework from Apple are almost *exactly* identical to the
NeXTstep APIs that was defined something like 10 years ago! And a decade
is an eternity in the software industry. So I said to myself that if a
Framework (and its programming language - Objective C) came through
these 10 years untouched there must be something special about it. (As a
matter of fact I completely overlooked the NeXTstep/OpenStep/Rhapsody
saga in the 1990's. You can learn more at
http://users.bestweb.net/~tstephen/OpenStep/history/content.html)

4 months after here is what I have discovered

1) First of all, when you look at it, it is obvious that all the layers
of the Framework (the Display engine, Foundation Library and Application
Kit) were all (cleverly) designed a)from scratch and b)all at once and
they fit perfectly one with another. The entire edifice is extremelly
consistent. 

2) The Framework is written in Objective C (still is on Mac OS X). It is
a simple yet powerful OO language. It is much simpler than C++ and even
though it is a compiled language it shares many of the features found in
modern semi-compiled and interpreted OO language like Java, Ruby or
Python. Just to give you an example Objective C has some remarkable
introspection capabilities which makes it easy to bridge with Java or
Ruby (as I did in RIGS)

3) Although I'm not familiar with this aspect, I suspect that the
development tools coming with the Framework (Interface Builder and
Project Builder) are very powerful tools and I'm not sure that any other
tool on the market has reached this level of integration, ease of use
and power since then. Gorm and ProjectCenter are GNUstep equivalent
(work in progress).

4) Compared with GNOME, KDE, or MFC, the  NextStep/GNUStep/Cocoa
Framework is much, much simpler. I have been a Linux user for a decade
(since the beginning actually) and I could never convince myself to
invest enough time to master GNOME or KDE. Yet the
NextStep/GNUStep/Cocoa Framework offers all the libraries and modern
programming technics that a programmer would expect (included
distributed objects!). The learning curve is also very smooth. Reading
the 3 following documents is enough to understand and master 90% of the
Framework:

- Object-Oriented Programming and the Objective-C language (a must
read!)
http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/ObjC.pdf

- Foundation Library - Objective C API
http://developer.apple.com/techpubs/macosx/Cocoa/Reference/Foundation/ObjC_classic/FoundationTOC.html

- Application Kit - Objective C API
http://developer.apple.com/techpubs/macosx/Cocoa/Reference/ApplicationKit/ObjC_classic/AppKitTOC.html

5) All the Framework specifications are public and well documented (see
above)



Bottom line: the NextStep/GNUStep/Cocoa Framework is about consistency,
simplicity and a power.

Hope this helps and I also hope that this message will help establish
fruitful and sustained relationship between the GNUstep and Ruby
communities.

Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]