2008r3 was release today, which marks the 20th release for me since joining Real Software! It's been over six years since I started working for RS, and what a neat trip it's been. So what's new in the latest release? A whole lot of awesomeness, that's what!
This release comes with a really useful new feature for Pro users: the profiler. The profiler allows you to get an idea of what performance problem areas there are in your application by automatically adding timing code to each method. When your application exits gracefully, then the timining information is consolidated into an easy to read graph of data telling you how much time was spent in any given method in your application (along with other information, such as the average amount of time spent in a method). You can then quickly get an idea as to where the majority of your time is spent so that you can focus your efforts on improving performance critical code.
But this release also has some other goodies in it as well. For instance, the compiler now supports Attributes which allow you to set some compile-time metadata. I won't dive into this new feature too deeply right now because I've got an entire blog posting devoted to it already. ;-)
Also, Check Project/Item has been enhanced to provide you feedback about problem areas in your code a la a warning system (which is why they were renamed to be Analyze Project/Item). This allows you to easily see where you're making use of deprecated APIs, as well as other possible issues. I've also got an in-depth posting about this coming up, so I'll only tease you for right now.
This release also fixes up several stability issues that were brought to light via the automatic feedback reporting mechanism in the IDE. Some object definition converter bugs were reported during 2008r2 that affected a large portion of our userbase which have been fixed for 2008r3. Also, you should find that exception stability on Windows has been improved greatly.
I think 2008r3 is a very exciting release with a good mix of stability improvements as well as new functionality. It's also pretty cool that it's my 20th release, which is quite a milestone to hit! But it's not the only milestone I expect to hit this year. I'll leave you to speculate what other major milestone I might be talking about, because rampant speculation is fun! ;-)
Milestone.... hmmm... personal or professional?
@Brad -- could be a bit of each. ;-)
Just got bitten by the "fix" in 2008r3 - "371: Types within Classes". I had to move around the structures from the supporting modules to the class itself to get declares to work. Great addition to the language that we are finally able to collect all stuff in a class.
@Mattias -- I'm glad you like that new feature, it will certainly come in handy.
@Aaron -- The system with additional modules got quite messy on large projects and this is great and makes code re-use much easier.
Speculation? Conception.
2008r3 is great so far (we won't mention the Einhugur issue). The auto-constructor-fix is great for non-encrypted items, but the IDE botched my encrypted item. However, since the project was in VC format, it was able to be salvaged.
I too am so happy to see the new "types within classes" feature. It will help me tidy up tons of structs, and enums and put then nearest to where they belong.
Now why not go just a little further and support Classes
within classes too :) If only to make give my in-house C++ > RB converter less headaches when dealing with such stuff! In addition there are often cases where one needs a "helper" class that will only ever be used with/inside its "parent" class, so it would make sense to place the "helper" inside the scope of the parent. This would also tidy up things a little and avoid us having to use lots of module namespaces to do the same sort of thing - which imo is sometimes overkill.