GNUstep began life as an implementation of the OpenStep specification. Now, the most well-known implementation of OpenStep is called Cocoa and is the recommended way of developing software for Mac OS X and the iPhone. GNUstep has continued to track these changes, and has become a good way of porting code from Mac OS X to Windows or *NIX.