You want to learn to program?

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

Especially the cross-platform aspect is worth considering. You might switch platforms at some point. Will all your investment in learning to program be for naught then?

For me the requirements were: easy to learn, good graphical user interface, cross-platform, and if possible cheap (preferable free)

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 - though I used the old HyperCard extensively I found SuperCard and Revolution to be quite limited, and I hadn’t previously appreciated the difference a fully object-oriented language would make. Java is object orientated and cross-platform but as it is intended mainly for web use is very limited in many aspects, and quite honestly Java programs look atrocious (I still haven’t seen a single Java program which 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

But as far as cross-platform programming goes, in my opinion REALbasic is the best solution by far.

Is REALbasic like VisualBasic?

There are many similarities in the language which should make the transition from VisualBasic to REALbasic quite easy. However object oriented programming was tacked onto VisualBasic belatedly (and rather crudely) while REALbasic is object oriented from the beginning. As such it is much cleaner and more modern.

But I’m not a VisualBasic programmer, so I let one speak instead. Read a Visual Basic programmer's
review of last year’s REALbasic from CodeGuru:

“I really like REALbasic. It seems quite powerful, it's easy to use, and its learning curve (at least for a VB6 programmer) is very short. I really wish that Microsoft had created a VB7 upgrade to VB6 rather than .Net, but REALbasic, in this programmer's estimation, is a more than sufficient "upgrade" for VB6”

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, and 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).

Even better 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 is 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 (one of REALbasics 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 from then on 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 (don’t you hate it when IT isn’t supporting your work anymore but became the masters of the house?). My REALbasic programs will run straight out of the box, no installation necessary, even from a USB stick if necessary.

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 purpose? So called show stopper bugs? And there the answer is a resounding No for REALbasic. That doesn't mean that there aren't some bugs that can make you swear and tear your hair out, but there are usually ways around it (even the RTF bug I've been bitterly complaining about could be dealt with with a free plugin. And the bug seems fixed in version 2008R4 anyway).

Furthermore most “bugs” I’ve come across turned out to be errors in my code, so in the meanwhile I’m more carefull about mouthing off and ask politely first.

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

• 10.5.1 fixed over 25 bugs (including a nasty one leading to data loss)
• 10.5.2 fixed over 10 bugs (incl 7 which could lead to arbitrary code execution)
• 10.5.3 fixed over 200 bugs (humongous update)
• 10.5.4 fixed over 20 bugs (quick update to fix the serious Adobe CS3 bug)
• 10.5.5 fixed over 70 bugs
• 10.5.6 fixed over 100 bugs

Now the forthcoming MacOS 10.5.7 update has over 100 bug fixes - anyone thinks 10.5.6 is unusable? ;-)

Or anyone still wants to complain that Apple no longer updates 10.3? Gee - get over it. At some point you always have to pay for new features and bug fixes ... I for one 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 - RS 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 cheaply). Have a look at the tutorial movies - the Chart Director plug-in is amazing.

Other very well regarded third party plug-ins are

There are many more available (many for free) - see RBgarage which 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 as such 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 extend, 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 (though it is good practise 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.

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 pinching 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. Especially Joe Strout and Aaron Ballman deserve mentioning.

The one thing which constantly baffles me though is the politeness of the REALbasic developers - following some exchanges in the newsgroup by a certain individual I would have already been fuming at his personal attacks and unjustified comments, and ready to throw some four letter words in his face, but they still kept their cool. That is simply AMAZING.

What’s 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/subscript 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 ever had to write a documentation and keep it current knows what a task that is.

What is this Rapid Release model?

Originally RS 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 RS moved on to the next release. Under the new model you get the same amount of bug fixes but 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.

One of my favourite 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 per se.

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 (best search amazon).

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, as with support for Cocoa will also come a number of new features including editfields that support OS level spell-checking (done by MacOSX), or access to framework-specific features like Core Animation.

Final thoughts?

I tried other languages a few times - not because I disliked REALbasic but because I liked some other possibilities (iPhone development with X-Code, Web programming with Java, Python is widely used in Molecular Biology) and in my experience REALbasic is simply in a league of its own. You don't see how much work REALbasic is doing for you in the background until you try another language. Go for it - it will make you appreciate REALbasic even more.

I just had a thought: the reason I always come back to REALbasic is the same reason I use a Mac - it lets me concentrate on the work I want to do without being bothered by the OS or computer language behind it.

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.

All my programs are written in REALbasic - if you’d like to know more about REALbasic then just go to the REALsoftware website.

REALbasic affiliate program:

If after trying REALbasic you decided to buy it then you can support this site and the software I develop by clicking the image left - it will take you to the REALsoftware store, and as a referrer I get a small percentage.