My Top 3+1 features in the new RAD Studio 11 Alexandria

Yes, RAD Studio 11 Alexandria is finally out - now we can talk about it :-) This new release builds on the feature set of 10.4.x, enhancing existing features throughout the product. However it adds some notable features for all the feature set.

Starting from the (IMHO) nicer new splash screen - clean, polished with red on grey.

A couple of technically hard-to-do things released in this version are surely the new support for macOS on ARM (M-series Apple Silicon) and the High-DPI aware IDE which let you to use RAD on 4k+ Screens. While I’m not deeply involved in desktop development for MacOS, I very appreciate the High-DPI support - simply, it make the difference. Try it and tell me if I’m wrong.

This is an mere introduction, but here’s the time for my…

Top 3+1 features in strictly random order!

1) High-DPI support with a new set of high-res icons

The debugger is the developer best friend, we all know, and up to 10.4.2 the debugger icons with the dask theme were not drawn correctly. Probably those icons were designed before the “dark theme everywhere” era, so the borders don’t get drawn very well on dark backgrounds (you know, the breakpoint bullet in the left gutter, the small arrow which indicates the line currently executed and so on). Now, with the new High-DPI support come a new set of high-res icons too which make the debugger experience more pleasant, at least for the programmer’s eyes.

As you can see the icons works nicely even in dark mode. Good job.

2) Delphi language improvements to write binary and decimal numbers

As those of you which know me already known, I’m a big fan of language expressivness. I really like when a programming language helps you to express you idea without much syntax noise - this is one reason because in the “interpreted languages world” I like Python. In many areas Delphi language can be improved in term of expressiveness, and I wait any beta release too see which improvement the team choose to implement. This release got two small, but nice, improvements that I already started to use:

  • literal notation for binary numbers
  • thousands separator in integers and decimals literals numbers

I’ll probably use more the first than the second. Finally I can avoid pen & paper to do my bit-masks!

Yes, I like it a lot!

3) VCL Style support in form designer

I like VCL Styles - they are a simple and elegant solution for a big UX problem. So far the VCL Styles were a run-time thing, because the style was actually applied to the UI only when the program starts. However, now, with RAD Studio 11 Alexandria, the form designer is able to show the selected style even in design-time. The design time support for VCL style is disabled by default, you need to activate an option in the Tools->options->User Interface->Form Designer to actually use it.

A little real-world form which I can show here, is the main form of an internal tool we use to handle the DMSContainer licenses (<commercial>DMSContainer is the first and only Delphi microservice container, try it for free, if you want, and read the tutorials and documentation to know how many companies started to save time and money using DMSContainer </commercial>). After enabling it, I switched from this form:

to this

It is a big step forward in the WYSIWYG approach which makes Delphi great.

I tried hard to fit just 3 things in my “Top 3” but there is always a 4th thing… so here it is

4 bonus) Record Helper for TDateTime

This is an improvement which I awaited for years. I built also my own TDateTime record helper but the nasty behavior which allows only one class/record helper active at time, blocked me to use it througly in my projects because if “tomorrow” a TDateTime helper will come directly in the RTL I could have strange behavior in my code.

Note: When the class helpers have been realesed we were in the .NET era (Delphi 8… yes, it really existed) and the class helpers have been introduced in the language to support difference between Delphi’s System.TObject and the .NET’s System.Object. At that time class helpers have been presented as a “support tool which should not be used in new projects” and it was true for that time, so it had make sense to support just the minimum necessary to get the things done. However, now class/record helpers have becomed a very powerful programing tool even for new projects, so I’d love to not have the limit of “just 1 visible at time” anymore.

The record helper for TDateTime is declared in System.DateUtils

Note: I was expecting to have TDateTimeHelper declared in the System.SysUtils like all the other helpers for the most common simple types, but it wasn’t there. There is a valid reason, I guess, but I don’t know which.

Just include System.DateUtils unit and you can access to all the new built-in method for TDateTime. I think this feature will fastly become a great tool used every day by any Delphi programmer. Good Job.

How much is difficult to migrate to Delphi 11 Alexandria?

It depends, obviously, but just before writing this post DMVCFramework, the most popular Delphi framework on github, has been updated to be compatible with the new Delphi 11 Alexandria - just a 20 minutes job to make compatible some 3rd part libraries… this is one of the reason why I love Delphi - it value your time!

Conclusions

RAD Studio 11 Alexandria consists of some new features and a lot of enhancements and quality improvements. This is a good move for Embarcadero. Obviously, there are bugs still open (as with any non trivial piece of software) however this release is another step in the right direction. Keep going Guys!

Migration Note: In the meantime DMVCFramework, the most popular Delphi framework on github, has been updated to be compatible with the new Delphi 11 Alexandria - just a 30 minutes job to make compatible some 3rd part libraries… this is one of the reason why I love Delphi - it value your time!

This is my Top 3+1 features in RAD Studio 11 Alexandria, what’s yours?

Comments

comments powered by Disqus