Delphi XE2 y Multiplataforma

Realmente la nueva versión de Delphi, la XE2, me tiene más que entusiasmado.

Una de las características más saltantes, es en definitiva el soporte multiplataforma.

Delphi no es nuevo en este sentido, ya hace varios años atrás tuvo un ingreso promisorio pero fallido en el terreno de Linux con Kylix, que no era sino Delphi para Linux, toda la IDE completa funcionando sobre esta plataforma. En aquella época la solución a la compatibilidad de entornos gráficos se hizo reemplazando la VCL, que está atada a la API de Windows, con CLX una versión multiplataforma basada en Qt. Sin embargo en ese momento Borland/CodeGear no pudo lograr mantener el producto en el tiempo y finalmente fue dado de baja. Se que hasta hoy hay desarrolladores que siguen trabajando con Kylix, haciendo mantenimiento a software legacy.

Luego de la debacle de Kylix, y como tenía cierta base instalada, surgió un producto llamado CrossKylix, que ofrece desde Delphi para Windows, compilar para Linux usando el compilador por línea de comandos del Kylix. Este tuvo cierta aceptación, pero su creador no fue bien visto a ojos de Borland/CodeGear.

Ya desde el 2008 se vienen escuchando pasos con respecto al soporte multiplataforma. Por supuesto la primera y más obvia petición de los desarrolladores era algo tan sencillo como compilación para Win64, algo que los usuarios de VisualStudio y Java ya gozaban.

En ese momento Delphi toma una decisión interesante: debian cambiar el concepto de su propio compilador, necesitaban un Cross Compiler, es decir que desde el propio Delphi para Windows (x32) se pudiera compilar para diversas plataformas. Es por esto que el soporte para Win64 a demorado tanto tiempo, para que éste encajara en la nueva arquitectura del compilador.

Delphi XE2 viene con esta tecnología de Cross Compiler, ahora uno va a poder programar en el Delphi para Windows de siempre y compilar para:

  • Win32
  • Win64
  • Mac OS X
  • iOS (!!!!)

y producir aplicaciones nativas. Como se ve no hay Delphi para Mac, es el Delphi para Windows compilando para Mac. Nótese que para el caso de Mac y iOS por restricciones (me parece) de Apple es necesario producir el ejecutable final con la herramienta propia de Apple, el XCode, pero sin necesidad de escribir una sola línea en el oscuro Objective-C.

Bajo esta nueva arquitectura la parte visual multiplataforma esta soportada por el nuevo Firemonkey, para poder ver en acción al nuevo Delphi pueden darle una mirada a este video en el blog de Andreano Lanusse:

En el reporte que hiciera Joylon Smith sobre el lanzamiento de Delphi XE2 en Auckland, indica también lo siguiente:

  • Native Android apps – using PhoneGap in RadPHP
  • Native Android apps – to come in the future for Delphi (as well as Linux)

Ajá!!! Con la nueva versión de RadPHP también se podrá compilar para Android, empleando como intermediario PhoneGap, este producto muy interesante permite crear aplicaciones en HTML5 que puedan usar las API nativas de varias plataformas (como Android por ejemplo).

Sin embargo gracias a la tecnología del Cross Compiler, va a ser posible en corto tiempo tener un compilador nativo para Android. Recordemos que si bien la plataforma de desarrollo  de Android es Java, el corazon del robot verde no es si no Linux, y que además Android provee una API para hacer código nativo empleando NDK (Native Development Kit), que es en C o C++.

Mmmm muy interesante, si el Cross Compiler puede generar código nativo para Android y siendo Mac un sobrino de Unix (sus origenes se remontan a FreeBSD y NetBsd), no debería ser ningún problema crear ejecutables nativos para Linux.

Por qué el soporte para Mac llegó antes que el soporte para Linux? bueno acá entramos al terreno de las suposisciones. La mía es primero que Mac tiene desarrolladores más dispuestos a pagar que los de Linux, segundo que Firemonkey (en su encarnación por parte de KSDev) ya estaba maduro en Mac cuando Embarcadero lo adquirió y tercero me parece que hay algunos  desarrolladores en Embarcadero que usan Mac como plataforma principal (aunque trabajan sobre Windows en forma virtualizada).

Se vienen tiempos interesantes para Delphi, el soporte para Mac OS X y especialmente para iOS definitivamente atraerá miradas…

Delphi XE2 y Firemonkey

Bueno, poco a poco van apareciendo más detalles de la nueva versión de Delphi, la XE2.

Ahora tenemos más detalles de Firemonkey y hasta un logo!! FireMonkey-Medium

Andreano Lanusse ha publicado un blog con más detalles interesantes y hasta un par de screenshoots. Por lo que yo entiendo con Firemonkey no tenemos componentes nativos como en la VCL (que seguirá existiendo), si no que todos son dibujados por este framework. Lo bueno de esto es que se consigue libertad absoluta sobre el diseño del control. Otro punto interesante es el soporte en Firemonkey de Styles, que al igual que CSS permitirá crear temas y lo que es mejor aún lograr un look and feel (casi) nativo en cada plataforma, lo cual es muy importante para las aplicaciones para Mac y no herir susceptibilidades. Continúa leyendo Delphi XE2 y Firemonkey