Delphi XE8 is an amazing release for VCL developers, and so is C++Builder XE8. There is a plethora of new features for Windows VCL developers, in the VCL, the RTL, and in the IDE. In addition to all of the amazing new VCL and IDE features there are also significant enhancements in mobile and IoT. BUt even if you are not interested in mobile, XE8 has a lot to offer. Here is an incomplete summary.
Developer Productivity in the IDE
A significant area of enhancement in XE8 (for all developers) comes from the productivity features added to the editor and the IDE, along with significant improvements in existing subsystems (like unit testing and version control). Here is a short summary:
- GetIt package manager for seamless installation of components
- DUnitX support
- Version Insight support for Mercurial, and improved support for Git and Subversion
- IDE configuration migration tool
- Faster CHM help
- Start here page redesign
- Project statistics information
- Clipboard history
- Multi-paste support
- Stack bookmarks
- Smart keys
- Parenthesis matching
- Code structural highlight
- Castalia refactorings
- Editor selection expansion
- Flow controls highlighting
- Code navigation toolbar
- Smart symbol search
- Code analysis to track quality
By combining this easy to use component (drop it, add your application ID and it works), an easy signup process on appanalytics.embarcadero.com/ (use your existing EDN credentials), and even a free basic tier (applications startup counts), you can start tracking your users analytics in only a few minutes. This is very easy to use, and a pay-as-you-go service (official pricing coming soon).
Core RTL New Features
There are many new RTL features that VCL developers can start using right away, as they fully work on Windows. There are many enhancements in AppTethering (including support for custom encryption), Bluetooth and Bluetooth LE support you can leverage. But there is also a brand new HTTP client library, that lets you create HTTPS clients with no need to redistribute the OpenSLL library. And this also enhances the REST client library.
You can also now easily add the Box2D physics engine to your VCL applications, take advantage of the parallel library (if you are not already on XE7), and leverage many other new RTL features added over recent years, including significant optimizations.
One specific optimization that it is worth noticing, compared to XE7, is in the way TField objects of a TDatSet (or any descendant dataset) copy their data to and from the active record buffer. The net effect is a 10% to 25 increase in most existing database applications for the "data copy" operations. As a sample, I've created an application that basically duplicates records from one ClientDataSet to another one, in memory, and have obtained a significant faster execution in XE8. See below the image with the XE7 and XE8 timing (in milliseconds) and the source code of the demo:
VCL and RTL Fixes and Quality Improvements
There are also many fixes and improvements to core VCL and RTL features, including the cleanup of a few long standing issues related with font scaling in the VCL. For a list of bugs reported by customers and fixed in XE8 refer to edn.embarcadero.com/article/44358. In the list there are over 30 VCL specific improvements, plus RTL and compiler ones.
New RTL and VCL units
Finally, like I've done other times, I want to list the new RTL/Windows units added in XE8, compared to XE7. Here are the new units that a Windows/VCL developer can leverage:
- System.Analytics (interfaces)
- System.Hash (THashMD5, THashSHA1, THashBobJenkins)
- System.Win.InternetExplorer (new name for SHDocVw)
- System.Net.HttpClient (THTTPClient, IHTTPRequest, THTTPRequest, IHTTPResponse, THTTPResponse,
- System.Net.HttpClient.Win (Windows platform implementation)
- System.Net.HttpClientComponent (TNetHTTPClient and TNetHTTPRequest components)
- System.Net.Mime (TMultiPartFormData)
As you can see, it is not just a marketing claim saying that XE8 is a great release for VCL developers. There is a lot of substance to this claim, and there are many reasons to upgrade to XE8 even if you are not into mobile development. But this will also offer you a great chance to (finally?) get into mobile development!