It sounds too good to be true. Write once, run everywhere. (Where did we hear that promise before?) Alas, it is. I’ve been working with REALbasic for about a year, now, and my conclusion is that it’s not ready. Given that they have been working on it since 1996, I suspect it never will be. As a language, it’s amateurish. Threads are not native, and are actually cooperative as opposed to preemptive. Kind of like the Mac back in the 1980s. Worse, threads hand over control not at regular intervals, but at each iteration of a loop. Who came up with that horrendous kludge? It’s hard to believe they have the gall to actually release a version of their software dubbed “Professional.”
But being merely amateurish wouldn’t be enough to warrant a blog post. I’m warning people off of this piece because it’s so buggy as to be almost unusable. I’ve had problems with bugs in their semaphore class not actually protecting resources from all threads. (Apparently they really have a problem with this thread thing.) Most problematically, however, the IDE itself is highly unstable. Sometimes, under Linux, it gets confused and when you hit “delete” in an editor window, it actually think you want to delete the whole method, not just the current character. That’s obviously a problem, especially if you don’t catch what it just did, and accidentally hit save. Restarting fixes this. Right now, whenever I set a breakpoint, it crashes with a segfault upon reaching the breakpoint. Running without the breakpoint works fine. Clearly, they need more work.
Maybe in another ten years they’ll be ready, but for now I suggest anybody considering REALbasic learn a real language instead. BASIC can potentially be a great language, but in the hands of these guys, it’s open mike night.