GNUstep, Mac OS X Compatible On Intel Hardware
June 6th, 2003

Macintosh OS X for Intel processors has long been a topic of debate for Apple aficionados. Regardless of where you stand on that debate, whether you're for or against Apple using Intel processors, there is another option brewing: GNUstep.

In the Beginning There Was NeXTstep
What is GNUstep? Well let's step back just a bit. Before there was OS X, there was OPENSTEP by NeXT. Of course Apple bought NeXT and used the OPENSTEP operating system as a basis for our current Apple operating system. Many consider Mac OS X to be OPENSTEP 6.0. However, prior to 1997, NeXT released an open specification to its libraries for OpenStep. In effect, the GNUstep organization used that specification to build a GNU based version of OS X. GNUstep even includes Display Ghostscript (i.e., Postscript). GNUstep could conceivably run on any number of base operating systems. Just as the middleware and higher levels of OS X run on the base Unix/Darwin variant, middleware and higher levels of GNUstep have also been abstracted from the base operating system.

Write Once, Release Everywhere
If you haven't asked yet, you should by now: "why should I care?" You should care because GNUstep is so similar to OS X that applications developed for it are basically Cocoa applications. Currently, you can go to GNUstep.net and download a slew of programs that will build and run with literally a single click. To do so, all you have to do is install the OS X Development Tools that either came with your copy of OS X or just download them for free (after registering for free).

You can use InterfaceBuilder.app to modify and customize Cocoa programs to a great extent by rummaging within an application's package. In fact, every Macintosh owner should install the development tools. Not because everyone should become a programmer, but simply because GNUstep and Cocoa projects are so easy to build and modify; think of InterfaceBuilder.app as Resedit on steroids. The process to build a GNUstep application for OS X basically requires you to double-click on the program's .pbproj file in the Finder, and then click on the big Build button (it looks like a hammer) in Project Builder.app and you're done. That's it.

Currently, what this means for you is that a few GNUstep applications already can run under OS X and might be worth checking out. For example, GNUMail.app is developing into a nice Mail.app alternative. You can find other programs at Collaboration World, and a Japanese site (English and Japanese versions available).

This is an incredibly big development as it enables write-once-deploy-everywhere software design for Cocoa programmers. Back in the day, a NeXT programmer would build a Cocoa-like application, and cross develop the program by simply checking off hardware architectures in a list just before pressing the Build button in ProjectBuilder.app (at one time this included Motorola 680x0, Intel x86, HP PA-RISC, and SUN workstations). One click and your single application would be compiled into a "fat" binary that could be run on any of these computers. With GNUstep being so portable, it is only a matter of time before it's layered not only atop Linux, but Darwin and Windows.

GNUstep/Cocoa Applications on Windows Could Change Everything
If you think it's silly to have something like GNUstep on Windows, think again. NeXT used to provide OPENSTEP for Windows. Unfortunately for many developers, Apple has pulled the plug on the technology preventing one-click cross compiling for Windows by restricting its tools.

All of this changes with GNUstep. If Cocoa developers can take their application, and just build a fat binary version including GNUstep libraries so that it can run under Windows, Linux or OS X, the developer's market just became orders of magnitude bigger.

Two things are needed before GNUstep explodes onto the scene, which may well threaten Apple.

  1. An easy to install GNUstep + BSD/Darwin/Linux distribution needs to be developed;
  2. A Windows layer/version of GNUstep needs to be developed.

Item A is already available at SimplyGNUstep, but needs to be updated. Item B is being worked on currently.

GNUstep. Mac OS X Cocoa, Hold the Carbon and Classic
This means that a lot of people are going to be able to run Cocoa OS X programs, not only on Intel machines, but on various operating systems. This may make things more difficult for Apple when comparisons of speed take place with the same code running; except now judgments can be made not only on which processor architecture is faster, but also on which operating system performs better.

This might become a good reason for Apple to consider releasing proprietary Intel hardware because such comparisons might make it more difficult to obfuscate lagging performance. As much as GNUstep will do for the Apple platform by providing high quality Cocoa programs, in time, GNUstep could provide some with less reason to stick with Apple. Of course GNUstep does not, and probably will never, provide any Carbon or Classic compatibility. Nevertheless, Apple should pay close attention to what is fast becoming a free clone of OS X.