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óvil , web y de 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 ( finalización 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. La compatibilidad con bases de datos es una característica clave y la 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 de los desarrolladores. [ cita necesaria ]
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 totalmente orientada a objetos 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 homólogo de C++ , C++Builder , son interoperables y se venden conjuntamente bajo el nombre de RAD Studio. Hay ediciones Professional, Enterprise y Architect, y las ediciones superiores tienen más funciones a un precio más alto. 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 destacadas son un diseñador visual y dos marcos de aplicaciones , VCL para Windows y FireMonkey (FMX) para 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 respaldar mejor el 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 contadas de referencia y soporte para muchos componentes de terceros. Las implementaciones de interfaz se pueden delegar a campos o propiedades de clases. Los manejadores de mensajes se implementan etiquetando un método de una clase con la constante entera del mensaje a manejar. [ cita necesaria ]
La conectividad de la base de datos es ampliamente compatible a través de componentes de acceso a la base de datos y de 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 originalmente basado en el lenguaje anterior Object Pascal. Pascal se desarrolló originalmente como un lenguaje de propósito general "adecuado 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 bajo costo. -Instalaciones de programación de nivel o acceso al hardware. Turbo Pascal y sus descendientes, incluido Delphi, admiten el acceso a hardware y 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 únicamente 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 implícitamente elimina las referencias, por lo que generalmente no hay necesidad de asignar memoria manualmente para punteros a objetos o usar técnicas similares que otros lenguajes necesitan. Hay tipos de cadenas dedicadas contadas por referencias y también cadenas terminadas en nulo.
Las cadenas se pueden concatenar utilizando el operador '+', en lugar de utilizar funciones. Para tipos de cadenas dedicadas, Delphi maneja la gestión de la memoria sin intervención del programador. Desde Borland Developer Studio 2006, existen funciones para localizar pérdidas de memoria .
Delphi incluye un IDE integrado. Todos los productos Delphi se entregan con una biblioteca de tiempo de ejecución (RTL) y una biblioteca de componentes visuales (VCL), incluida la mayor parte de su código fuente. Se encuentran disponibles componentes de terceros (a veces con código fuente completo ) y herramientas para mejorar el IDE o para otras tareas de desarrollo relacionadas con Delphi, algunas de ellas de forma gratuita. El IDE incluye una GUI para localización y traducción de programas creados que pueden implementarse en un traductor; También existen herramientas de terceros con más funciones para este fin. 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 reciente puede ser suficiente. La VCL fue una de las primeras en adoptar la inyección de dependencia o la inversión de control ; Utiliza un modelo de componentes reutilizable, extensible por el desarrollador. Con los ayudantes de clase, se pueden introducir nuevas funciones en las clases principales de RTL y VCL sin cambiar el código fuente original de RTL o VCL.
El compilador se está optimizando y es un compilador de un solo paso . Opcionalmente, puede compilarse en un único ejecutable que no requiere archivos DLL . Delphi también puede generar archivos DLL estándar, archivos 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 mediante cambios realizados en el modelo.
Delphi cuenta con comunidades en la web , donde también participan activamente sus empleados.
Delphi es uno de los lenguajes donde la compatibilidad con versiones anteriores es cercana al 100%. Aunque 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, nuevas bibliotecas y mejoras a veces hacen que las versiones más recientes sean menos del 100% compatibles con versiones anteriores.
Desde 2016, ha habido nuevos lanzamientos de Delphi cada seis meses, y se agregan nuevas plataformas aproximadamente cada segundo lanzamiento. [10]
Delphi ofrece dos marcos para el desarrollo de aplicaciones visuales, VCL y FireMonkey (FMX):
Delphi y su homólogo de C++ , C++Builder , son interoperables. Comparten muchos componentes centrales, 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 de forma conjunta en un proyecto. Por ejemplo, C++Builder 6 y posteriores pueden combinar código fuente de Delphi y C++ en un proyecto, mientras que los paquetes compilados con C++Builder se pueden usar 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 ObjetoPascalExample ; escriba THelloWorld = procedimiento de clase Put ; fin ; procedimiento HolaMundo . Poner ; comenzar Writeln ( '¡Hola, mundo!' ) ; fin ; var HolaMundo : HolaMundo ; {este es un puntero implícito} comenzar HolaMundo := HolaMundo . Crear ; { constructor devuelve un puntero a un objeto de tipo THelloWorld } HelloWorld . Poner ; Hola Mundo . Gratis ; {esta línea desasigna el objeto THelloWorld señalado por HelloWorld} fin .
Tenga en cuenta que la construcción del objeto 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 futuros planes de desarrollo. El más reciente se publicó en noviembre de 2020. [12] La versión 10.5 mencionada en la hoja de ruta de noviembre de 2020 pasó a llamarse 11.0.