REAL Studio 2010 Release 3was released this week. It has the usual mix of additions, changes and bug fixes, a new compiler for RBScript, and one new beta feature that is long overdue - Cocoa!
Cocoa Support
In case you've been hiding under a rock, Apple has announced that the Carbon API's used for Mac OS X are not going to be updated at some point in the future. REAL Software embarked on a huge undertaking to rewrite REALbasic to use the Cocoa APIs rather than Carbon.
Roughly four years ago at REAL World, RS showed off a way to use Cocoa in REALbasic. It was a complicated, not very user-friendly, and not REALbasic-like in any way. It was unworkable and REAL Software went back to the drawing board.
What they found out was the converting from Carbon to Cocoa meant redoing significant parts of the guts of REAL Studio. The old event loop that worked well for the old Classic applications and Carbon doesn't for Cocoa. So a lot of things had to be rewritten. It was essentially like writing for a new platform.
The good news about Cocoa is that we finally get to see what REAL Software has been up to for what seems like forever. Cocoa is officially labeled as 'Beta' and it works - sometimes. Cocoa has some obvious bugs and needs a lot of polishing and optimizations. What RS is trying to accomplish in this release is to get Cocoa in front of more developers and get more Feedback reports. The more people poking at it the more things get reported which results in a (hopefully) better release in the future.
What this means for you: Try Cocoa and see where it fails. Report it via the Feedback app. Try again in R4.
I can't emphasize this enough: This is a beta version and it will most likely fail in some way. If you think Cocoa works for you - great. Make sure you do a lot of testing.
This sounds scary but by default your applications will NOT be Cocoa. You need to use the Build Setup dialog to build and debug for Cocoa.
Bug Fixes
While Cocoa support (even if only beta) is big news, REAL Studio has fixed some bugs. Here are some of the highlights for bug fixes:
Version Control Format users that have external encrypted items no longer have issues with overwriting (and thus zero length) files!
The bug that caused the Windows IDE to change window focus when using AutoComplete seems to have (finally) been fixed.
Speaking of AutoComplete, it now does a better job of completing properties/classes in modules.
More support for importing ActiveX controls was added.
In Windows, the TextField.SelChange event now fires properly when the selection changes.
In Windows, if a Pushbutton was activated with the Enter key, it wouldn't necessarily activate the correct pushbutton - it would always revert to the default button (regardless of which one had the focus). This has been fixed.
The PostgreSQL and MySQL plugins had updated. R2 fixed a number of things in both plugins.
New Things
RBScript is using the new LVVM compiler. It now allows several different optimization levels that control how much work is done to optimize the RBScript when it's run. The LVVM compile is a BIG deal in that it's a new compiler and the rest of REAL Studio will eventually be moved to it. It's a work in progress and RBScript is a first step.
The local Language Reference is using the same source material as the online wiki. The local version isn't updated between releases but it should have the exact same wiki data at the time of the release. This is still a work in progress and will (probably) continue to evolve for a while.
The NewMemoryBlock, NewPicture, and NewAppleEvent functions are deprecated. Their respective constructors should now be used instead.
The XML classes have been updated to use a newer set of libraries.
New EncodeHex and DecodeHex functions have been added. This is handy if you are dealing with websites that pass information via encoded hex strings.
The IDE now has a "What's New In This Release" menu option in the Help Menu. It will take you to a URL on the REAL Software website.
It is now possible to convert from Picture to MemoryBlock and back again using the new Picture.GetData and Picture.FromData functions.
In Reporting, it's no longer necessary to call RecordSetQuery to pass a recordset to a report - you can pass the report directly to the run method of the report. Some new report examples were added. Reports can also be made external to the project.
The ODBC database plugin now has some feature parity with MySQL, PostgreSQL and REAL Server plugins - it no longer blocks the REALbasic threads when calling SQLSelect and SQLExecute.
It's now possible to work with the graphics classes in console applications.
Going through the Release Notes is always recommended reading.
A Few Gotchya's
If you are a Mac user on 10.4 (Tiger), the IDE crashes at startup. This is supposed to be fixed in the upcoming 3.1 release.
RBScript with the new compiler is a question mark. I've heard of a couple of reports that exception handling is really odd using the new compiler so make sure you test, test, test before deploying.
Conclusion
So far it seems that the changes and bug fixes to the non-Cocoa parts of REAL Studio are decent. The big news is Cocoa and that it is released as a beta version. For a very few it will work but for most it won't. I seriously doubt you'll be able to deploy Cocoa applications in this release. REAL Software really needs the feedback so I urge you to try it out and kick the tires.
If you rely upon RBScript I think you should be very, very careful when deploying your applications. I can't emphasize enough that with a completely new compiler you might run into some odd situations.
REAL has already announced a 3.1 release where the Mac OS X 10.4 issue will be fixed and most likely fix some of the more obvious Cocoa problems.
In the long run, Release 3 is a transition release for Cocoa and RBScript. If you don't use RBScript the release should be fine for regular use. As with any new release, however, you should test your applications thouroughly before deploying.


