Delphi es un lenguaje de programación de propósito general y un producto de software que utiliza el dialecto Delphi del lenguaje de programación Object Pascal y proporciona un entorno de desarrollo integrado (IDE) para el desarrollo rápido de aplicaciones de software de escritorio, móviles , web y consola , [3] actualmente desarrollado y mantenido por Embarcadero Technologies .
Los compiladores de Delphi generan código nativo para Microsoft Windows , macOS , iOS , Android y Linux ( x64 ). [4] [5] [6]
Delphi incluye un editor de código, un diseñador visual, un depurador integrado, un componente de control de código fuente y soporte para complementos de terceros . El editor de código incluye Code Insight ( completado de código ), Error Insight (verificación de errores en tiempo real) y refactorización . El diseñador de formularios visuales tiene la opción de utilizar la Biblioteca de componentes visuales (VCL) para el desarrollo puro de Windows o el marco FireMonkey (FMX) para el desarrollo multiplataforma. El soporte de bases de datos es una característica clave y lo proporciona FireDAC (Componentes de acceso a bases de datos). Delphi es conocido por su rápida velocidad de compilación, código nativo y productividad para desarrolladores. [ cita requerida ]
Delphi fue desarrollado originalmente por Borland como una herramienta de desarrollo rápido de aplicaciones para Windows como sucesor de Turbo Pascal . Delphi agregó programación orientada a objetos completa al lenguaje existente, y el lenguaje ha crecido para admitir genéricos, métodos anónimos , cierres y compatibilidad nativa con el Modelo de objetos componentes (COM).
Delphi y su contraparte en C++ , C++Builder , son interoperables y se venden conjuntamente bajo el nombre de RAD Studio. Existen ediciones Professional, Enterprise y Architect, y las ediciones superiores tienen más funciones a un precio más elevado. También existe una edición Community gratuita, con la mayoría de las funciones de Professional, pero restringida a usuarios y empresas con bajos ingresos. [7]
Delphi admite el desarrollo rápido de aplicaciones (RAD). Las características más destacadas son un diseñador visual y dos marcos de aplicaciones : Visual Component Library (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. Admite compilación cruzada nativa para muchas plataformas, incluidas Windows, Linux, iOS y Android.
Para brindar un mejor soporte al desarrollo para Microsoft Windows e interoperar con el código desarrollado con otras herramientas de desarrollo de software, Delphi admite interfaces independientes del Modelo de objetos componentes (COM) con implementaciones de clases de conteo de referencias y compatibilidad con muchos componentes de terceros. Las implementaciones de interfaces se pueden delegar en campos o propiedades de clases. Los controladores de mensajes se implementan etiquetando un método de una clase con la constante entera del mensaje que se va a manejar. [ cita requerida ]
La conectividad de la base de datos está ampliamente respaldada por componentes de acceso a la base de datos y reconocimiento de bases de datos VCL.
Las versiones posteriores han incluido rutinas de biblioteca de tiempo de ejecución mejoradas y actualizadas, algunas proporcionadas por el grupo comunitario FastCode .
Delphi utiliza un lenguaje de programación de alto nivel fuertemente tipado , pensado para ser fácil de usar y basado originalmente en el lenguaje Object Pascal. Pascal fue desarrollado originalmente como un lenguaje de propósito general "apropiado para expresar las construcciones fundamentales conocidas en ese momento de una manera concisa y lógica", y "su implementación debía ser eficiente y competitiva con los compiladores FORTRAN existentes" [8] pero sin facilidades de programación de bajo nivel o acceso a hardware. Turbo Pascal y sus descendientes, incluido Delphi, admiten el acceso a 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 presenta solo polimorfismo basado en clases e interfaces . [9] Las metaclases son objetos de primera clase. Los objetos son referencias a los objetos (como en Java ), que Delphi desreferencia implícitamente, por lo que generalmente no hay necesidad de asignar manualmente memoria para punteros a objetos o usar técnicas similares que necesitan otros lenguajes. Hay tipos de cadena con recuento de referencias dedicados y también cadenas terminadas en nulo.
Las cadenas se pueden concatenar utilizando el operador '+', en lugar de utilizar funciones. Para tipos de cadenas dedicados, Delphi se encarga de la gestión de 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 de Delphi se entregan 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. Hay disponibles 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 programas creados que se pueden implementar en un traductor; también hay herramientas de terceros con más funciones para este propósito. El marco VCL mantiene un alto nivel de compatibilidad de código fuente entre versiones, lo que simplifica la actualización del código fuente existente a una versión más nueva de Delphi. Las bibliotecas de terceros normalmente necesitan actualizaciones del proveedor pero, si se proporciona el código fuente, la recompilación con la versión más nueva puede ser suficiente. VCL fue una de las primeras en adoptar la inyección de dependencia o inversión de control ; utiliza un modelo de componentes reutilizable, extensible por el desarrollador. Con los ayudantes de clase, se puede introducir nueva funcionalidad en las clases RTL y VCL principales sin cambiar el código fuente original de RTL o VCL.
El compilador optimiza y es un compilador de una sola pasada . Opcionalmente, puede compilar en un único ejecutable que no requiere DLL . Delphi también puede generar DLL estándar, DLL ActiveX , servidores de automatización COM y servicios de Windows .
Los IDE de Delphi desde Delphi 2005 admiten cada vez más funciones de refactorización como la extracción de métodos y la posibilidad de crear modelos UML a partir del código fuente o modificar el código fuente a través de cambios realizados en el modelo.
Delphi tiene comunidades en la web , donde también participan activamente sus empleados.
Delphi es uno de los lenguajes en los que la compatibilidad con versiones anteriores es cercana al 100 %. Si bien cada nueva versión de Delphi intenta mantener la mayor compatibilidad posible con versiones anteriores para permitir la reutilización del código existente, las nuevas características, bibliotecas y mejoras a veces hacen que las versiones más nuevas sean menos compatibles del 100 % con versiones anteriores.
Desde 2016, se han publicado nuevos lanzamientos de Delphi cada seis meses y se han añadido nuevas plataformas aproximadamente cada segundo lanzamiento. [10]
Delphi ofrece dos marcos para el desarrollo de aplicaciones visuales, VCL y FireMonkey (FMX):
Delphi y su contraparte en C++ , C++Builder , son interoperables. Comparten muchos componentes básicos, en particular el IDE, los marcos VCL y FMX, y gran parte de la biblioteca de tiempo de ejecución . Además, se pueden utilizar conjuntamente en un proyecto. Por ejemplo, C++Builder 6 y versiones posteriores pueden combinar código fuente de Delphi y C++ en un proyecto, mientras que los paquetes compilados con C++Builder se pueden utilizar desde Delphi. En 2007, los productos se lanzaron conjuntamente como RAD Studio, un host compartido para Delphi y C++Builder, que se puede comprar con uno o ambos. A partir de Rio, también existe interoperabilidad con Python.
programa ObjetoPascalEjemplo ; tipo THelloWorld = clase procedimiento Put ; fin ; procedimiento THelloWorld . Put ; begin Writeln ( '¡Hola, mundo!' ) ; end ; var HelloWorld : THelloWorld ; { este es un puntero implícito } begin HelloWorld := THelloWorld . Create ; { el constructor devuelve un puntero a un objeto de tipo THelloWorld } HelloWorld . Put ; HelloWorld . Free ; { esta línea desasigna el objeto THelloWorld al que apunta HelloWorld } end .
Tenga en cuenta que la construcción de objetos todavía está disponible en Delphi.
Delphi es el medio utilizado para enseñar programación en las escuelas sudafricanas como materia de tecnología de la información (TI). [11]
Embarcadero publica "hojas de ruta" que describen sus planes de desarrollo futuros. La más reciente se publicó en noviembre de 2020. [12] La versión 10.5 a la que se hace referencia en la hoja de ruta de noviembre de 2020 pasó a llamarse 11.0.