[Top][All Lists]

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

Re: GNUstep Base OpenStep Compliance

From: Richard Frith-Macdonald
Subject: Re: GNUstep Base OpenStep Compliance
Date: Sat, 5 Apr 2003 03:33:32 +0100

On Friday, April 4, 2003, at 11:07  pm, Tim Harrison wrote:

On Friday, Apr 4, 2003, at 15:55 Canada/Eastern, Richard Frith-Macdonald wrote:

I can't see why we'd want the OPENSTEP 4.2 implementation as a
particular target. In terms of look and feel of the gui and applications
IMO NeXTStep3.2 was better and we should be aiming for that,
while in terms of implementing the OpenStep API OPENSTEP4.2 is
little better than MacOS-X, so where undocumented implementation
details are concerned we should take a live system in preference to
a dead one as our primary standard.

I think you're TOTALLY missing the point. We're not talking about wanting a dead system. We're talking about wanting support for an API that is UNCHANGING, as opposed to the CHANGING API of Cocoa, something we may not have the resources to track, and something that might implement changes that break previous OpenStep/OPENSTEP behaviour, causing GNUstep to be less than consistent.

Yes ... I was missing that point ... because *NOBODY* is proposing following a changing API in the sense you seem to mean.
So discussing that doesn't seem profitable.

People keep saying "OpenStep (or OPENSTEP, or whatever bloody combination of case you wish) is dead".

I think this may be a cause of confusion ... if you are not aware of the distinction between OpenStep and OPENSTEP then for most of this thread you won't actually be understanding the discussion ... the two terms have very different meanings.

And then, in the next breath, argue that Cocoa is just an updated OpenStep. Which is it? Is it dead? Is it Cocoa now? Is it alive and well and living in Freedom/France? Is it my cat? I think OpenStep is alive and well, and Apple is learning how to build a proprietary system out of something that used to be a whole lot more "open". So, maybe OPENSTEP 4.2 hasn't been a "current" system for a while, but the core technologies beneath it (OpenStep and the additions for OPENSTEP) are VERY much alive.

OpenStep is an API specification ... it was produced in 1994 and has not changed since. OPENSTEP is an implementation of OpenStep ... it went through a few versions ending in 4.2 and is no longer developed or readily available. MacOS-X is an implementation of OpenStep ... it's derived from OPENSTEP and is still developed and available to buy.
GNUstep is an implementation  of OpenStep

OpenStep won't be dead  until people stop implementing/using it.
OPENSTEP is dead in the sense that it's no longer developed/sold and fewer and fewer people use it. MacOS-X and GNUstep are alive ... they are being developed/sold and more people are using them.

I'm very happy to have backward compatibility options for OPENSTEP
users built into the code ... as long as those users help maintain them,
but I don't want to spend my time borrowing time on someones old
OPENSTEP system to test each change I make so that the code
conforms to the OPENSTEP4.2 implementation.

But, the point is, having "forward compatibility" with Cocoa would be a much wiser design choice.

Which is what I'm advocating! I was just saying I don't mind having backward compatibility too.

Chasing an actively developed, and changing API, and expecting to base a stable system on it is, in my opinion, folly.

But *NOBODY* proposes that.

> Starting with a solid, stable, unchanging base, and then adding on extensions to that, carefully selected from Cocoa, makes infinitely more logical sense.

Everybody is saying we want the OpenStep API as our core, and to add extensions to it.

I've kept my personal reasoning out of this, thus far. But, I'm absolutely infuriated by the current state of GNUstep. I've been trying to build an operating environment that is significantly based on GNUstep, but I have trouble going forward with it, because I don't want a user to have to reinstall the ENTIRE system every time someone makes a change to the releases, and suddenly everything from the user's mail client to the desktop/workspace to the init system no longer functions. And, to a small degree, this happens to most of us, from release to release. Even from CVS checkout to CVS checkout. And I can't tell you how many times I've ranted, or watched others rant, about how ridiculously unstable GNUstep is, and how pissed off people are that the API/implementation/documentation (just kidding) keeps changing under the apps, making them fail miserably.

If you really think you can maintain a stable development environment while tracking Cocoa as a primary goal, then I salute you. But, historically, and certainly up to this exact point in time, GNUstep is NOT stable, does NOT seem to have a solid goal (whether it be Cocoa-clone, OpenStep implementation, or anti-GNOME, whatever), and, in my opinion, has trouble getting developers and users because of these issues, not because NSDrawer isn't implemented.

I love the concept of GNUstep. I love what it could/can be. I can't tell you how many people say, "I read about GNUstep several years ago, and hoped it would be ready by now". I started getting involved with this community two years ago now, and honestly believed that this environment would be ready for the kind of system I wanted to build. And, for some silly reason, I still stay, and still try to do my part for making things better. I can't code to save my idiot life, but I submitted proposals for cleaning up filesystem organisation. I want to see GNUstep rise above. But, in the current state, I fear that it will forever remain an unstable, niche gadget, and act as an example of what might have been.

Does that make it clearer as to why we'd want to focus on OpenStep/OPENSTEP as a basis for development? I can't think of any way to make it more plain.

It explains your frustration. I'm frustrated by lack of stability of the gui too. However MacOS-X has nothing to do with that ... lack of developers does!

The gui is still relatively unstable because we don't have lots of people fixing bugs. That means it has a relatively large number of bugs (being a large package), and that means that application developers build their applications based on buggy behaviors, and the applications then break when the bugs *are* fixed (or when new bugs are accidentally introduced of course). Also the gui package is *complex* with a lot of interrelationship between classes, so fixing a bug in one place often exposes a problem elsewhere.

When we try to fix bugs in the gui code (or implement stuff from the OpenStep API that's not yet implemented) we *very* often find that the OpenStep spec is not clear enough or complete enough to tell us exactly what we should do. At this point we need a reference implementation to check behavior against. We can use some version of OPENSTEP or some version of MacOS-X as our reference. It doesn't matter much because both behave broadly similarly (after all, MacOS-X is derived from the OPENSTEP codebase), but the MacOS-X implementation is *much more readily available*

It's important that when we fix a bug we try to get the *right* implementation rather than just something that fixes the immediate problem. Checking against a reference implementation helps a lot with that.
This is what I'm talking about when I say we should use MacOS-X.
It's not a matter of tracking a changing API ... it's a case of clarifying the OpenStep API using an (almost) unchanging reference implementation. The changes in various releases of MacOS-X are almost all *additions* to the MacOS-X API, and GNUstep specifically does not commit to tracking them (though often we do add the new stuff when it looks good).

So, to try to clarify again ...

We should Implement the OpenStep API in the core libraries.
We should use MacOS-X as a library test reference platform,
We should implement NeXTstep look  and feel applications on top of it.

One thing I'd like ... if it was practically possible ... would be for developers to be able to get hold of OPENSTEP4.0 or NeXTstep 3.2 and some way to run the systems! MacOS-X provides a good convenient reference for the OpenStep API implementation, but its gui look and feel is quite different (and imo inferior) to the look and feel I'd like to see.

reply via email to

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