Overview of Free Pascal and Lazarus/es
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
magyar (hu) │
Bahasa Indonesia (id) │
italiano (it) │
日本語 (ja) │
한국어 (ko) │
polski (pl) │
português (pt) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
中文(臺灣) (zh_TW) │
Descripción de Free Pascal y Lazarus
Free Pascal (FPC) es un compilador de Pascal de código abierto con dos características notables: un alto grado de compatibilidad con Delphi y disponibilidad en una variedad de plataformas, incluyendo OS X, Windows, Mac, y Linux. La compatibilidad de Free Pascal con Delphi incluye no solamente la ayuda para el mismo lenguaje de programación Object Pascal que utiliza Delphi, sino también para muchas de las mismas bibliotecas de rutinas y de clases de gran alcance por las que Delphi es conocido. Esto incluye unidades habituales tales como System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles y Registry, que se incluyen con FREE PASCAL en todas las plataformas soportadas. Free Pascal también incluye unidades tales como Windows, ShellAPI, BaseUnix, Unix y DynLibs para acceder a características específicas de un sistema operativo. Esta docena, más o menos, de unidades se denomina generalmente como la librería de tiempo de ejecución de Free Pascal(RTL).
Lazarus es un sistema de desarrollo de código abierto que trabaja sobre el compilador FREE PASCAL agregando un entorno integrado de desarrollo (IDE) que incluye un editor de código con resalte de sintaxis y un diseñador de formularios visual, así como una librería de componentes que es altamente compatible con la librería de componentes visual de Delphi (VCL). La librería de componentes de Lazarus (LCL) incluye los equivalentes para muchos de los controles familiares de VCL tales como formas, botones, cajas de texto y más que se utilizan para crear aplicaciones que tienen un interfaz gráfico de usuario (GUI).
Tanto Free Pascal como Lazarus están escritos en Pascal. El código fuente completo está disponible no solamente para el compilador de Free Pascal y el IDE de Lazarus, sino también para todas las unidades que construyan Free Pascal RTL y Lazarus LCL.
Como Delphi, Free Pascal y Lazarus son ambos herramientas de programación de uso general, significando que usted puede desarrollar una variedad amplia de programas con ellos, incluyendo lo siguiente:
Aplicaciones de consola
Las aplicaciones de consola no tienen un GUI. En su lugar se lanzan la consola, leen su entrada de la consola, y escriben generalmente su salida en la consola. En Windows la consola es generalmente la ventana del aviso de comando. En OS X y Linux la consola es la ventana terminal. Las aplicaciones de consola incluyen cosas como utilidades pequeñas tales como el programa de Windows FC (File Compare) o los comandos de Unix cd y cp. Las aplicaciones de consola pueden también ser utilizadas por los programas de proceso de datos que no necesitan un GUI porque son arrancados por otros programas o desde archivos por lotes. El compilador Free Pascal y los programas utilitarios incluidos con él son todos aplicaciones de consola, lo que significa que pueden ejecutarse desde la consola, desde un archivo por lotes, o desde el IDE de Lazarus.
Puede crear una aplicación de consola sin más que un editor de textos y el compilador Free Pascal. No tiene que utilizar Lazarus para desarrollar aplicaciones de consola. Sin embargo, si prefiere trabajar en un ambiente integrado, puede utilizar Lazarus para crear un proyecto para una aplicación de consola y editar y compilar el código en el IDE de Lazarus.
Librerías cargables dinámicamente
Una Librería cargable dinámicamente es generalmente una colección de funciones compiladas que se pueden llamar por otros programas. Como el nombre sugiere, la librería no se enlaza con su ejecutable en tiempo de compilación, sino que por el contrario se carga en el tiempo de ejecución. En Windows, un archivo de la librería tiene una extensión .dll (dynamic-link library=librería de enlace dinámico, o DLL). En OS X, un archivo de librería tiene una extensión .dylib (dynamic shared library=librería compartida dinámica). En Linux, un archivo de la librería tiene una extensión .so (shared object library=librería de objetos compartidos). Las librería cargables dinámicamente se utilizan típicamente para desarrollar complementos para otros programas, desarrollar librerías que se pueden llamar por los programas escritos en otras lenguajes tales como C y C++, o para descomponer proyectos grandes en trozos de modo que los desarrolladores del proyecto no se entorpezcan unos a otros. Windows se compone de centenares de DLLs, al igual que muchos otros programas grandes tales como OpenOffice.org.
Igual que para las aplicaciones de consola, solamente necesita un editor de textos y el compilador Free Pascal para desarrollar una librería, aunque puede también crear un proyecto de Lazarus para una librería y desarrollarla en el IDE de Lazarus.
En Windows, las DLLs tienen reputación de ser complejas e inestables. Esto tiene más que ver con la manera en que se instalan a veces, que con las propias DLLs. Realmente, el paso de la información "a" y "desde" DLLs se hace normalmente con los tipos de datos típicos, simples (más que con los objetos o las estructuras específicos de un lenguaje), este requisito obliga a los programadores a prestar más atención a lo que están haciendo. Si se hace de forma correcta, se obtendrán programas mejores, más estables.
Aplicaciones con GUI (Graphical User Interface = Interfaz gráfico de usuario)
La mayoría de los programas que utilizamos a diario son aplicaciones con GUI, incluyendo los procesadores de textos, navegadores Web, programas de hoja de cálculo, incluso muchas herramientas de desarrollo. Lazarus y Delphi son ambos buenos ejemplos de aplicaciones completamente provistas de GUI. Al desarrollar una aplicación con GUI con Lazarus, se crean no solamente unidades en código Pascal, también diseña los formularios que contienen controles visuales tales como botones o cajas de lista. Como Delphi, el diseño del formulario en Lazarus se hace visualmente. Las características del control se pueden fijar en el IDE o mediante código.
Puesto que los controles de LCL están disponibles en todas las plataformas soportadas, una aplicación con GUI desarrollada en una plataforma (por ejemplo, Windows) se puede compilar en otra plataforma (por ejemplo, OS X o Linux) sin ningún cambio en el diseño del formulario o en los archivos de su código.
Arquitectura de Lazarus
Los programas escritos en Lazarus respetan la arquitectura reseñada aquí:
Y la propia LCL sigue la siguiente arquitectura:
La LCL cuenta con unidades independientes de la plataforma, al igual que los controles, formularios, botones y rejillas. Estos no pueden trabajar por su cuenta. Son abstractos y requieren de un servidor. La LCL ofrece muchas interfaces LCL diferente que se comunican con backends o "Widgetsets" (Win32, GTK, QT, carbon, el cocoa, ...). Un motor será compilado por la mera utilización del paquete LCL y la adición de la unidad de "interfaces" como una de las primeras unidades de tu programa. Al crear una aplicación con el IDE de Lazarus esto se hace automáticamente. El motor se determina en tiempo de compilación y no se puede cambiar en tiempo de ejecución.