¿Cómo funcionan Delphi, WPF .NET Framework y Electron en comparación entre sí, y cuál es la mejor manera de hacer una comparación objetiva? Embarcadero encargó un documento técnico para investigar las diferencias entre Delphi, WPF .NET Framework y Electron para crear aplicaciones de escritorio de Windows. La aplicación de referencia, un clon de la Calculadora de Windows 10, fue recreada en cada marco por tres voluntarios de Delphi Most Valuable Professionals (MVP), un desarrollador experto independiente de WPF y un desarrollador experto independiente Electron. En esta publicación de blog, vamos a explorar la métrica de viabilidad a largo plazo, que es parte de la comparación de funcionalidad utilizada en el documento técnico.
Table of Contents
Viabilidad a largo plazo
Cuando las empresas eligen Delphi como su marco de desarrollo, están invirtiendo en un marco propietario (que incluye el código fuente de la biblioteca en tiempo de ejecución) con costos iniciales y una tarifa de actualización anual opcional. Por este costo, obtienen un marco estable, compatible con versiones anteriores y en crecimiento, y pueden estar seguros de que las aplicaciones desarrolladas hoy serán compatibles y se mantendrán en el futuro.
Windows Presentation Foundation con .NET Framework ofrece a las empresas un marco económico con el respaldo total de Microsoft, pero incluye todos los desafíos que inducen las elecciones de Microsoft. WPF tiene una historia más corta que Delphi, pero fue de código abierto en 2018, lo que podría darle a alguna versión una perspectiva brillante a largo plazo a pesar de sus vínculos con el .NET Framework propietario para la mayoría de los desarrollos de Windows. .NET Framework 4.8 fue la última versión el 18 de abril de 2019 según Microsoft.
Electron es una plataforma gratuita de código abierto que ofrece a las empresas la oportunidad de desarrollar aplicaciones desde cualquier sistema operativo importante. Sin embargo, el futuro de Electron es incierto. El proyecto Electron está dirigido por GitHub, que ahora es una subsidiaria de Microsoft. Es el más nuevo de los tres marcos y aún está en su fase de luna de miel. Carece de un IDE nativo, lo que brinda a las empresas una opción, pero también elimina algunas comodidades como la compilación integrada y las bibliotecas de prueba incluidas. Las empresas que desarrollan herramientas internas tendrían más dificultades con Electron que con los otros marcos.
Echemos un vistazo a cada marco.
Delphi
Delphi ha estado creciendo, madurando y expandiéndose desde 1995. Su desarrollo mantiene la compatibilidad con versiones anteriores en la medida en que una aplicación de 1995 se puede migrar a la versión actual de Delphi con cambios mínimos. La documentación completa ayuda al mantenimiento, y un equipo de soporte completo está disponible para ayudar con la actualización, la migración o la resolución de problemas. En el momento de escribir este artículo, la última versión de Delphi está disponible en RAD Studio 10.4.1 Sydney, que se lanzó el 2 de septiembre de 2020. ¿Desea obtener más información? Consulte las notas de la versión de muchas versiones de Delphi .
Para algo de contexto en la línea de tiempo del lenguaje de programación, C ++ salió en 1983, Python salió en 1991, Java salió en 1995, PHP salió en 1995, JavaScript salió en 1995 y Delphi salió en 1995. 1995 fue un año de nacimiento para muchos de estos lenguajes de programación, como puede ver. El sitio web del aniversario de Delphi contiene una línea de tiempo de lanzamiento de Delphi desde 1995 hasta el presente. A continuación, se incluye un extracto de la cronología de los lanzamientos de los últimos 25 años.
DELPHI 1 – 14 DE FEBRERO DE 1995
Compatibilidad con Windows 3.1 de 16 bits, herramientas visuales bidireccionales, componentes / VCL, compatibilidad con bases de datos a través de enlaces BDE y SQL, datos de bases de datos en vivo en tiempo de diseño
DELPHI 2 (1996)
Compatibilidad con Windows 95 de 32 bits, cuadrícula de base de datos, automatización OLE, herencia de formas visuales, cadenas largas, Delphi 1 incluido para 16 bits
DELPHI 3 (1997)
Interfaces (basadas en COM), Code Insight, Plantillas de componentes, Depuración de DLL, WebBroker, ActiveForms, Paquetes de componentes, Arquitectura de varios niveles MIDAS
DELPHI 4 (1998)
Acoplamiento, anclajes y restricciones, sobrecarga de métodos, matrices dinámicas, compatibilidad con Windows 98
DELPHI 5 (1999)
Diseños de escritorio, marcos, compatibilidad con XML, DBGo para ADO, traducciones de idiomas
DELPHI 6 (2001)
Ventana de estructura, servicios web SOAP, dbExpress, BizSnap, WebSnap, DataSnap
DELPHI 7 (2002)
Desarrollo de aplicaciones web, temas de Windows XP
DELPHI 8 (2003)
Soporte .NET
DELPHI 2005 (2004)
Espacios de nombres de unidades múltiples, Insight de errores, Ficha Historial, for..in, Función en línea, IDE habilitado para temas, Refactorizaciones, Comodín en declaración de usos, Explorador de datos, Pruebas unitarias integradas
DELPHI 2006 (2005)
Sobrecarga del operador, métodos y propiedades estáticos, pautas del diseñador, vista del posicionador de formularios, plantillas de código en vivo, finalización de bloques, números de línea, barras de cambio, edición sincronizada, plegado de código y navegación de métodos, sugerencias de herramientas de depuración, paleta de herramientas de búsqueda, administrador de memoria FastMM , Soporte para MySQL, Soporte Unicode en dbExpress, TTrayIcon, TFlowPanel, TGridPanel
DELPHI 2007 (2006)
MS Build, Build Events, Build Configurations, Windows Vista support – glassing, tematización, dbExpress 4 – agrupación de conexiones, controladores delegados, ventanas de visor de CPU, mejoras de FastCode, compatibilidad con IntraWeb / AJAX, página de bienvenida, Sim-ship de inglés, francés, alemán , Japonés
DELPHI 2009 (2008)
Unicode, genéricos, métodos anónimos, controles de cinta, DataSnap, configuraciones de compilación, explorador de clases, ventana del editor de biblioteca de tipos, compatibilidad con PNG
DELPHI 2010 (2009)
Atributos, RTTI mejorado, lienzo Direct2D, compatibilidad con Windows 7, toque / gestos, formateador de código fuente, puntos de interrupción específicos de subprocesos, visualizadores de depurador, unidad IOUtils para archivos, rutas y directorios, auditorías y métricas de código fuente, compilación en segundo plano, código fuente para MIDAS. DLL
DELPHI XE (2010)
Biblioteca de expresiones regulares, integración de Subversion, dbExpress –Filtros, autenticación, generación de proxy, marco de JavaScript, compatibilidad con REST, Indy WebBroker, Cloud – Amazon EC2, Microsoft Azure, grupos de compilación, subprocesos con nombre en el depurador, auditorías de línea de comandos, generación de métricas y documentación
DELPHI XE2 (2011)
Windows de 64 bits, Mac OSX, FireMonkey, Live Bindings: FireMonkey y VCL, estilos de VCL, nombres de alcance de unidad, asistente de plataforma, DataSnap: conectores para dispositivos móviles, API en la nube, compatibilidad con HTTPS, supervisión de TCP, compatibilidad con dbExpress para controladores ODBC, implementación Gerente
DELPHI XE3 (2012)
Interfaz de usuario de Metropolis para Windows 8, 7, Vista y XP, acciones FM, toque / gestos, diseños y anclajes, soporte FM para estilos de mapa de bits, fuente de material TM para componentes FM 3D, audio / video FM, soporte VCL / FM para dispositivos sensores, FM Componente del sensor de ubicación, compatibilidad con teclado virtual, compatibilidad con DirectX 10
DELPHI XE4 (ABRIL DE 2013)
Compatibilidad con iOS: dispositivo, simulador, tienda de aplicaciones iOS, compatibilidad con iOS para pantallas estándar y retina, estilos iOS, estilos retina, teclados virtuales, diseñador de formularios móviles, componente TWebBrowser, iOS ARC (recuento automático de referencias) para todas las clases TObject, servicios de plataforma, Notificaciones, componentes de sensor de ubicación, movimiento y orientación, componente TListView, compatibilidad con pantalla completa de Mac OSX, administrador de implementación para dispositivos iOS, componentes de acceso universal a datos FireDAC, InterBase – IBLite e IBToGo
DELPHI XE5 (SEPTIEMBRE DE 2013)
Compatibilidad con Android: dispositivos y emulador. Versiones del sistema operativo: Jelly Bean, Ice Cream Sandwich y Gingerbread, componente de notificación, compatibilidad con el estilo iOS 7, diseñador de formularios configurable para dispositivos móviles, administrador de implementación para dispositivos Android, componentes de autenticación y acceso de cliente de servicios REST, compatibilidad con Android para todos los XE4 FM y las características de la base de datos enumeradas anteriormente
DELPHI XE6 (ABRIL DE 2014)
Estilos Windows 7 y 8.1, Acceso a servicios WEB RESTful basados en la nube, FireDAC Compatible con más bases de datos, Soporte InterBase totalmente integrado
DELPHI XE7 (SEPTIEMBRE DE 2014)
Las aplicaciones de dispositivos múltiples de FireMonkey son compatibles con plataformas de escritorio y móviles, base de datos integrable IBLite para Windows, Mac, Android e iOS, compatibilidad con múltiples pantallas, compatibilidad con múltiples toques y cambios de gestos, modo inmersivo de pantalla completa para Android, FireMonkey admite la función Pull- Función de actualización para TListView en iOS y Android, función de estado de guardado de FireMonkey
DELPHI XE8 (ABRIL DE 2015)
GetIt Package Manager, mejoras de FireDAC, nueva barra de herramientas de la comunidad de Embarcadero, presentación nativa de TListView, TSwitch, TMemo, TCalendar, TMultiView y TEdit en iOS, mapas interactivos, nuevas opciones para la biblioteca de medios, InputQuery ahora admite campos de entrada de enmascaramiento
DELPHI 10 ‘SEATTLE’ (AGOSTO 2015)
Compatibilidad con los servicios en segundo plano de Android, compatibilidad con FireDAC para la base de datos NoSQL MongoDB, FireMonkey controla la compatibilidad con zOrder para Windows, nueva clase TBeaconDevice para convertir un dispositivo en una de las plataformas compatibles en una “baliza”, StyleViewer para Windows 10 Style in Bitmap Style Designer, High -Conciencia de DPI y soporte para monitores 4K, estilos de Windows 10, soporte para servicios de Android en el IDE, soporte para llamar a las API de WinRT
DELPHI 10.1 ‘BERLÍN’ (ABRIL DE 2016)
Compatibilidad con Android 6.0, compatibilidad con Windows Desktop Bridge, libreta de direcciones para iOS y Android, nuevo diseñador de elementos ListView, nuevo control CalendarView, QuickEdits para VCL, compatibilidad con alto DPI en Windows, cambios en las propiedades de sugerencias, compatibilidad con EMS Apache Server, instalador web basado en GetIt
DELPHI 10.2 ‘TOKIO’ (MARZO DE 2017)
Compatibilidad con Linux de 64 bits para Delphi, FireDAC proporciona compatibilidad con Linux para todos los DBMS compatibles con Linux, compatibilidad con MariaDB (v5.5), compatibilidad con MySQL para v5.7 y compatibilidad con Firebird para E / S directa, QuickEdits para FMX, nuevos controles VCL para Windows 10, IDE Look & Feel actualizado (tema oscuro), licencia de implementación de servidor RAD incluida
DELPHI 10.3 ‘RIO’ (NOVIEMBRE 2018)
C ++ 17 para Win32, nuevas funciones del lenguaje Delphi, FireMonkey Android zOrder, controles nativos y API nivel 26, mejoras en Windows 10, VCL y HighDPI, amplia modernización de la interfaz de usuario de IDE, extensión de la arquitectura del servidor RAD, mejoras de calidad y rendimiento
DELPHI 10.3.1 ‘RIO’ (FEBRERO 2019)
Soporte ampliado para dispositivos de la serie iOS 12 y iPhone X. Rediseño de la interfaz de usuario de la consola del servidor RAD y migración al marco Ext JS (disponible a través de GetIt). Compatibilidad mejorada con FireDAC para Firebird 3.0.4 y Firebird integrado. Mejoras en la biblioteca cliente HTTP y SOAP en Windows. Dos nuevas herramientas de productividad IDE: marcadores y navegador. 15 nuevos estilos VCL personalizados de Windows y FireMonkey multidispositivo.
DELPHI 10.3.2 ‘RIO’ (JULIO 2019)
Delphi macOS de 64 bits, C ++ 17 para Windows de 64 bits, mejoras de C ++ LSP Code Insight, asistentes de servidor RAD y mejoras de implementación, compatibilidad mejorada con Firebase Android, compatibilidad con aplicaciones de cliente Delphi Linux
DELPHI 10.3.3 ‘RIO’ (NOVIEMBRE 2019)
Compatibilidad con Delphi Android de 64 bits, compatibilidad con iOS 13 y macOS Catalina (Delphi), implementación de Docker de servidor RAD, conectores empresariales en Enterprise & Architect Edition
DELPHI 10.4 ‘SYDNEY’ (MAYO DE 2020)
Compatibilidad con Windows nativa de alto rendimiento significativamente mejorada, mayor productividad con finalización de código ultrarrápida, código más rápido con registros administrados y tareas paralelas mejoradas en CPU modernas de múltiples núcleos, más de 1000 mejoras de calidad y rendimiento, y mucho más.
DELPHI 10.4.1 ‘SYDNEY’ (SEPTIEMBRE 2020)
RAD Studio 10.4.1 tiene un fuerte enfoque en las mejoras de calidad para IDE, Delphi Code Insight (LSP), Parallel Library, SOAP & XML, C ++ Toolchain, FireMonkey, VCL, Delphi Compiler e iOS Deployment.
WPF .NET Framework
Lanzado en 2006, WPF se ha desarrollado junto con .NET framework. Fue de código abierto por Microsoft en 2018 y ha proporcionado varias hojas de ruta que indican el compromiso y el crecimiento de la comunidad en el futuro cercano. Los cambios significativos en .NET y las decisiones de diseño cambiantes de Microsoft afectan la viabilidad a largo plazo de WPF. WPF .NET Framework 4.8 fue la versión final de .NET Framework según Microsoft y se lanzó el 18 de abril de 2019.
WPF se introdujo en .NET Framework 3.0 en 2006. Según un artículo del sitio web CodeProject, las versiones y mejoras de WPF se enumeran en esta tabla:
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 |
El siguiente es un extracto de la página del historial de versiones de .NET Framework de Wikipedia para .NET Framework 4.6.1 a 4.8.
Electrón
Lanzado en 2013, Electron es desarrollado y mantenido activamente por GitHub y rápidamente ha brindado soporte para tecnologías emergentes como Apple Silicon (alrededor de noviembre de 2020). Carece de la historia y la longevidad estable necesarias para determinar si las aplicaciones de Electron creadas en 2020 sobrevivirán hasta 2030. GitHub es una subsidiaria de Microsoft. Electron ofrece una alternativa gratuita a Delphi y WPF, familiaridad para los desarrolladores front-end y capacidad multiplataforma a costa de la protección IP, las herramientas IDE estándar y el rendimiento de la aplicación.
De acuerdo con la línea de tiempo de lanzamiento de electrones (https://www.electronjs.org/docs/tutorial/electron-timelines) aquí están los lanzamientos.
.
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 ofrece la perspectiva a largo plazo más segura, la mejor seguridad de propiedad intelectual y la personalización interna más sencilla al costo de una única compra de licencia comercial. La barrera de entrada de WPF es más baja y ofrece mejores opciones de accesibilidad, pero está sujeta a las revisiones de .NET de Microsoft, es más difícil de personalizar y se puede descompilar con facilidad. Electron es absolutamente gratuito y se puede desarrollar en cada una de las tres principales plataformas de escritorio, pero paga por esa flexibilidad a través de su perspectiva incierta a largo plazo y confiando en los patrocinios corporativos y el apoyo de la comunidad para un desarrollo adicional.