Monday, June 8, 2009

Good, fast or cheap

There is a saying that you can have something "good, fast or cheap" but you have to pick one. If it's good, you won't get it fast or cheap. If it's cheap, it probably won't be good or fast. You get the idea. That saying is not new and it's not even always correct as it's highly subjective. But it is true more often than not.

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.


MGV said...

This will run ok on PPC macs?

Geoff Perlman said...

Yes, Cocoa will be supported for PowerPC. The performance shouldn't be much different from what you get today.

Steveorevo said...

Excellent. I have that saying with some of my clients. But it's always been pick two. If it's fast and great, it's going to cost. If it's great and cheap I'm willing to spend quite a bit of time craving the perfect path, in other words -don't expect it anytime soon. I'm hoping there is a second priority here that won't break the bank? ;)

Anonymous said...

Wow, this *is* tenacity! Thank you for sharing all this so transparently, most companies wouldn't give clients that kind of respect. Keep up the great work!

Anonymous said...

Does this eventually enable development for the iPhone using RealBasic?

Geoff Perlman said...

It's a prerequisite but it's not the only step towards iPhone support. There are many others.

Anonymous said...

I predict an XCode project emitter similar to when iPhone support arrives. There's a stack of cash waiting for the first good RAD tool for the iPhone... :)

Anonymous said...

Geoff wrote: "So our schedule has slipped by one quarter."

That is true... your schedule has slipped by one quarter... of a decade.

According to Real's website, Cocoa support was announced 3.5 years ago:

"Jan 9, 2006: Support for Cocoa ... will ship later this year"

If you ship Cocoa support in 2009 you will be late by three years... not three months. IF you ship this year.

When you try to spin this mess as "we are late by one quarter" that tells us that either you think we are easily fooled by your bs or you have completely deluded yourself. Which is it?

If I sound pissed its because you guys keep cranking out announcements that have absolutely no basis in reality.

Speaking of that... Where's Swordfish?

Eduo said...

I know it's nitpicking, but the saying says you can have *any two*, at the expense of the third one.

Good and quickly: Expensive
Good and Cheaply: Late
Quickly and Cheaply: Bad

The Bearden Wonder said...

The saying says you pick two of those three, not 1.