Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Delphi Provides Long-Term Feasibility Over Ever-Changing Electron And End-of-Life WPF .NET Framework

wp1 long term

How do Delphi, WPF .NET Framework, and Electron perform compared to each other, and what’s the best way to make an objective comparison? Embarcadero commissioned a whitepaper to investigate the differences between Delphi, WPF .NET Framework, and Electron for building Windows desktop applications. The benchmark application – a Windows 10 Calculator clone – was recreated in each framework by three Delphi Most Valuable Professionals (MVPs) volunteers, one expert freelance WPF developer, and one expert Electron freelance developer. In this blog post, we are going to explore the Long-term Feasibility metric which is part of the functionality comparison used in the whitepaper.

Long-Term Feasibility

When businesses choose Delphi as their development framework, they are investing in a proprietary framework (that includes runtime library source code) with up-front costs and an optional annual update fee. For this cost, they gain a stable, backward compatible, and growing framework, and can be confident that applications developed today will be supported and maintainable in the future.

Windows Presentation Foundation with .NET Framework offers businesses an economical framework with the full backing of Microsoft but includes all the challenges Microsoft’s choices induce. WPF has a shorter history than Delphi but was open-sourced in 2018, which might give some version of it a bright long-term outlook despite its ties to the proprietary .NET Framework for most Windows development. .NET Framework 4.8 was the last release in April 18, 2019 according to Microsoft. Some people as is .NET dead?

Electron is a free, open-source platform offering businesses the opportunity to develop applications from any major operating system. Electron’s future is uncertain, however. The Electron project is run by GitHub which is now a subsidiary of Microsoft. It is the newest of the three frameworks and still in its honeymoon phase. It lacks a native IDE, giving businesses a choice but also removing some conveniences like integrated compilation and included testing libraries. Businesses developing in-house tools would have a more difficult time with Electron than the other frameworks.

Let’s take a look at each framework.

Delphi

Delphi has been growing, maturing, and expanding since 1995. It’s development maintains backward compatibility to the degree that a 1995 application can be ported to the current Delphi version with minimal changes. Comprehensive documentation aids maintenance, and a full support team is available for upgrade, migration, or troubleshooting help. At the time of this writing the latest version of Delphi is available in RAD Studio 10.4.1 Sydney which was released September 2nd, 2020. Want to find out more? Check out the release notes from many Delphi versions.

For some context on the programming language timeline C++ came out in 1983, Python came out in 1991, Java came out in 1995, PHP came out in 1995, JavaScript came out in 1995, and Delphi came out in 1995. 1995 was a birth year for a lot of these programming languages as you can see. The Delphi Anniversary website contains a Delphi Release Timeline from 1995 to the present. Here is an excerpt from the timeline of releases over the last 25 years.


DELPHI 1 – FEBRUARY 14TH, 1995

16-bit Windows 3.1 support, Visual Two-Way tools, Components / VCL, Database support via BDE and SQL Links, Database data live at design time

DELPHI 2 (1996)

32-bit Windows 95 support, Database Grid, OLE automation, Visual form inheritance, Long strings, Included Delphi 1 for 16-bit

DELPHI 3 (1997)

Interfaces (COM based), Code Insight, Component Templates, DLL Debugging, WebBroker, ActiveForms, Component Packages, MIDAS multi-tier architecture

DELPHI 4 (1998)

Docking, Anchors and Constraints, Method Overloading, Dynamic arrays, Windows 98 support  

DELPHI 5 (1999)

Desktop layouts, Frames, XML support, DBGo for ADO, Language Translations  

DELPHI 6 (2001)

Structure Window, SOAP Web Services, dbExpress, BizSnap, WebSnap, DataSnap   

DELPHI 7 (2002)

Web application development, Windows XP themes          

DELPHI 8 (2003)

.NET support                                            

DELPHI 2005 (2004)

Multi-unit namespaces, Error Insight, History Tab, for..in, Function inlining, Theme-enabled IDE, Refactorings, Wild-card in uses statement, Data Explorer, Integrated Unit Testing     

DELPHI 2006 (2005)

Operator overloading, Static methods and properties, Designer Guidelines, Form positioner view, Live code templates, Block Completion, Line numbers, Change Bars, Sync-edit, Code Folding and method navigation, Debugging Tool-Tips, Searchable Tool Palette, FastMM memory manager, Support for MySQL, Unicode support in dbExpress, TTrayIcon, TFlowPanel, TGridPanel

