Qual é o desempenho do Delphi, do WPF .NET Framework e do Electron em comparação entre si, e qual é a melhor maneira de fazer uma comparação objetiva? A Embarcadero encomendou um white paper para investigar as diferenças entre Delphi, WPF .NET Framework e Electron para a construção de aplicativos de desktop do Windows. O aplicativo de referência – um clone da Calculadora do Windows 10 – foi recriado em cada estrutura por três voluntários Delphi Most Valuable Professionals (MVPs), um desenvolvedor WPF freelance especialista e um desenvolvedor freelance Electron especialista. Nesta postagem do blog, vamos explorar a métrica de Viabilidade de Longo Prazo, que faz parte da comparação de funcionalidade usada no white paper.
Table of Contents
Viabilidade de Longo Prazo
Quando as empresas escolhem o Delphi como sua estrutura de desenvolvimento, elas estão investindo em uma estrutura proprietária (que inclui o código-fonte da biblioteca em tempo de execução) com custos iniciais e uma taxa de atualização anual opcional. Por esse custo, eles ganham uma estrutura estável, compatível com as versões anteriores e crescente, e podem ter certeza de que os aplicativos desenvolvidos hoje terão suporte e manutenção no futuro.
O Windows Presentation Foundation com .NET Framework oferece às empresas uma estrutura econômica com o apoio total da Microsoft, mas inclui todos os desafios que as escolhas da Microsoft induzem. O WPF tem uma história mais curta do que o Delphi, mas foi liberado em 2018, o que pode dar a alguma versão dele uma perspectiva brilhante de longo prazo, apesar de seus laços com o .NET Framework proprietário para a maioria do desenvolvimento do Windows. .NET Framework 4.8 foi o último lançamento em 18 de abril de 2019, de acordo com a Microsoft.
Electron é uma plataforma de código aberto gratuita que oferece às empresas a oportunidade de desenvolver aplicativos a partir de qualquer sistema operacional importante. O futuro da Electron é incerto, entretanto. O projeto Electron é executado pelo GitHub, que agora é uma subsidiária da Microsoft. É o mais novo dos três frameworks e ainda está em fase de lua de mel. Ele carece de um IDE nativo, dando às empresas uma escolha, mas também removendo algumas conveniências como compilação integrada e bibliotecas de teste incluídas. As empresas que desenvolvem ferramentas internas teriam mais dificuldade com o Electron do que com outras estruturas.
Vamos dar uma olhada em cada estrutura.
Delphi
O Delphi tem crescido, amadurecido e se expandido desde 1995. Seu desenvolvimento mantém a compatibilidade com versões anteriores ao grau que um aplicativo de 1995 pode ser portado para a versão atual do Delphi com mudanças mínimas. A documentação abrangente ajuda na manutenção, e uma equipe de suporte completa está disponível para atualização, migração ou ajuda na solução de problemas. No momento em que este livro foi escrito, a versão mais recente do Delphi estava disponível no RAD Studio 10.4.1 Sydney, que foi lançado em 2 de setembro de 2020. Quer saber mais? Verifique as notas de lançamento de muitas versões do Delphi .
Para algum contexto na linha do tempo da linguagem de programação, C ++ foi lançado em 1983, Python em 1991, Java em 1995, PHP em 1995, JavaScript em 1995 e Delphi em 1995. 1995 foi um ano de nascimento para muitas dessas linguagens de programação, como você pode ver. O site de aniversário da Delphi contém um cronograma de lançamento do Delphi de 1995 até o presente. Aqui está um trecho da linha do tempo de lançamentos nos últimos 25 anos.
DELPHI 1 – 14 DE FEVEREIRO DE 1995
Suporte a Windows 3.1 de 16 bits, ferramentas visuais bidirecionais, componentes / VCL, suporte a banco de dados via BDE e links SQL, dados de banco de dados ao vivo em tempo de design
DELPHI 2 (1996)
Suporte para Windows 95 de 32 bits, grade de banco de dados, automação OLE, herança de formato visual, strings longas, Delphi 1 incluído para 16 bits
DELPHI 3 (1997)
Interfaces (baseadas em COM), Code Insight, Modelos de Componente, Depuração de DLL, WebBroker, ActiveForms, Pacotes de Componente, arquitetura MIDAS multicamadas
DELPHI 4 (1998)
Ancoragem, âncoras e restrições, sobrecarga de método, matrizes dinâmicas, suporte para Windows 98
DELPHI 5 (1999)
Layouts de desktop, frames, suporte a XML, DBGo para ADO, traduções de linguagem
DELPHI 6 (2001)
Janela de estrutura, SOAP Web Services, dbExpress, BizSnap, WebSnap, DataSnap
DELPHI 7 (2002)
Desenvolvimento de aplicativos da Web, temas do Windows XP
DELPHI 8 (2003)
Suporte .NET
DELPHI 2005 (2004)
Namespaces de várias unidades, Error Insight, guia History, for..in, Function inlining, Theme-enabled IDE, Refactorings, Wild-card in usa declaração, Data Explorer, Integrated Unit Testing
DELPHI 2006 (2005)
Sobrecarga do operador, métodos e propriedades estáticos, Diretrizes do Designer, Visualização do posicionador de formulário, Modelos de código ativo, Completação de bloco, números de linha, Barras de alteração, edição sincronizada, Dobramento de código e navegação de método, Dicas de ferramentas de depuração, Paleta de ferramentas pesquisáveis, gerenciador de memória FastMM , Suporte para MySQL, suporte Unicode em dbExpress, TTrayIcon, TFlowPanel, TGridPanel
DELPHI 2007 (2006)
MS Build, Build Events, Build Configurations, suporte para Windows Vista – glassing, theming, dbExpress 4 – pool de conexão, drivers delegados, janelas de visualização de CPU, aprimoramentos de FastCode, suporte IntraWeb / AJAX, página de boas-vindas, Sim-ship of English, French, German , Japonês
DELPHI 2009 (2008)
Unicode, genéricos, métodos anônimos, controles de faixa de opções, DataSnap, configurações de compilação, explorador de classes, janela do editor de biblioteca de tipos, suporte a PNG
DELPHI 2010 (2009)
Atributos, RTTI aprimorado, tela Direct2D, suporte para Windows 7, toque / gestos, formatador de código-fonte, pontos de interrupção específicos de thread, visualizadores de depurador, unidade IOUtils para arquivos, caminhos e diretórios, auditorias e métricas de código-fonte, compilação de plano de fundo, código-fonte para MIDAS. DLL
DELPHI XE (2010)
Regular Expression Library, Subversion Integration, dbExpress –Filters, Authentication, ProxyGeneration, JavaScript Framework, suporte REST, Indy WebBroker, Cloud – Amazon EC2, Microsoft Azure, Build Groups, Named Threads no Debugger, Auditorias de linha de comando, Metrics and Documentation Generation
DELPHI XE2 (2011)
Windows de 64 bits, Mac OSX, FireMonkey, Live Bindings – FireMonkey e VCL, VCL Styles, Unit Scope Names, Platform Assistant, DataSnap – Connectors for Mobile Devices, Cloud API, suporte HTTPS, monitoramento TCP, suporte dbExpress para drivers ODBC, implantação Gerente
DELPHI XE3 (2012)
Metropolis UI para Windows 8, 7, Vista e XP, ações FM, toque / gestos, layouts e âncoras, suporte FM para estilos de bitmap, fonte de material TM para componentes FM 3D, áudio / vídeo FM, suporte VCL / FM para dispositivos sensores, FM Componente do sensor de localização, suporte para teclado virtual, suporte para DirectX 10
DELPHI XE4 (ABRIL DE 2013)
Suporte iOS – dispositivo, simulador, loja de aplicativos iOS, suporte iOS para telas padrão e retina, estilos iOS, estilos retina, teclados virtuais, designer de formulário móvel, componente TWebBrowser, iOS ARC (contagem automática de referência) para todas as classes TObject, Platform Services, Notificações, componentes do sensor de localização, movimento e orientação, componente TListView, suporte para tela cheia Mac OSX, gerenciador de implantação para dispositivos iOS, componentes de acesso universal a dados FireDAC, InterBase – IBLite e IBToGo
DELPHI XE5 (SETEMBRO DE 2013)
Suporte para Android – dispositivos e emulador. Versões do sistema operacional: Jelly Bean, Ice Cream Sandwich e Gingerbread, componente de notificação, suporte ao estilo iOS 7, designer de formulário configurável para dispositivos móveis, gerenciador de implantação para dispositivos Android, acesso de cliente de serviços REST e componentes de autenticação, suporte Android para todos os XE4 FM e recursos de banco de dados listados acima
DELPHI XE6 (ABRIL 2014)
Estilos Windows 7 e 8.1, Acesso à nuvem RESTful WEB Services, FireDAC compatível com mais bancos de dados, Suporte InterBase totalmente integrado
DELPHI XE7 (SETEMBRO 2014)
Aplicativos FireMonkey para vários dispositivos suportam plataformas de desktop e móveis, banco de dados incorporável IBLite para Windows, Mac, Android e iOS, suporte para vários monitores, suporte para multitoque e alterações de gestos, modo imersivo de tela inteira para Android, FireMonkey oferece suporte para Pull- to-Refresh Feature para TListView no iOS e Android, FireMonkey Save State Feature
DELPHI XE8 (ABRIL 2015)
GetIt Package Manager, melhorias FireDAC, nova barra de ferramentas da comunidade Embarcadero, apresentação nativa de TListView, TSwitch, TMemo, TCalendar, TMultiView e TEdit no iOS, mapas interativos, novas opções para biblioteca de mídia, InputQuery agora suporta mascaramento de campos de entrada
DELPHI 10 ‘SEATTLE’ (AGOSTO 2015)
Suporte a Android Background Services, suporte FireDAC para o banco de dados NoSQL MongoDB, FireMonkey controla o suporte zOrder para Windows, Nova classe TBeaconDevice para transformar um dispositivo em uma das plataformas suportadas em um “beacon”, StyleViewer para Windows 10 Style in Bitmap Style Designer, High – Consciência de DPI e suporte a monitores de 4K, estilos do Windows 10, suporte para serviços Android no IDE, suporte para chamada de APIs WinRT
DELPHI 10.1 ‘BERLIM’ (ABRIL DE 2016)
Suporte para Android 6.0, suporte para Windows Desktop Bridge, Catálogo de endereços para iOS e Android, Novo ListView Item Designer, Novo controle CalendarView, QuickEdits para VCL, Suporte para alto DPI no Windows, Hint Property Changes, EMS Apache Server Support, instalador da Web baseado em GetIt
DELPHI 10.2 ‘TÓQUIO’ (MARÇO DE 2017)
Suporte Linux de 64 bits para Delphi, FireDAC fornece suporte Linux para todos os DBMS habilitados para Linux, suporte MariaDB (v5.5), suporte MySQL para v5.7 e suporte Firebird para Direct I / O, QuickEdits para FMX, Novos controles VCL para Windows 10, aparência e comportamento IDE atualizados (tema escuro), licença de implantação de servidor RAD incluída
DELPHI 10.3 ‘RIO’ (NOVEMBRO 2018)
C ++ 17 para Win32, novos recursos de linguagem Delphi, FireMonkey Android zOrder, controles nativos e API de nível 26, Windows 10, VCL e melhorias de HighDPI, modernização extensiva de interface de usuário IDE, extensão de arquitetura de servidor RAD, melhorias de qualidade e desempenho
DELPHI 10.3.1 ‘RIO’ (FEVEREIRO 2019)
Suporte expandido para dispositivos da série iOS 12 e iPhone X. RAD Server Console UI reprojeto e migração para a estrutura Ext JS (disponível via GetIt). Suporte FireDAC aprimorado para Firebird 3.0.4 e Firebird embutido. Aprimoramentos da biblioteca de cliente HTTP e SOAP no Windows. Duas novas ferramentas de produtividade IDE: Bookmarks e Navigator. 15 novos estilos personalizados de VCL Windows e FireMonkey de vários dispositivos.
DELPHI 10.3.2 ‘RIO’ (JULHO DE 2019)
Delphi macOS 64-bit, C ++ 17 para Windows 64-bit, C ++ LSP Code Insight Improvements, RAD Server Wizards e Deployment Improvements, Enhanced Firebase Android Support, Delphi Linux Client Application Support
DELPHI 10.3.3 ‘RIO’ (NOVEMBRO 2019)
Suporte Delphi para Android de 64 bits, suporte para iOS 13 e macOS Catalina (Delphi), RAD Server Docker Deployment, Enterprise Connectors in Enterprise & Architect Edition
DELPHI 10.4 ‘SYDNEY’ (MAIO 2020)
Suporte nativo do Windows de alto desempenho significativamente aprimorado, maior produtividade com conclusão de código incrivelmente rápida, código mais rápido com registros gerenciados e tarefas paralelas aprimoradas em CPUs modernas de vários núcleos, mais de 1000 melhorias de qualidade e desempenho e muito mais.
DELPHI 10.4.1 ‘SYDNEY’ (SETEMBRO 2020)
RAD Studio 10.4.1 tem um forte foco em melhorias de qualidade para IDE, Delphi Code Insight (LSP), Biblioteca Paralela, SOAP e XML, C ++ Toolchain, FireMonkey, VCL, Delphi Compiler e iOS Deployment.
WPF .NET Framework
Lançado em 2006, o WPF foi desenvolvido junto com a estrutura .NET. O código-fonte foi aberto pela Microsoft em 2018 e forneceu vários roteiros indicando o envolvimento e o crescimento da comunidade em um futuro próximo. Mudanças significativas no .NET e as decisões de mudança de design da Microsoft afetam a viabilidade de longo prazo do WPF. O WPF .NET Framework 4.8 era a versão final do .NET Framework de acordo com a Microsoft e foi lançado em 18 de abril de 2019.
O WPF foi introduzido no .NET Framework 3.0 em 2006. De acordo com um artigo no site CodeProject, as versões e aprimoramentos do WPF estão listados nesta tabela:
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 |
A seguir, um trecho da página Histórico de versões do Wikipedia .NET Framework para .NET Framework 4.6.1 a 4.8
Elétron
Lançado em 2013, Electron é desenvolvido e mantido ativamente pelo GitHub e rapidamente forneceu suporte para tecnologias emergentes como o Apple Silicon (cerca de novembro de 2020). Ele não tem o histórico e a longevidade estável necessária para determinar se os aplicativos Electron desenvolvidos em 2020 sobreviverão até 2030. O GitHub é uma subsidiária da Microsoft. Electron oferece uma alternativa gratuita para Delphi e WPF, familiaridade para desenvolvedores front-end e capacidade de plataforma cruzada ao custo de proteção IP, ferramentas IDE padrão e desempenho de aplicativo.
De acordo com o cronograma de lançamento de elétrons (https://www.electronjs.org/docs/tutorial/electron-timelines), aqui estão os lançamentos.
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 |
A Delphi oferece a perspectiva de longo prazo mais garantida, a melhor segurança de propriedade intelectual e a personalização interna mais fácil ao custo de uma compra única de licença comercial. A barreira de entrada do WPF é menor e oferece melhores opções de acessibilidade, mas está sujeito às revisões do .NET da Microsoft, é mais difícil de personalizar e pode ser descompilado com facilidade. O Electron é totalmente gratuito e pode ser desenvolvido em cada uma das três principais plataformas de desktop, mas paga por essa flexibilidade por meio de sua perspectiva incerta de longo prazo e contando com patrocínios corporativos e suporte da comunidade para desenvolvimento adicional.
Explore todas as métricas no white paper “Descobrindo a melhor estrutura de desenvolvedor por meio de benchmarking”:
Baixe o artigo gratuito Delphi vs. WPF vs. Electron para desktops Windows
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition