Delphi soporta el desarrollo rápido de aplicaciones (RAD). Las características más destacadas son un diseñador visual y dos marcos de aplicación, VCL para Windows y FireMonkey (FMX) para el desarrollo multiplataforma.
Delphi utiliza el lenguaje de programación basado en Pascal Object Pascal creado por Anders Hejlsberg para Borland (ahora IDERA) como sucesor de Turbo Pascal. Soporta la compilación cruzada nativa para muchas plataformas, incluyendo Windows, Linux, iOS y Android.
Para soportar mejor el desarrollo para Microsoft Windows e interoperar con el código desarrollado con otras herramientas de desarrollo de software, Delphi soporta interfaces independientes del Modelo de Objetos de Componentes (COM) con implementaciones de clases contadas por referencia, y soporte para muchos componentes de terceros. Las implementaciones de interfaces pueden delegarse en campos o propiedades de las clases. Los manejadores de mensajes se implementan etiquetando un método de una clase con la constante entera del mensaje a manejar.
La conectividad de la base de datos está ampliamente soportada a través de componentes de acceso a bases de datos y VCL.
Las versiones posteriores han incluido rutinas de biblioteca en tiempo de ejecución actualizadas y mejoradas, algunas proporcionadas por el grupo comunitario FastCode.
CaracterísticasEditar
Delphi utiliza un lenguaje de programación de alto nivel fuertemente tipado, destinado a ser fácil de usar y originalmente basado en el anterior lenguaje Object Pascal. Pascal se desarrolló originalmente como un lenguaje de propósito general «adecuado para expresar las construcciones fundamentales conocidas en ese momento de forma concisa y lógica», y «su implementación debía ser eficiente y competitiva con los compiladores FORTRAN existentes», pero sin facilidades de programación de bajo nivel ni acceso al hardware. Turbo Pascal y sus descendientes, incluido Delphi, admiten el acceso al hardware y la programación de bajo nivel, con la posibilidad de incorporar código escrito en lenguaje ensamblador y otros lenguajes. La orientación a objetos de Delphi sólo presenta polimorfismo basado en clases e interfaces. Las metaclases son objetos de primera clase. Los objetos son en realidad referencias a los objetos (como en Java), que Delphi desreferencia implícitamente, por lo que no suele ser necesario asignar manualmente memoria para los punteros a objetos o utilizar técnicas similares que necesitan algunos otros lenguajes. Hay tipos de cadenas dedicados a contar con referencias, y también cadenas con terminación nula.
Las cadenas se pueden concatenar utilizando el operador ‘+’, en lugar de utilizar funciones. Para los tipos de cadena dedicados, Delphi maneja la gestión de la memoria sin la intervención del programador. Desde Borland Developer Studio 2006 existen funciones para localizar fugas de memoria.
Delphi incluye un IDE integrado. Todos los productos Delphi se suministran con una biblioteca de tiempo de ejecución (RTL) y una biblioteca de componentes visuales (VCL), que incluye la mayor parte de su código fuente. Existen componentes de terceros (a veces con el código fuente completo) y herramientas para mejorar el IDE o para otras tareas de desarrollo relacionadas con Delphi, algunas de ellas gratuitas. El IDE incluye una interfaz gráfica de usuario para la localización y traducción de los programas creados, que puede ser desplegada a un traductor; también existen herramientas de terceros con más funciones para este fin. El marco de trabajo de la VCL mantiene un alto nivel de compatibilidad de fuentes entre versiones, lo que simplifica la actualización del código fuente existente a una versión más reciente de Delphi. Las bibliotecas de terceros suelen necesitar actualizaciones del proveedor pero, si se suministra el código fuente, puede bastar con la recompilación con la versión más reciente. La VCL fue una de las primeras en adoptar la inyección de dependencias o inversión de control; utiliza un modelo de componentes reutilizables, extensible por el desarrollador. Con los ayudantes de clase se pueden introducir nuevas funcionalidades en las clases principales de la RTL y la VCL sin cambiar el código fuente original de la RTL o la VCL.
El compilador es optimizador y de una sola pasada. Opcionalmente puede compilar a un único ejecutable que no requiere DLLs. Delphi también puede generar DLLs estándar, DLLs de ActiveX, servidores de automatización COM y servicios de Windows.
Los IDEs de Delphi desde Delphi 2005 soportan cada vez más características de refactorización como la extracción de métodos y la posibilidad de crear modelos UML a partir del código fuente o de modificar la fuente a través de los cambios realizados en el modelo.
Delphi cuenta con comunidades en la web, donde también participan activamente sus empleados.
Compatibilidad hacia atrásEditar
Aunque cada nueva versión de Delphi intenta mantener la mayor compatibilidad hacia atrás posible para permitir la reutilización del código existente, las nuevas características, las nuevas bibliotecas y las mejoras a veces hacen que las nuevas versiones no sean 100% compatibles hacia atrás.
Desde 2016, ha habido nuevas versiones de Delphi cada seis meses, con nuevas plataformas que se añaden aproximadamente cada dos versiones.
FrameworkEdit
Delphi ofrece dos frameworks para el desarrollo de aplicaciones visuales, VCL y FireMonkey (FMX):
- Visual Component Library (VCL) es el framework para desarrollar aplicaciones puras de Windows. VCL es un marco de trabajo de larga data, incluido en la primera versión de Delphi y desarrollado activamente desde entonces.
- FireMonkey (posteriormente abreviado FMX), fue lanzado en 2011, como parte de Delphi XE2, junto con un conjunto adicional de compiladores incorporados para plataformas no Windows. FireMonkey es un framework multiplataforma para Windows, macOS, iOS, Android y Linux (x64). Las partes de la interfaz gráfica de FireMonkey se basan en gran medida en Direct3D y OpenGL. FireMonkey no es compatible con VCL; son dos frameworks distintos. Sin embargo, las aplicaciones de FireMonkey permiten compartir fácilmente las unidades de código no visual con las aplicaciones de VCL, lo que permite portar o compartir fácilmente mucho código entre las plataformas.
InteroperabilidadEdit
Delphi y su homólogo en C++, C++Builder, son interoperables. Comparten muchos componentes básicos, especialmente el IDE, los frameworks VCL y FMX, y gran parte de la librería de tiempo de ejecución. Además, pueden utilizarse conjuntamente en un proyecto. Por ejemplo, C++Builder 6 y posteriores pueden combinar el código fuente de Delphi y C++ en un proyecto, mientras que los paquetes compilados con C++Builder pueden utilizarse desde Delphi. En 2007, los productos se lanzaron conjuntamente como RAD Studio, un host compartido para Delphi y C++Builder, que puede adquirirse con cualquiera de ellos o con ambos.