DELPHI 2007 (2006)

MS Build, Build Events, Build Configurations, Windows Vista support – glassing, theming, dbExpress 4 – connection pooling, delegate drivers, CPU viewer windows, FastCode enhancements, IntraWeb / AJAX support, Welcome Page, Sim-ship of English, French, German, Japanese

DELPHI 2009 (2008)

Unicode, Generics, Anonymous Methods, Ribbon Controls, DataSnap, Build Configurations, Class Explorer, Type Library Editor Window, PNG support                           

DELPHI 2010 (2009)

Attributes, Enhanced RTTI, Direct2D canvas, Windows 7 support, Touch/Gestures, Source Code Formatter, Thread Specific Breakpoints, Debugger Visualizers, IOUtils unit for files, paths and directories, Source Code Audits and Metrics, Background Compilation, Source code for MIDAS.DLL

DELPHI XE (2010)

Regular Expression Library, Subversion Integration, dbExpress –Filters, Authentication, ProxyGeneration, JavaScript Framework, REST support, Indy WebBroker, Cloud – Amazon EC2, Microsoft Azure, Build Groups, Named Threads in the Debugger, Command line Audits, Metrics and Documentation Generation

DELPHI XE2 (2011)

64-Bit Windows, Mac OSX, FireMonkey, Live Bindings – FireMonkey and VCL, VCL Styles, Unit Scope Names, Platform Assistant, DataSnap – Connectors for Mobile Devices, Cloud API, HTTPS support, TCP monitoring, dbExpress support for ODBC drivers, Deployment Manager

DELPHI XE3 (2012)

Metropolis UI for Windows 8, 7, Vista and XP, FM actions, touch/gestures, layouts and anchors, FM support for bitmap styles, TMaterial source for FM 3D components, FM audio/video, VCL/FM support for sensor devices, FM Location sensor component, Virtual keyboard support, DirectX 10 support

DELPHI XE4 (APRIL 2013)

iOS support – device, simulator, iOS app store, iOS support for standard and retina displays, iOS styles, retina styles, virtual keyboards, Mobile form designer, TWebBrowser component, iOS ARC (automatic reference counting) for all TObject classes, Platform Services, Notifications, Location, Motion and Orientation sensor components, TListView component, Mac OSX full screen support, Deployment manager for iOS devices, FireDAC universal data access components, InterBase – IBLite and IBToGo

DELPHI XE5 (SEPTEMBER 2013)

Android support – devices and emulator. OS versions: Jelly Bean, Ice Cream Sandwich, and Gingerbread, Notification component, iOS 7 style support, Configurable form designer for mobile devices, Deployment manager for Android devices, REST Services client access and authentication components, Android support for all of the XE4 FM and database features listed above

DELPHI XE6 (APRIL 2014)

Windows 7 and 8.1 styles, Acces to Cloud base RESTful WEB Services, FireDAC Compatible with more databases, Fully integrated InterBase support                           

DELPHI XE7 (SEPTEMBER 2014)

FireMonkey Multi-Device Applications Support Both Desktop and Mobile Platforms, IBLite embeddable database for Windows, Mac, Android and iOS, Multi-Display Support, Multi-Touch Support and Gestures Changes, Full-Screen Immersive Mode for Android, FireMonkey Supports the Pull-to-Refresh Feature for TListView on iOS and Android, FireMonkey Save State Feature

DELPHI XE8 (APRIL 2015)

GetIt Package Manager, FireDAC Improvements, New Embarcadero Community Toolbar, Native Presentation of TListView, TSwitch, TMemo, TCalendar, TMultiView, and TEdit on iOS, Interactive Maps, New Options for Media Library, InputQuery now Supports Masking Input Fields

DELPHI 10 ‘SEATTLE’ (AUGUST 2015)

Android Background Services Support, FireDAC support for the NoSQL MongoDB database, FireMonkey controls zOrder support for Windows, New TBeaconDevice class for turning a device on one of the supported platforms into a “beacon”, StyleViewer for Windows 10 Style in Bitmap Style Designer, High-DPI Awareness and 4K monitors support, Windows 10 styles, Support for Android Services in the IDE, Support for calling WinRT APIs

