Real Software released Real Studio 2012 Release 1 this week. Real Software had hoped to release the new IDE user interface for R1 but significant problems delayed it to the point where releasing R1 using the old user interface made sense (and kept us from storming the castle with pitchforks).
This release is pretty solid, in my opinion. However, my first word of warning is about plugins. If you don’t use plugins then there’s not much to worry about but, if you’re like us and use a full compliment of plugins you might have to update your plugins before using R1.
Plugin coding rules are now enforced in R1 and if the plugin is doing things wrong error dialogs will popup, or worse the IDE will crash, when starting up Real Studio. You will need to update your plugins if you get these errors or crashes. For example, if you use Einhugur or MonkeyBread Software plugins you will most likely get errors. Both vendors have updates available for most, if not all, of their plugins. The drawback is that you might need purchase new licenses and there might be some other third party plugins that have not updated their plugins at all.
Older versions of the Real Software database plugins simply will NOT work in this version of Real Studio. This is a significant departure from previous releases where you could get away with using an older plugin despite what RS shipped with the IDE. Now, you will have to use the latest DB plugins. The opposite is also true, it is unlikely that using the newer database plugins in an older version of Real Studio will work either. While the REALSQLDatabase plugin receives a lot of attention (since it’s the default database in Real Studio), if you are dependent upon other database plugins you may want to do some testing before doing a release with this version of Real Studio (always a good idea but I think an extra note of caution might be worthwhile).
I should note that the ODBC and PostgreSQL database plugins were updated AFTER the official release of 2012 R1 and if you use them you need to download them from the Real Software extras download page at http://www.realsoftware.com/download/#extras (scroll to the bottom of page).
What’s nice about Release 1 is that Cocoa is mostly complete with a few minor (but significant) issues. The amount of work that has gone into Cocoa is staggering. There are hundreds of Cocoa fixes and changes alone – way more than I can list here. Most things now work in Cocoa and while it’s still labeled as ‘Beta’ you should really start migrating your projects where possible. The Carbon framework simply isn’t going to get many bug fixes and certainly no new features. The future is Cocoa.
One issue that popped up late in beta testing for Cocoa applications that did not get fixed for the R1 release was tab order. I’m not exceptionally familiar with the problem but it seems that setting the tab order does nothing in Cocoa apps and they’ll default to a tab order of Left to Right and Top to Bottom. As you can imagine this might make your application UI a little wonky.
For Windows, perhaps the biggest change is that you can now use WebKit. Yay! This is good news for anyone that’s suffered through HTMLViewer not acting the same between Mac (WebKit) and Windows (Internet Explorer) applications. Not all is good news however since using WebKit for Windows will add about 40 MB to your build as all of the libraries for WebKit are added to your application. It is based on Chromium Embedded so it has a few limitations such as not being able to prevent the print dialog from showing, you can’t zoom just text, and it can’t track the document load progress.
Also new in Windows is a new OLEObject constructor that can take IDispatch objects. We simply don’t do much with OLEObjects in Real Studio. Anyone out there have any experience with this tell me what it means? Does this mean that Real Studio is one step closer to being COM compliant?
New to the REALSQLDatabase class is the ability to incrementally read/write blobs. This should make it easier to deal with very large objects (pictures, files, strings, etc) without freezing your application. To take advantage of it, you need to use the REALSQLBlob class. Sadly, I don’t see an example project in the Examples folder however the WIKI does show some basic usage. For major new functions like this it would be nice to see how it is intended to be used in an example project.
A number of items were fixed in Linux. Users can now print at resolutions greater than 72 DPI. Likewise a number of other bugs were fixed.
Web Edition applications are significantly faster – especially the WebListbox. This is partially optimization and partially much better string handling. This same string handling optimization is also seen in the JSON classes which also received a number of bug fixes.
WebApplication.HandleSpecialURL still now working for cgi apps. This is good news for developers that want to use a Web Edition application a web services platform. In the 2011 R4.x release this was completely broken for cgi applications.
There are many other bug fixes and optimizations – too numerous to list here. Despite what the release notes say, WebContainers still fire their open event twice.
The WebMoviePlayer has received a number of tweaks and bug fixes. However, playing mp4 videos in FireFox in Windows is crazy hard (impossible?) to get working (at least has been for me). Part of this seems to be the movie player framework and some of it appears to be recent changes to Flash for FireFox Windows. After working with it for a while I simply gave up and recoded my Real Studio training videos for Theora Ogg encoding. It’s not ideal but it works (whereas it seems it never worked in previous releases).
The WebSession class has a few new features that are useful. The first is the AllowUnsupportedBrowser event that will tell the user their browser is unsupported. You can override this functionality by returning true. There is a new TimedOut event that tells you when the user Session has been idle as set by the new Timeout property. For mobile devices that support it, there is now an OrientationChanged event.
As you can see there are a lot of changes in 2012 R1. This makes sense as it’s been close to 9 months since the last major release. It’s kind of a drag that the decision to use the old UI took so long (announced in May at Real World) but it was the right decision. Changing the UI and the frameworks (Cocoa especially) all at the same time always seemed crazy to me (but them I’m naturally risk averse). Let’s hope that this minor one step back let’s Real Software take a couple of huge steps forward with Release 2.
Release 1, so far, seems to be solid. I don’t know if there is a dot release in the works or not but the Cocoa tab order issue might be worthy of one all by itself. I’m sure there will be a few other things found as more developers start working with it.
What say you, Real Studio friends? 2012 Release 1 working well for you? Noticing any problems?