Sony adopts, then drops, Cocoa-like GNUStep plans to rival Apple iOSSony unveiled plans to deliver a mobile development platform based on an open source version of Apple's OpenStep and Cocoa technologies, shortly before announcing the project was put on hold.
Sony's plans, referred to as SNAP (Sony Networked Application Platform), hoped to leverage the open source community to deliver an alternative to Apple's iOS Cocoa Touch development frameworks.
As a starting point, Sony took the existing GNUstep libraries, which originated as an implementation of OpenStep, the basis for Apple's Cocoa in Mac OS X and iOS. GNUstep uses the same Objective-C language and implements similar (but not compatibly identical) development frameworks to the Cocoa used by developers to create Mac, iPhone and iPad apps.
However, after contributing a number of touch-based interface enhancements to the open GNUstep codebase, Sony has put its plans on hold without explaining why.
NeXT and OpenStep
Sony's intention to use an open source platform to compete against Apple in the mobile device arena, rather than using an existing alternative such as the Java-based Android, JavaME, and BlackBerry OS; Microsoft's Silverlight-based Windows 7 Phone; the full Windows 7 environment (that Sony has licensed for use on PCs), or some version of Adobe's Flash Lite, Flash web plugin (championed by Google's Chrome OS), or Flash-based AIR development platform (as the upcoming RIM PlayBook does), is an interesting development given the shared history of Apple's Cocoa and GNUstep.
Prior to bringing NeXT's technology to Apple in the 1997 acquisition that returned Steve Jobs to the company he founded, NeXT created a sophisticated UNIX operating system using advanced, object oriented development frameworks that made building apps easy.
Named NeXTSTEP, the package was widely used by investment banks and security agencies to create custom apps, and was famously used to build the first web server and browser client. It was also used to develop cutting edge video games by John Carmack of id Software. Despite those successes, NeXT was unable to sell enough of its hardware in a way that could support ongoing development.
It pulled out of the computing hardware market in the early 1990s in an attempt to find a sustainable market for NeXTSTEP's advanced technology as a software product, initially selling a version of the NeXTSTEP OS that could run on PCs and Sun workstations, and eventually separating the development tools from the underlying OS to create a development layer that could run on top of systems running Windows NT or Sun's Solaris.
In a partnership with Sun, NeXT developed the OpenStep specification, which enabled any hardware maker or operating system vendor to build products capable of running applications created for the new specification. Within months however, Sun pulled out of the partnership to focus on Java, its own technology aimed and creating applications that could conceivably run on any hardware or operating system with a Java Virtual Machine.
With few prospects left for OpenStep, NeXT pursued the development of WebObjects, which essentially turned the OpenStep frameworks into a development environment for web apps. Dell used this technology to launch its very successful web store shortly before Apple acquired NeXT with the intention of resurrecting NeXTSTEP as replacement for its existing, aging Classic Mac OS.
Apple takes NeXT in a new direction
Apple initially hoped to use the platform independent work NeXT had done to deliver Yellow Box (essentially OpenStep) as a development environment for creating applications that could run on the Classic Mac OS, Windows, Solaris, and a new Unix-based OS that would eventually replace the Mac OS on Apple's own hardware.
Those plans were thwarted by a number of issues: the show-stopping difficulty of hosting the sophisticated YellowBox frameworks on top of the outdated foundations of the existing Mac System 7; the impossibility of positioning YellowBox as a credible alternative to native or Java development, given Apple's existing fragile condition as a company; and the insistence of Apple's existing developer community that the company not abandon its current Mac OS APIs in favor of this newly acquired, unfamiliar technology from NeXT.
Apple was sent back to the drawing board for years, where it hammered out a strategy that dropped cross platform compatibility to instead focus on delivering a new Mac OS X, with both support for the existing Mac OS APIs as well as a thoroughly refreshed version of OpenStep/YellowBox the company now referred to as Cocoa (in deference to the popularity of Java).
While Apple abandoned all efforts to deliver a version of Cocoa that could run on top of other operating systems, the open source community kept working on GNUstep, an implementation of the OpenStep standard NeXT had created. That project has continued to track Apple's progress with Cocoa, adding its own implementation of new technologies that Apple has added to Cocoa.
While Cocoa apps won't run unmodified on top of GNUstep, they should be much easier to port than apps created using a completely different development environment such as Java or Windows. Sony's plan to use GNUstep in its mobile devices would similarly not enable its products to use iOS apps created for the iPhone or iPad, but would offer a development platform familiar to the thousands of developers who have already embraced Cocoa Touch to target Apple's products.
Now that Apple has achieved a very strong position in smartphones, media players, and tablets with its iOS platform, it is ready to use Cocoa to deliver a unified development platform for its Mac App Store, expected to open in January. Apple's goals to push Cocoa-centric development may be assisted by any external efforts (such as Sony's) to use a related development model using the same language and similar frameworks.
It's also possible that Apple could resurrect its initial plans to offer a cross platform version of Cocoa that could be used by its existing developers to create apps for Windows, and deploy these apps using an App Store similar to its forthcoming standalone Mac App Store app.
Sony's sad story in software
Regardless of where Apple chooses to take Cocoa, Sony's interest in using GNUstep is both an endorsement of Apple's existing technology portfolio and another example of hardware makers looking with skepticism upon Google's Android. Sony already uses Android in its Xperia phones (which formerly debuted with Windows Mobile), its Google TV appliances, and its Dash "personal Internet viewer" device, but like Samsung's homegrown Bada, HP's decision to use Palm's webOS, RIM's use of QNX, and Nokia's aversion to Android, Sony's efforts to look beyond Android indicate that leading hardware makers are not ecstatic about the prospects of simply becoming commodity device makers that divert much of their value to Google's platform.
Sony has previously failed to successfully integrate third party software platforms as a licensee of the failed Palm OS (in its Clié PDAs), the BeOS (in its eVilla web browser appliance) and Windows Mobile (in its Sony Ericsson devices) and has not done well as a Windows licensee selling PCs and laptop hardware, nor as a Symbian or Google licensee in smartphones.
The company's hardware prowess initially helped Apple design its successful PowerBook line, but was unable to keep pace with the company's Walkman-devastating iPod in 2001, and has since been embarrassed by the iPhone and iPod touch, not just as rival smartphones and media players but also as gaming devices competing for attention against the PlayStation Portable. Whether Sony will completely scuttle its GNUstep experiments or pick it up again and create real products using it still remains to be seen.