English Français Español
Deutsch 日本語 Italiano

Register | Forgot Password

 

Support

Why REALbasic?
By Markus Winter

What development enviroment should you use? Already you are faced with a plethora of choices: cross-platform or for Mac only? Standalone programs or ones that need a runtime? Just for fun or might it develop into something more serious?

My own requirements in a development tool were: easy to learn, good graphical user interface, cross-platform, and if possible, cheap, preferably free.

So, based upon my requirements, that excluded X-Code (though I still have it on my Mac), Tcl, Python, and a few others and left me seriously looking at REALbasic, Java, SuperCard and Revolution. I tried all of them for a few weeks and REALbasic came out on top by a mile. I had used the old HyperCard extensively and I found SuperCard and Revolution to be quite limited. I hadn’t previously appreciated the difference that a fully object-oriented language would make. Java is object-oriented and cross-platform, but it is intended mainly for web use, and is very limited. Quite honestly, Java programs look atrocious. I still haven’t seen a single Java program that looks like it is native to the platform it is running on.

X-Code is a good alternative if you (a) program for the Mac only and (b) you can stand the C language (not everyone can). But be aware that the latest version of X-Code requires Leopard and does not compile for older versions. To guarantee compatibility you'd need to install both X-Code 3 and X-Code 2.5. Or in other words: programs developed in X-Code 2.5 under Tiger will run fine on Leopard, but not necessarily the other way round.

As far as cross-platform programming goes, I think REALbasic is the best solution by far.

Is REALbasic as fast as C?

Yes and No.

REALbasic is a fantastic Rapid Application Development tool. It will usually take you far less time to write a program in REALbasic than in C. For most programs, it makes no difference if they have speed x or 2x, as the user is the slowest component in the chain and the computer waits most of the time for input from the user.

If you have time critical parts, then just write a plugin in C/C++ and REALbasic will happily accommodate it. You can also use declares to directly access APIs. And dealing directly with memoryblocks will also give you a speed boost should you need it.

That being said, you can usually write a program that runs faster in C than in REALbasic. Recently I was curious enough to try this, and my REALbasic program took about 650 milliseconds for the task, while the C program took 570 milliseconds. Was it worth the extra hassle to program it in C? No. But I can see situations where I might still go for a C plugin.

Basically it comes down to using the right tool for the job. If you need every ounce of power, like writing a Photoshop clone or doing massive computations on multiple sequence alignments where a twofold speed difference is huge and the program spends most of its time working, then go for X-Code (or write a plug-in in C). If you write any normal program or a front end to a database, which is one of REALbasic's strengths, then you get results with REALbasic much faster and the difference in speed is negligible. Plus, the code is much easier to read and maintain.

Why are REALbasic programs so big?

