OOFILE | Downloads | Purchasing | Press | Services | Company Information | Soapbox | References | F.A.Q. | HOME 

 

Why

REALbasic .gets a lot of criticism, some based on history, some from a dislike of BASIC in all forms and much uninformed prejudice driven by the fact that it's a very popular hobbyist tool and so a lot of the more amateurish offerings out there for the Mac were developed with RB (as were developed in HyperCard a generation ago).

 

Quick Good Points for Software Development Professionals

Any opinions about a version prior to 5.5 are way outdated. (as a general point - I'm wary of criciticism of tools that doesn't mention the version and v5.5 was a compiler rewrite and significant point of improvement).

The language has also been steadily improved in minor ways in the 2005, 2006 and 2007 releases since. At the time of writing, I'm working with 2007r1.

  • It has the best cross-platform application framework I've seen (compared to most C++ frameworks) including Linux. It is easier to write a clean UI than with PowerPlant or Cocoa.
  • The remote debugging is more solid than most versions of CodeWarrior have managed.
  • The compiler is built-in allowing you to compile RBScript from textual source. You choose the API you expose to each script, like having your own Java sandbox without the overhead. It's vastly easier than embedding Python or Lua in a C++ app.
  • Relatively tiny applications shipped in a single executable (no more 20MB runtime DLL's with your little app)
  • The language hits a lot of sweet spots:
    • operator overloading including the equivalent of operator= and the ability to write RHS operators for arithmetic, eg operator_AddRight, but with a safer version of construction overloading that avoids many of the c++ issues
    • Java-like interface inheritance
    • the equivalent of Objective-C class categories ('extends' on the first param to a method). This allows you to add new methods to existing classes. That feature of Objective-C was one of the major reasons for its popularity in RAD development as it avoids problems tackled in C++ and Java by subclassing and requiring calls to Abstract Factory classes to make new objects.
    • an in-language solution to the perennial problem of how to attach bits of code to event handling per-window without writing new classes all the time (events)
    • strict typing required - you do have to declare all variables (although as a frequent Python developer this is no longer the big deal it used to be for me)
    • reference-counted memory management (smart-pointers) which I find much less stressful than Objective-C retain/release logic. It just works!
    • overriding of method lookup via operator_lookup so you can add unknown method handling (call this Objective-C, Smalltalk or Python-style message catching if you like - it's very cleanly done)
    • scope control for global constants, functions and variables equivalent to a c++ namespace (but not nesting namespaces)

The IDE was rewritten within REALbasic itself for 2005. The decision was made to write a totally new IDE design from scratch, rather than it being just a port, mostly I think to bring the look up to match the contemporary tabbed style of Eclipse and XCode. The previous Mac RB5.5.5 IDE was fairly stable and very fast but the Windows version, although looking similar, was awkward and very unstable, especially when debugging.

The rewrite was a bit unfortunate in that the ambition of the new design took at least a year to settle into something matching some of the core functionality of the Mac RB5.5 IDE and incurred a lot of animosity from Mac users who don't like the single-window tabbed look. As of RB2007r1, multi-window operations are back but sufficiently unstable that I tend to use a single window.

There is no question for me that REALbasic is one of the most productive GUI development environments I own, even for single-platform development. It continues to improve and the public bug-tracking database has been steadily whittled-down over the last few releases. They have an open beta program and regular quarterly releases.

 

Links

back to Soapbox