Real World Review: REALbasic 2007r2
Volume Number: 23 (2007)
Issue Number: 08
Column Tag: Real World Review
Real World Review: REALbasic 2007r2
by Norman Palardy
Introduction
REALbasic is REAL Software's award winning cross platform rapid application development environment. REALbasic 2007 Release 2, or RB 2007r2, is the latest incarnation.
If you're familiar with other programming tools like Visual Basic, Delphi, or 4th Dimension, you'll instantly recognize a great deal of REALbasic. It has a straight forward drag and drop visual design environment for creating a user interface and a robust programming language.
That said, this is not BASIC like you might have encountered before. REALbasic is similar to Visual Basic, but not identical.
REALbasic comes in two versions: Standard and Professional. The Standard version only compiles applications for a single platform (Mac, Windows or Linux) and is missing several Internet related classes and some more advanced user interface classes. The Professional version is substantially more expensive but also includes everything so you can write an application on one platform and compile it for the others, the ability to create console applications, SSL, remote debugging and several other features.
REALbasic's language has full support for a host of features normally found in languages like Java and C++. But it's not nearly as hard to learn.
Figure 1 REALbasic splash screen.
When you first launch REALbasic, you're greeted with its splash screen. REAL frequently releases new versions with new features and bug fixes. One important piece of information on the splash screen is the update plan expiry date. REAL has moved away from a traditional version numbering scheme to a subscription-like model. You can download and use any updates released while your update plan is valid. Once your plan is no longer valid, you can continue to use whatever versions you have, but not new updates.
The good thing about this model is that instead of only getting one release a year you often get 4 and maybe more. Each release contains a mix of bug fixes and new features. Release 2 fixes over a hundred issues.
When REALbasic opens, you are shown a new, default empty project that has the bare minimum required for a GUI application. Every application in REALbasic is a project. All the code and user interface items form a part of that project.
Figure 2 A new REALbasic project
At this point, you can actually compile and run this project. It is a fully working example. It does not do much, but it does run, open a window and has a working menu bar.
To turn this into your pet project you add controls from the control palette, and add code to the controls to make them behave the way you want. As you can see from the next picture there is a long list of controls that you can use in an application everything from simple controls like check boxes and push buttons to more complex controls for using Excel, Word and PowerPoint from within REALbasic.
Figure 3 Project window with control palette visible on left.
You may ask yourself how big a project or how complicated a project REALbasic can create. In fact, the REALbasic IDE is written using REALbasic. You can write very large very complex projects in it.
There are several commercial products, including REALbasic, that are written in REALbasic. However, because some have vocally criticized REALbasic some vendors do not advertise that they use REALbasic to create their products. That said, REAL Software is constantly working on improving REALbasic as fast as they can manage and RB 2007r2 has a number of significant improvements. It loads faster than 2007 Release 1, compiles debug builds quicker than 2007 Release 1, and has numerous fixes and enhancements.
Many fixes in RB 2007r2 are productivity enhancing fixes. Improved speed of debug runs and an improved debugger mean that as a developer you can work faster and better watch what is going on in your code.
Extending your reach
REALbasic is a very extensible environment and RB 2007 r2 improves that extensibility and improves on the speed of using third party add-ons, called plugins. You can use many ActiveX controls on Windows, Applescript on OS X and a mechanism, called declares, to access functions available from DLL's or libraries. This allows you to extend you applications in ways that REAL has not foreseen.
There are several third parties that sell plugins that add functionality such as new control types that are not already built in as well as numerous functions. One plugin set adds over 10,000 functions alone spanning OS X, Windows and Linux. There are several libraries of free code available that extend REALbasic in additional ways.
With the good...
With all the great things in REALbasic there are unfortunately some downsides and areas where REAL could improve the IDE. The project viewer does not allow you to select more than one class or module at a time to export or encrypt. This can be a real annoyance if you have a large number of items to export or encrypt.
Find has two different interfaces and options that sometimes overlap in functionality. REAL would do well to consolidate this into a single Find to reduce confusion.
Some of the online documentation lags behind the product and new functions or corrected examples can be missing or incorrect. The Users Guide is regularly updated so items that may not be listed in the online reference can often be found there.
Fortunately, REAL Software has publicly accessible forums, mailing lists and a feedback and bug reporting system. REAL Software has an archive of all the emails to the lists that can be readily searched for answers. And many of the list and forum members have web sites that you can find additional help and code on the help you learn REALbasic quickly.
Every Cloud has a Silver Lining
Of course, some of those downsides are minor compared to the good points. REALbasic is one of only a very small number of tools where you can take one set of code and create applications for Windows, Linux and OS X from the same source code. Even better, you can do this from any of the platforms REALbasic supports. Most of the other tools are either significantly more expensive or produce an intermediate compiled code, like Java does, that is run using a virtual machine of some kind. REALbasic compiles true, native executables for each platform.
REALbasic also has a great visual designer that makes it easy for anyone to lay out an interface and implement the required logic to make it behave as desired.
As a software developer, it's important to me that REALbasic has improved the speed of the edit/compile/debug cycle. This lets me make changes incrementally, see their effect and keep working. This quick turn around is further enhanced by recent changes in REALbasic 2007r2.
Perhaps the best thing about REALbasic is that the learning curve is very low. You don't have to spend several weeks or months learning frameworks and tools just to produce a fairly simple application. REALbasic is easy to learn and yet very powerful.
Conclusion
REALbasic has come a long way from its initial roots as a Mac only product written entirely in C and C++ to the point where REAL software is using the current version of REALbasic to create the next version of REALbasic. While there are upsides and downsides, no development environment is without its faults. The important thing is this: as with any programming tool, the only real limitation is your creativity and imagination.
Norman Palardy has worked with SQL databases since 1992, and has programmed in C, C++, Java, REALbasic and other languages on a wide variety of platforms. In his 15+ years of IT experience, Norman has developed innovative and award-winning applications for TransCanada Pipelines, Minerva Technologies (now XWave), Zymeta Corporation, and the dining and entertainment industry. He holds a BSc from the University of Calgary in Alberta.