REALbasic programs contain the whole framework - that means they are completely self-contained and don’t rely on other bits being installed on your computer (like C# programs). Yes, that means a program doing nothing looks pretty big - and the situation is aggravated on the Mac where Universal programs need to contain both PPC and Intel code.

But the truth is that the size after that doesn’t increase much as you add your code. And it has one advantage which beats the increased download size: I can run the program without an installer. Anyone who is on a "managed system" where it does not let you install anything knows what I’m talking about. My REALbasic programs will run straight out of the box, no installation necessary, even from a USB stick.

Is REALbasic buggy?

Sure it is. So is X-Code. VisualBasic. C#. MacOS X. And don’t get me started on Word and Windows.

Any complex program contains bugs. But the big question is: are there bugs which make the program unfit for it's purpose? So-called show stopper bugs? And there the answer is a resounding NO. That doesn't mean that there aren't some bugs that can make you swear and pull your hair out, but there are usually ways around them.

Furthermore, most "bugs" I've come across turn out to be errors in my code, so I’m more careful about mouthing off and ask politely first.

For a comparison let’s have a look at MacOS X 10.5 Leopard:

Now the forthcoming MacOS 10.5.7 update has over 80 bug fixes - anyone think 10.5.6 is unusable?

People still want to complain that 10.3 is no longer updated. Gee - get over it. At some point you always have to pay for new features and bug fixes ... I am looking forward to the new MacOS X 10.6 Snow Leopard, which will drop support for G4 and G5 Macs and only run on Intel Macs.

Can I compile for OS9?

Amazingly we still have quite a few old Macs running OS9 around. And about 10% of my users are still on OS9 (other developers report a similar percentage). If you want to compile for OS9 then you need to use 2007R4 or earlier for the compilation.

I have several versions of REALbasic on my Mac and the same code runs fine in all of them.

I should point out that dropping OS9 support in REALbasic isn't a complaint - REAL Software supported OS9 much longer than Apple did.

Can REALbasic be extended?

Yes. There are several high quality plug-in developers, among which the Einhugur plug-ins and the Monkeybread Collection are especially noteworthy. The Monkeybread Collection has around 22,000 functions to extend REALbasic - you can buy the whole collection (at a sizeable discount) or just the modules you need (quite inexpensive). Have a look at the tutorial videos - the Chart Director plug-in is amazing.

Other very well regarded third party plug-ins are:

There are many more available, some even for free. RBgarage lists quite a few.

Can I do everything with REALbasic?

No. No matter how hard you try you can’t make a decent cup of coffee with it.

Sorry, but the question is too general to be meaningful. You could ask "Can I do everything with X-Code" and the answer would still be "No" - for example you can't compile for Windows or Linux.

But REALbasic can and there are some compromises that must be made. Not everything is supported on all platforms - mainly because there is no equivalent on the other platforms. But the same applies to Java to a much greater extent and strangely enough you don’t hear people complaining that Java can’t do everything.

Basically anything you want to do can be done and REALbasic even supports a large amount of platform specific items, like AppleEvents or Spotlight on the Mac or RegistryItems and TrayItems on Windows. But then using them defeats the purpose of a cross-platform development tool somewhat. It is, however, good practice to support some platform specific conventions which can easily be done with conditional statements like:

#If TargetWin32
//Windows specific code here
#ElseIf TargetMacOS
//Macintosh code goes here.
#ElseIf TargetLinux
//Linux code goes right here.
#EndIf

What’s the greatest strength of REALbasic?

Definitely the support both from the developers and the user community. Where else do you have the CEO answering questions directly, the developers pitching in with advice on the forums and mailing lists, and an immense number of users eager to help you with your problems? The only other community where I experienced similar support (but not quite as good) is the RapidWeaver forums.

What are the greatest weaknesses of REALbasic?

For me it is the lack of a better EditField control - the current one supports styled text (bold, italic, underlign, alignment, colour, fonts, size) but super/subscripts are missing (though there are third party plug-ins supplying these features). And it is slow when using large texts. But then I rarely use more than 100,000 characters in a text. Actually, once a week I need to clean up a text with about 160,000 characters which then takes about 3 seconds. I can live with that.

Another sore point is that the documentation is lacking. With the Rapid Release model the documentation does not always reflect all changes. But anyone who has ever had to write documentation and keep it current knows what a task that is.

What is this Rapid Release model?

Originally REAL Software released a paid REALbasic version containing new features maybe once a year and then came up with a few free bug fix releases. However, developers wanted new features quicker. So now a new release is made every 90 days. You pay once for a 12 month term and all releases in the following 12 months are paid for (sometimes 5 releases in 12 months if you time your purchase right). This has advantages and disadvantages. The introduction of new features can result in new bugs being introduced as well. Under the old model you usually ended up with a pretty bug-free version before REAL Software moved on to the next release. Under the new model you get the same amount of bug fixes but you get new features faster than you did before... and new bugs. It's a trade-off most developers seem to be happy about, though I personally preferred the older model.

Have I ever seen any REALbasic program in action?

Sure you have - although you might not have been aware of it, which is kind of the point, isn’t it? Remember the 2004 and 2008 presidential elections in the US? The election graphics shown by AP (Associated Press)? Accessing databases, collecting and collating data, making onscreen graphics and pdf flyers for hand outs - that was done with REALbasic. Have a look here.

One of my favorite programs is Bookends - it is simply the best reference manager available on any platform and leaves EndNote in the dust. And it is written in REALbasic.

Any more information?

While it is rather old and was made with an old version of REALbasic the 110 lessons at REALbasic University are an excellent starting point for anyone interested not only in REALbasic but in programming.

There are some very nice video tutorials geared towards the beginner at RBtv which give a good idea of what using REALbasic is like.

There is also the REALbasic Developer Magazine and a few books.

Anything to disclose?

I still do most of my programming in RB2007R4 as I still support quite a few OS9 users. I will however drop OS9 support in 2009 when REALbasic is making the transition to Cocoa. With support for Cocoa will also come a number of new features, including editfields that support OS level spell-checking (done by MacOSX) and access to framework-specific features like Core Animation.

What should I do now?

Simple. Download it, try it, and make up your own mind. No matter what anyone says whether they have an axe to grind or have a self-interest in a product, in the end only your own opinion matters.