DELPHI 10.1 ‘BERLIN’ (APRIL 2016)

Android 6.0 Support, Windows Desktop Bridge Support, Address Book for iOS and Android, New ListView Item Designer, New CalendarView control, QuickEdits for VCL, High DPI Support on Windows, Hint Property Changes, EMS Apache Server Support, GetIt based Web installer

DELPHI 10.2 ‘TOKYO’ (MARCH 2017)

64-bit Linux support for Delphi, FireDAC provides Linux support for all Linux-capable DBMS, MariaDB support (v5.5), MySQL support for v5.7, and Firebird support for Direct I/O, QuickEdits for FMX, New VCL Controls for Windows 10, Updated IDE Look & Feel (Dark Theme), RAD Server Deployment License Included

DELPHI 10.3 ‘RIO’ (NOVEMBER 2018)

C++ 17 for Win32, New Delphi Language Features, FireMonkey Android zOrder, Native Controls and API Level 26, Windows 10, VCL, and HighDPI improvements, Extensive IDE UI modernization, RAD Server architecture extension, Quality and Performance improvements

DELPHI 10.3.1 ‘RIO’ (FEBRUARY 2019)

Expanded support for iOS 12 and iPhone X series devices. RAD Server Console UI redesign and migration to the Ext JS framework (available via GetIt). Improved FireDAC support for Firebird 3.0.4 and Firebird embedded. HTTP and SOAP Client Library Enhancements on Windows. Two new IDE productivity tools: Bookmarks and Navigator. 15 new custom VCL Windows and Multi-Device FireMonkey styles.

DELPHI 10.3.2 ‘RIO’ (JULY 2019)

Delphi macOS 64-bit, C++17 for Windows 64-bit, C++ LSP Code Insight Improvements, RAD Server Wizards and Deployment Improvements, Enhanced Firebase Android Support, Delphi Linux Client Application Support

DELPHI 10.3.3 ‘RIO’ (NOVEMBER 2019)

Delphi Android 64-bit support, iOS 13 and macOS Catalina (Delphi) Support, RAD Server Docker Deployment, Enterprise Connectors in Enterprise & Architect Edition

DELPHI 10.4 ‘SYDNEY’ (MAY 2020)

Significantly enhanced high-performance native Windows support, increased productivity with blazing fast code completion, faster code with managed records and enhanced parallel tasks on modern multi-core CPUs, over 1000 quality and performance enhancements, and much much more.

DELPHI 10.4.1 ‘SYDNEY’ (SEPTEMBER 2020)

RAD Studio 10.4.1 has a strong focus on quality improvements to the IDE, Delphi Code Insight (LSP), Parallel Library, SOAP & XML, C++ Toolchain, FireMonkey, VCL, Delphi Compiler, and iOS Deployment.

WPF .NET Framework

Released in 2006, WPF has developed along with the .NET framework. It was open-sourced by Microsoft in 2018 and has provided several roadmaps indicating community engagement and growth in the near future. Significant .NET changes and Microsoft’s shifting design decisions impact the long-term feasibility of WPF. WPF .NET Framework 4.8 was the final version of .NET Framework according to Microsoft and was released on April 18, 2019.

WPF was introduced in .NET Framework 3.0 in 2006. According to an article on the CodeProject website the WPF versions and enhancements are listed in this table:

WPF Version Release (YYYY-MM) .NET Version Visual Studio Version Major Features
3.0 2006-11 3.0 N/A Initial Release.
WPF development can be done with VS 2005 (released in Nov 2005) too with few additions.
3.5 2007-11 3.5 VS 2008 Changes and improvements in:
Application model, data binding, controls, documents, annotations, and 3-D UI elements.
3.5 SP1 2008-08 3.5 SP1 N/A Native splash screen support, New WebBrowser control, DirectX pixel shader support.
Faster startup time and improved performance for Bitmap effects.
4.0 2010-04 4.0 VS 2010 New controls: Calendar, DataGrid, and DatePicker.
Multi-Touch and Manipulation
4.5 2012-08 4.5 VS 2012 New Ribbon control
New INotifyDataErrorInfo interface
4.5.1 2013-10 4.5.1 VS 2013 No Major Change
4.5.2 2014-05 4.5.2 N/A No Major Change
4.6 2015-07 4.6 VS 2015 Transparent child window support
HDPI and Touch improvements

