If you always thought that OpenStep, Cocoa's base, was limited to Mac OS X, you're wrong. A project called GNUstep is dedicated to creating an open-source implementation of the reusable objects that Cocoa uses.

Cocoa, which is the framework that the vast majority of Mac OS X software developers use to create application user interfaces. It uses NextStep's framework to create reusable objects using objective C, which is not dissimilar to C# or Java. Carbon is another application framework that can be used to create Mac OS X interfaces, but the difference is that Carbon is more C-based, using a procedural programming method rather than Cocoa's object-oriented method.

The goal of GNUstep is not only to provide this framework, but to allow easy porting of applications created with this framework, allowing programs created in either Mac, Linux, or Windows using the GNUstep framework to be easily ported to other platforms.

Unfortunately, this implementation of OpenStep lacks the gloss that has been used to create Cocoa. If you just look at some of the screenshots of GNUStep applications, you will probably agree that it looks sub-par to what you're used to when viewing interfaces. I've seen a lot of Linux interfaces that look better than this.

And if you compare this library to Apple's, you'll notice, as expected, that updates to the core framework are few and far between. To make any developer feel secure, you'll need to continue releasing support, or else they'll switch to something more current. No one wants to back a losing brand.

And probably one of the most important things: they need to convince Cocoa developers to use GNUstep instead of Apple's. They are obviously the most experieced using this, and if GNUstep could convince them to move, you would begin seeing more Mac apps being ported to Linux and Windows.

Sadly, this is not the case. There are several reasons, most of the points listed above apply here, but they really need to convince Mac software developers that their API has something that Apple's doesn't. And it's usually not portability, as Mac software developers are usually smug and don't want their app to be ported. And yuck, why would they want to make their app look as horrible as that screenshot posted above?

GNUstep is a good idea, but it still needs a lot of work if it wants to get the mainstream developers.