# Object Pascal

Object Pascal es una evolución del lenguaje de programación Pascal, con inclusión de elementos pertenecientes al paradigma de la programación orientada a objetos.

## Historia temprana, Apple

Object Pascal es una extensión del lenguaje Pascal que se desarrolló en Apple Computer por un equipo dirigido por Larry Tesler en consulta con Niklaus Wirth (inventor de Pascal). Es descendiente de una anterior versión orientada a objetos de Pascal llamado Clascal, que estaba disponible en el equipo de Lisa.
Object Pascal era necesaria con el fin de apoyar MacApp, un marco de aplicación ampliable de Macintosh que ahora sería llamada por una biblioteca de clases. Las extensiones de Objeto Pascal y MacApp fueron desarrolladas por Barry Haynes, Ken Doyle, y Larry Rosenstein, y fueron probados por Dan Allen. Larry Tesler supervisó el proyecto, que se inició muy temprano en el año 1985 y se convirtió en un producto en 1986.
Una de las extensiones de Object Pascal también fue llevada a cabo en el IDE THINK Pascal. El IDE incluye el compilador y un editor con resaltado de sintaxis y de chequeo, un potente depurador y una biblioteca de clases. Muchos desarrolladores prefieren THINK Pascal sobre la implementación de Apple de Object Pascal, porque THINK Pascal ofrece una estrecha integración de sus herramientas. El desarrollo se detuvo después de la versión 4.01 ya que la compañía fue adquirida por Symantec. Entonces los desarrolladores dejaron de lado el proyecto.
En 1994 Apple bajó el apoyo a Object Pascal cuando pasaron de usar chips de Motorola de 68K a PowerPC, de arquitectura IBM. MacApp 3.0, para esta plataforma, fue reescrito en C++.

## Los años de Borland, CodeGear y Embarcadero

En 1986, Borland introdujo extensiones similares, también llamados Object Pascal, en los productos Turbo Pascal para Macintosh, y en 1989 para Turbo Pascal 5.5 para DOS. Cuando Borland reorientó sus productos de DOS a Windows en 1994, crearon un sucesor para Turbo Pascal, llamado Borland Delphi y se introduce un nuevo conjunto de extensiones para crear lo que hoy es conocido como el lenguaje Delphi (interpretado y compilado por el entorno Embarcadero Delphi).
El desarrollo de Borland Delphi se inició en 1993, y Delphi 1.0 fue lanzado oficialmente en los Estados Unidos el 14 de febrero de 1995. Delphi presentó una nueva sintaxis usando la palabra clave class en lugar de object, el constructor Create y un destructor virtual Destroy (no teniéndose así que llamar a New ni a Dispose), las propiedades, los punteros de método, y algunas otras cosas; y al mismo tiempo mantenía compatibilidad con la anterior sintaxis (permitiendo migración). Estos cambios fueron inspirados en el proyecto de documentación de trabajo de ISO para extensiones orientadas a objetos, pero muchas de las diferencias de dialecto de Turbo Pascal (como el requisito de que todos los métodos debían ser virtuales) fueron ignoradas.
El lenguaje Delphi no ha dejado de evolucionar a lo largo de los años para apoyar las construcciones tales como matrices dinámicas, programación genérica y métodos anónimos.

## Compiladores

Algunos de los compiladores que soportan una o varias versiones de este lenguaje (cada uno de ellos con sus propias particularidades) son:
* Borland Delphi, que utilizaba inicialmente como nombre para su lenguaje de programación Object Pascal, pero que más tarde, tras introducir cambios en el mismo se lo cambió por Delphi.
* Embarcadero Delphi (anteriormente CodeGear Delphi y antes a esto, Borland Delphi) es probablemente el compilador más conocido. Es el sucesor de las exitosas líneas de productos Borland Pascal y Turbo Pascal. Se dirige a las API de Windows Win16 (Delphi 1), Win32 (Delphi 2 y posteriores), .NET 1.x, 2.0 (Delphi 8, Delphi Delphi 2005-2007) y a Mac OS X (Delphi XE2). Cuando incluyó soporte para .NET, esta vertiente se convirtió en un producto separado llamado Oxygene.
* Oxygene (anteriormente conocido como Chrome) es un compilador de Object Pascal que se integra en Microsoft Visual Studio. También está disponible como compilador libre de línea de comandos que se ejecuta nativo en Infraestructura CLI. Se dirige a plataformas .NET y a Mono.
* Free Pascal (FPC), es un compilador de código abierto que admite muchos dialectos de Pascal, incluidos los de Turbo Pascal 7 y Delphi, entre otros. En la actualidad, FPC puede generar código para procesadores x86, x86-64, PowerPC, SPARC y ARM, y para varios sistemas operativos, incluyendo Microsoft Windows, Linux, FreeBSD, Mac OS y Mac OS X (con un kit Xcode de integración). Existen varios proyectos separados para facilitar el desarrollo rápido de aplicaciones con FPC, el más destacado es el IDE Lazarus.
* GNU Pascal. Si bien no está formalmente dirigido al lenguaje Delphi, contiene un modo de compatibilidad con Borland Pascal, y lentamente se van incorporando algunas características del lenguaje Delphi. No es adecuado para volver a compilar grandes cuerpos de código de Delphi directamente, pero es notable por tener el apoyo prolífico para los sistemas operativos y arquitecturas de hardware.
* MIDletPascal es una herramienta de desarrollo de aplicaciones móviles que genera Java ME bytecode.
* Pocketstudio es la base del IDE de Pascal para Palm OS.
* Kylix, o Borland Kylix. Fue una variante del IDE Borland Delphi, desarrollada para Linux. Sólo servía para Linux de arquitectura Intel de 32 bits, usaba la biblioteca Qt. Y no funciona en las distribuciones de Linux más modernas debido a problemas con el kernel.
* Virtual Pascal fue un compilador libre de 32 bits compatible con Turbo Pascal y Delphi, dirigido principalmente a OS/2 y Microsoft Windows, aunque también se desarrolló un extensor de DOS+ y un compilador cruzado experimental para Linux. El desarrollo se detuvo cuando se lanzó Delphi 2. En 2007, indicó en su sitio web oficial que cesaba su desarrollo.
* TMT Pascal

## Desarrollo

Muchas características han sido introducidas continuamente a Object Pascal, con extensiones a Delphi, y también para Free Pascal. En respuesta a las críticas, Free Pascal ha adoptado las extensiones genéricas, y en las versines libres de Delphi y Pascal ahora también se admite la sobrecarga de operador (con gramática diferente, sin embargo). Delphi también ha introducido muchas otras características desde la versión 7 incluidas algunas extensiones genéricas.