The following is an excerpt from the Wikipedia .NET Framework Version History page for .NET Framework 4.6.1 to 4.8.

.NET Framework 4.6.1 – The release of .NET Framework 4.6.1 was announced on 30 November 2015. This version requires Windows 7 SP1 or later. New features and APIs include:

.NET Framework 4.6.2 – The preview of .NET Framework 4.6.2 was announced on March 30, 2016. It was released on August 2, 2016. This version requires Windows 7 SP1 or later.

.NET Framework 4.7 – On 5 April 2017, Microsoft announced that .NET Framework 4.7 was integrated into Windows 10 Creators Update, promising a standalone installer for other Windows versions. An update for Visual Studio 2017 was released on this date to add support for targeting .NET Framework 4.7. The promised standalone installer for Windows 7 and later was released on 2 May 2017, but it had prerequisites not included with the package.

.NET Framework 4.7.1 – .NET Framework 4.7.1 was released on 17 October 2017. Amongst the fixes and new features, it corrects a d3dcompiler dependency issue. It also adds compatibility with the .NET Standard 2.0 out of the box.

.NET Framework 4.7.2 – .NET Framework 4.7.2 was released on 30 April 2018. Amongst the changes are improvements to ASP.NET, BCL, CLR, ClickOnce, Networking, SQL, WCF, Windows Forms, Workflow and WPF. This version is included with Server 2019.

.NET Framework 4.8 – .NET Framework 4.8 was released on 18 April 2019. It was the final version of .NET Framework, all future work going into the .NET Core platform that will eventually become .NET 5 and onwards. This release included JIT enhancements ported from .NET Core 2.1, High DPI enhancements for WPF applications, accessibility improvements, performance updates, and security enhancements. It supported Windows 7, Server 2008 R2, Server 2012, 8.1, Server 2012 R2, 10, Server 2016 and Server 2019 and also shipped as a Windows container image. The most-recent release is 4.8.0 Build 3928, released on July 25, 2019 with an offline installer size of 111 MB and a digital signature date of July 25, 2019.

-Wikipedia

Rolled out in November 2020, learn about the amazing transformations as well as some minute drawbacks in the .Net 5.0 framework.

Electron

Released in 2013, Electron is actively developed and maintained by GitHub and has rapidly provided support for emerging technologies like Apple Silicon (circa Nov 2020). It lacks the history and stable longevity needed to determine if Electron apps built in 2020 will survive through 2030. GitHub is a subsidiary of Microsoft. Electron offers a free alternative to Delphi and WPF, familiarity to front-end developers, and cross-platform capability at the cost of IP protection, standard IDE tooling, and application performance.

According to the Electron Release timeline ( https://www.electronjs.org/docs/tutorial/electron-timelines ) here are the releases.

Version -beta.1 Stable Chrome Node
2.0.0 2018-02-21 2018-05-01 M61 v8.9
3.0.0 2018-06-21 2018-09-18 M66 v10.2
4.0.0 2018-10-11 2018-12-20 M69 v10.11
5.0.0 2019-01-22 2019-04-24 M73 v12.0
6.0.0 2019-05-01 2019-07-30 M76 v12.4
7.0.0 2019-08-01 2019-10-22 M78 v12.8
8.0.0 2019-10-24 2020-02-04 M80 v12.13
9.0.0 2020-02-06 2020-05-19 M83 v12.14
10.0.0 2020-05-21 2020-08-25 M85 v12.16
11.0.0 2020-08-27 2020-11-17 M87 v12.18
12.0.0 2020-11-19 2021-03-02 M89 v14.x

Delphi provides the most assured long-term outlook, best intellectual property security, and easiest in-house customization at the cost of a one-time commercial license purchase. WPF’s barrier to entry is lower and it offers better accessibility options but is subject to Microsoft’s .NET overhauls, is more difficult to customize, and can be decompiled with ease. Electron is absolutely free and can be developed on each of the three major desktop platforms but pays for that flexibility via its uncertain long-term outlook and by relying on corporate sponsorships and community support for additional development.

Explore all the metrics in the “Discovering The Best Developer Framework Through Benchmarking” whitepaper:

Download the Free Delphi vs. WPF vs. Electron for Windows Desktops Whitepaper

Exit mobile version