As most of you probably know by now, we are working on a new Mac OS X framework for REALbasic. The framework is code that lies beneath your code and translates what you've written in REALbasic into operating system-specific API (Application Programming Interface) calls. For example, in REALbasic you put w = new window1. Behind the scenes we call CreateWindowEX on Windows, gtk_window_new on Linux, and NewWindowReference on Mac OS X.
Our current Mac OS X framework uses the Carbon APIs. These APIs were created to be compatible with Mac OS 9 (Classic Mac OS) as a means to port these apps to Mac OS X. The other set of APIs for Mac OS X is called Cocoa. These were part of NeXTStep which eventually became Mac OS X.
It's become increasingly clear over the years that Apple is focusing its attention on Cocoa. It's understandable that they would want to do this rather than have to update two APIs for each new feature. Several years ago we started a project to create a new Cocoa-based framework for REALbasic. This wouldn't change how you work with REALbasic or how you support Mac OS X (well, not much anyway) but it would provide users with a better experience and allow us to expose new Mac OS X features faster. The project failed. But we are nothing if not tenacious so 15 months ago we started a new Cocoa project with a new approach. Based on our experience developing frameworks for Mac, Windows and Linux, we believed that we would be in beta by Q1 2009 and shipping by the end of Q2 2009. It hasn't worked out that way.
We are making terrific progress. It was slow going at first but we able to move faster now that we have laid the groundwork. At this point, we should be feature complete by the end of the summer and shipping some time this fall. So our schedule has slipped by one quarter. I know many of you were hoping to have Cocoa sooner and I'm sorry to disappoint you. But we would rather do it right than have to do it over again.
So when it comes to good, fast or cheap, we are choosing good.