The best tool is getting even better! The latest release of Delphi is to be launched this week and the support for Windows is much improved with High DPI Styles and per control styling support!
Delphi has long been a favorite tool of many Windows developers. That statement may be considered as simply wishful thinking to many people, but sometimes the truth is not as obvious as it should be. The ‘truth’ to many is that Visual Studio is the ultimate tool for Windows developers. While I may concede that truth for many C++ developers, it’s definitely debatable for .NET developers. (Simply ask a Visual Basic developer how they feel about no more language features planned.)
Many .NET developers started with WinForms back in 2002 - including a whole bunch of Delphi developers that jumped ship to the greenfields of .NET from what many consider a historical pinnacle of Delphi development, Delphi 7 (an ancient version which many developers still use today!) Some developers have stayed with WinForms over the years, but many moved to WPF and XAML in .NET 3.0 back in 2006. Others chose to take the five-year Silverlight boondoggle starting in 2007. WPF went stagnant around 2013 as the year prior Microsoft released Metro Apps in Windows 8. Microsoft quickly shifted the label to WinRT in Windows 8.1.
By 2015, an updated app platform for Windows 10 was named UWP as the new ‘final’ solution but again the improvements didn’t help it to gain traction. Microsoft was recognizing the obvious resistance and quickly created new technologies to bridge applications across various platforms. They developed an iOS bridge, an Android bridge, a web apps bridge, and a classic Win32 desktop apps bridge. (Did you know that there still is an Objective-C for Windows?) The Android bridge is dead. While the Win32 bridge is still active, it has not been utilized much.
The new ultimate solution starting in late 2019 has been .NET Core 3.0 and most of the old technologies like WinForms are being reinvigorated to work with it (well, except Silverlight of course!) The new goal is to make “every platform feature available to every developer” to solve the “massive divide” between platforms due to the rejection of UWP. (Note that WinForms and WPF are not cross-platform options with .NET Core 3.0 so they get rejected once again.)
The very latest technology revolution unveiled by Microsoft in the last few days is Project Reunion. This is supposed to be the new way to drag all the Win32 applications into the future (something they have been trying very hard to do over the last 14+ years!) A quote from Microsoft: “The idea behind Project Reunion is that it allows developers to build one Windows application and target all 1 billion Windows devices….We’re bringing together the combined power of Win32 and UWP so developers no longer have to choose because we’re unifying these existing APIs and in some way decoupling them from the OS.”
I would pose a fairly significant question behind Microsoft’s bold statement of a billion Windows devices out there: how many applications on those billion devices are Win32 versus UWP? I’m sure Embarcadero has a strong opinion on that specific topic! To be fair, there are a few dozen people in that commune in Belize which still use Windows Phones. And there are a few thousand people using the $3,500 HoloLens headsets. (It’s $1,500 less than their first version after all so it’s bound to gain traction!) And they actually sold over 2,000 surface hub customers in the first nine months after its release in 2016. (Of course, I say most of this in jest… Microsoft has tried hard with UWP and much of their technology is very cool, but Win32 still dominates Windows.)
Meanwhile, during the many years that Microsoft has been trying to nail down the proper alternative to Win32 (including WinForms, WPF, Silverlight, Metro, WinRT, UWP, .NET Core…), the world renown Win32 powerhouse of old, Delphi 7, has consistently improved over time into its very latest incarnation: Delphi 10.4 Sydney. Microsoft is fully embracing Win32 again and if you have struggled for years trying to keep up with Microsoft technology shifts, perhaps now is the time to take another look at Delphi?
Sign up for the upcoming webinar on 10.4 Sydney on Wednesday May 27th and see what’s new! (Note that Delphi 10.3.3 is the latest version available today, check out a wiki page that I maintain with a growing number of links on the pending 10.4 release.)
Note that there are two major user interface frameworks that Delphi currently supports: VCL and FMX. (See the blog post from Jim McKeeth for a quick comparison.) The VCL framework is what Delphi has always used to target Win32. While the haggard .NET developers have struggled for years to keep up with the alphabet soup from Microsoft and their ever-changing technology shifts, the quiet VCL developers have happily leveraged the long-term, focused, continued improvements invested by Embarcadero to make their Windows applications better. You can get a visual representation of this history by viewing the History of Delphi Innovations Timeline from Embarcadero which was recently released for the 25-year anniversary of Delphi.
The bulk of your Delphi code can be used with either the VCL or FMX framework which greatly simplifies your application’s migration to another supported platform, if desired. If you decide to stick to the Windows platform (which is easy to understand given it’s huge 70+% desktop market share), either framework offered by Delphi will allow your application to be highly polished, responsive, and feel very much at home to your Windows client users. Currently, approximately 40% of Delphi users leverage FMX for cross-platform development while the remainder target Windows.
Delphi is available in four editions, including a Community edition that is free to use. For most commercial developers, the Enterprise Edition is the edition to buy, but check out the Feature Matrix to drill down into the various options available by edition. As with most business software these days, Delphi is sold on a subscription basis with an annual renewal fee. Click here to start a 30-day trial of the Architect Edition and take it for a spin. You could be an old Delphi 7 developer trying to support features in Windows 10, a frustrated .NET developer (especially all of those Visual Basic developers feeling abandoned), or simply someone looking to make a real decent living selling enterprise software produced by one of the most powerful tools available.
We have no choice but to wait and see how the latest idea from Microsoft to target Win32 with Project Reunion plays out. One truth that we can all accept is Microsoft will never stop pushing new or re-branded technologies to keep market share for Windows as high as possible. Another is that Embarcadero will always work hard to keep VCL the very best Windows framework available. If Project Reunion isn’t replaced by something different next year, then I’m quite certain that Delphi developers will be using it to leverage their code base well into the future. But regardless of Microsoft’s success with their latest technology shift, Delphi is an extremely powerful tool for Windows and cross-platform development today, and well into the future.
And if you are a C++ developer, did you know that RAD Studio offers a single IDE that allows you to build Delphi and C++ applications? Click here to start a 30-day free trial of RAD Studio Architect Edition.
Some highlights from Delphi 10.4 Sydney:
- Improves the Windows 10 experience with the new TEdgeBrowser
- Improves High DPI support for the VCL framework
- Adds per-control styling for VCL
- Improved FMX multi-platform support such as iOS storyboard support and dependence on QTKit removed
- Adds new language features like custom managed records
- Greatly enhances Code Insight in the IDE with implementation of the Language Server Protocol
- Provides a unified memory model between VCL and FMX to greatly enhance the portability of code between the two user interface frameworks
- And even the core system libraries have been improved with new standard functions and performance optimizations.