[go: nahoru, domu]

Ir al contenido

Diferencia entre revisiones de «Clipper (lenguaje de programación)»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Etiquetas: Edición desde móvil Edición vía web móvil
 
(No se muestran 17 ediciones intermedias de 11 usuarios)
Línea 17: Línea 17:
}}
}}


'''Clipper''' es un [[lenguaje de programación]] procedural e imperativo creado en [[1985]] por [[Nantucket Corporation]] y vendido posteriormente a [[Computer Associates]], la que lo comercializó como CA-Clipper. En un principio Clipper se creó como un [[compilador]] para el sistema gestor [[intérprete (informática)|intérprete]]
'''Clipper''' es un [[lenguaje de programación]] procedural e imperativo creado en 1985 por [[Nantucket Corporation]] y vendido posteriormente a [[Computer Associates]], la que lo comercializó como CA-Clipper. En un principio Clipper se creó como un [[compilador]] para el sistema gestor [[intérprete (informática)|intérprete]]
de bases de datos [[dBase]] III (de hecho las ''versiones estacionales'' de Nantucket incluían una etiqueta que lo indicaba así), pero con el tiempo el producto evolucionó y maduró, convirtiéndose en un lenguaje compilado más poderoso que el original, no solo por sus propias implementaciones sino también por las ampliaciones desarrolladas por terceros en [[Lenguaje de programación C|C]], [[Lenguaje ensamblador|Ensamblador]] y [[Lenguaje de programación Pascal|Pascal]], de los que fue heredando características. Esto lo convirtió en la herramienta líder de desarrollo de aplicaciones de bases de datos relacionales bajo sistema operativo [[MS-DOS]], sobre todo programas de gestión, contabilidad y facturación, agendas comerciales y programas de testificación.
de bases de datos [[dBase]] III (de hecho las ''versiones estacionales'' de Nantucket incluían una etiqueta que lo indicaba así), pero con el tiempo el producto evolucionó y maduró, convirtiéndose en un lenguaje compilado más poderoso que el original, no solo por sus propias implementaciones sino también por las ampliaciones desarrolladas por terceros en [[Lenguaje de programación C|C]], [[Lenguaje ensamblador|Ensamblador]] y [[Lenguaje de programación Pascal|Pascal]], de los que fue heredando características. Esto lo convirtió en la herramienta líder de desarrollo de aplicaciones de bases de datos relacionales bajo sistema operativo [[MS-DOS]], sobre todo programas de gestión, contabilidad y facturación, agendas comerciales y programas de testificación.


== Características ==
== Características ==


A diferencia de otros lenguajes [[xBase]], Clipper nunca contó con un modo [[intérprete (informática)|intérprete]], similar al de [[dBase]]. Sus utilidades para manejo de [[base de datos]], tales como la de creación de tablas (DBU), se entregaban con el código fuente escrito en Clipper e incluido, el usuario podía adaptarlas a sus necesidades si quería. Se aportaban también muchas rutinas escritas en [[Lenguaje de programación C|C]] y [[Lenguaje ensamblador|Ensamblador]] a las que el usuario podía acudir, incluso ampliar y crear bibliotecas de pre-enlace completas.
A diferencia de otros lenguajes [[xBase]], Clipper nunca contó con un modo [[intérprete (informática)|intérprete]], similar al de [[dBase]]. Sus utilidades para manejo de [[base de datos]], tales como la de creación de tablas (DBU), se entregaban con el código fuente escrito en Clipper e incluido, el usuario podía adaptarlas a sus necesidades si quería. Se aportaban también muchas rutinas escritas en [[Lenguaje de programación C|C]] y [[Lenguaje ensamblador|Ensamblador]] a las que el usuario podía acudir, incluso ampliar y crear bibliotecas de pre-enlaces completos e importantes


Clipper trabaja en modo [[compilador]] puro generando un código objeto binario; el paquete proveía también un [[enlazador]] (RTLINK o DLINK) (y BLINKER) que con el módulo objeto y las [[biblioteca (informática)|bibliotecas]] de pre-enlace generaba un módulo ejecutable directo. Esto último le otorgaba a las aplicaciones Clipper una velocidad que otros manejadores de bases de datos no poseían, y, como desventaja, la necesidad de recompilar y enlazar nuevamente cada vez que se corregía algún error en el código fuente (la [[Depuración de programas|depuración]] era lenta).
Clipper trabaja en modo [[compilador]] puro generando un código objeto binario; el paquete proveía también un [[enlazador]] (RTLINK o DLINK, y BLINKER) que con el módulo objeto y las [[biblioteca (informática)|bibliotecas]] de pre-enlace generaba un módulo ejecutable directo. Esto último le otorgaba a las aplicaciones Clipper una velocidad que otros manejadores de bases de datos no poseían, y, como desventaja, la necesidad de recompilar y enlazar nuevamente cada vez que se corregía algún error en el código fuente (la [[Depuración de programas|depuración]] era lenta).


Posee características que fueron muy atractivas para su época y su entorno de trabajo (DOS), tales como: manejo propio de [[memoria virtual]] ([[Memoria RAM|RAM]] en disco); manejo de memoria extendida, las aplicaciones podían superar la barrera de los 640Kb de RAM impuesta por [[MS-DOS]]; rutinas y bibliotecas pueden cargarse solo cuando son necesarias y se descargan de RAM cuando ya no hacen falta (enlace y overlays dinámicos); la cantidad de registros por tablas estaba solo limitada a la capacidad del disco (con máximo 1024 columnas); gran robustez en las aplicaciones, particularmente en las diseñadas para cliente-servidor (red LAN), etc.
Posee características que fueron muy atractivas para su época y su entorno de trabajo (DOS), tales como: manejo propio de [[memoria virtual]] ([[Memoria RAM|RAM]] en disco); manejo de memoria extendida, las aplicaciones podían superar la barrera de los 640Kb de RAM impuesta por [[MS-DOS]]; rutinas y bibliotecas pueden cargarse solo cuando son necesarias y se descargan de RAM cuando ya no hacen falta (enlace y overlays dinámicos); la cantidad de registros por tablas estaba solo limitada a la capacidad del disco (con máximo 1024 columnas); gran robustez en las aplicaciones, particularmente en las diseñadas para cliente-servidor (red LAN), etc.
Línea 34: Línea 34:
El lenguaje en sí era poderoso, contando con una gran cantidad de sentencias, funciones, administración de memoria y variables que permitían al programador desarrollos muy flexibles y eficientes; en forma razonablemente rápida. También el paquete incluía un completo "manual en línea navegable", que se cargaba en memoria [[Memoria de acceso aleatorio|RAM]], a requerimiento del programador, y se accedía por la sola presión de un par de teclas.
El lenguaje en sí era poderoso, contando con una gran cantidad de sentencias, funciones, administración de memoria y variables que permitían al programador desarrollos muy flexibles y eficientes; en forma razonablemente rápida. También el paquete incluía un completo "manual en línea navegable", que se cargaba en memoria [[Memoria de acceso aleatorio|RAM]], a requerimiento del programador, y se accedía por la sola presión de un par de teclas.


En su larga época dorada, ha sido, probablemente, el lenguaje gestor de bases de datos relacionales de "bajo y mediano porte" más utilizado en el mundo. Aún hoy existen muchos desarrolladores Clipper (algunos agrupados comunidades y con foros en Internet), que elaboran aplicaciones, incluso estilo Windows, usando sus propias bibliotecas gráficas escritas en [[Lenguaje de programación C|C]] y [[Lenguaje ensamblador|Ensamblador]].
En su larga época dorada ha sido, probablemente, el lenguaje gestor de bases de datos relacionales de "bajo y mediano porte" más utilizado en el mundo. Aún hoy existen muchos desarrolladores Clipper (algunos agrupados comunidades y con foros en Internet), que elaboran aplicaciones, incluso estilo Windows, usando sus propias bibliotecas gráficas escritas en [[Lenguaje de programación C|C]] y [[Lenguaje ensamblador|Ensamblador]].


== Las primeras versiones ==
== Las primeras versiones ==
Línea 40: Línea 40:
Las primeras versiones se denominan ''versiones estacionales'' por hacer referencia a una estación del año en sus nombres oficiales. Todas ellas se nominaban como '''compiladores dBase'''. Estas fueron:
Las primeras versiones se denominan ''versiones estacionales'' por hacer referencia a una estación del año en sus nombres oficiales. Todas ellas se nominaban como '''compiladores dBase'''. Estas fueron:


* Nantucket Clipper Winter'84 - lanzada el [[25 de mayo]] de [[1985]]
* Nantucket Clipper Winter'84 - lanzada el 25 de mayo de 1985
* Nantucket Clipper Summer'85 - lanzada en [[1985]]
* Nantucket Clipper Summer'85 - lanzada en 1985
* Nantucket Clipper Winter'85 - lanzada el [[29 de enero]] de [[1986]]
* Nantucket Clipper Winter'85 - lanzada el 29 de enero de 1986
* Nantucket Clipper Autumn'86 - lanzada el [[31 de octubre]] de [[1986]]
* Nantucket Clipper Autumn'86 - lanzada el 31 de octubre de 1986
* Nantucket Clipper Summer'87 - lanzada el [[21 de diciembre]] de [[1987]]
* Nantucket Clipper Summer'87 - lanzada el 21 de diciembre de 1987
* Gatsoft Clipper Summer'88 - lanzada el [[16 de marzo]] de [[1988]]
* Gatsoft Clipper Summer'88 - lanzada el 16 de marzo de 1988


== Clipper 5 ==
== Clipper 5 ==


Clipper 5.0 supone un salto cualitativo del lenguaje, aunque comienza mal. Dada la creciente popularidad (Summer 87 ha sido utilizada hasta el año 2000 como herramienta de desarrollo), se decide centrarse más en ampliar el lenguaje que en ser un ''compilador mejorado'' de dBase. Se implementan así los [[pseudoobjetos]] y otras mejoras... pero el producto se lanza con numerosos [[error de software|errores de software]] que hacen que el público objetivo se retraiga y siga usando la versión Summer87, mucho más estable. La 5.01 corrige muchos de los problemas, pero no será hasta la 5.2 que se produzca el vuelque masivo de los desarrolladores.
Clipper 5.0 supone un salto cualitativo del lenguaje, aunque comienza mal. Dada la creciente popularidad (Summer 87 ha sido utilizada hasta el año 2000 como herramienta habitual de desarrollo; en Telefónica se utilizó ampliamente hasta al menos 2008 en aplicaciones importantes{{cita requerida}}), se decide centrarse más en ampliar el lenguaje que en ser un ''compilador mejorado'' de dBase. Se implementan así los [[pseudoobjetos]] y otras mejoras... pero el producto se lanza con numerosos [[error de software|errores de software]] que hacen que el público objetivo se retraiga y siga usando la versión Summer87, mucho más estable. La 5.01 corrige muchos de los problemas, pero no será hasta la 5.2 que se produzca el vuelque masivo de los desarrolladores.


Las versiones 5 de Nantucket son:
Las versiones 5 de Nantucket son:


* Nantucket Clipper 5.00 - lanzada en [[1990]]
* Nantucket Clipper 5.00 - lanzada en 1990


* Nantucket Clipper 5.01 - lanzada el [[15 de abril]] de [[1991]]
* Nantucket Clipper 5.01 - lanzada el 15 de abril de 1991


* Nantucket Clipper 5.01 Rev.129 - lanzada el [[31 de marzo]] de [[1992]]
* Nantucket Clipper 5.01 Rev.129 - lanzada el 31 de marzo de 1992


La multinacional americana [[Computer Associates]] adquiere [[Nantucket]] y se lanza a mejorar el producto afianzando las características heredadas de C, en particular el tipo de datos '''code-block''' (literalmente ''[[bloque de código]]'', un híbrido entre las [[macro]]s de dBase, la evaluación de cadenas de caracteres y los punteros de funciones). Otra de las mejoras procedentes de la versión 5.0 es el sistema "Replaceable Database Drivers" (RDD o drivers reemplazables de base de datos), que permiten con una sola sentencia cambiar entre diferentes normas de base de datos. La aparición de la versión 5.2, con una carrera frenética de subversiones (con mejoras y corrección de errores) hasta la '''5.2c''', que marca el comienzo de la migración masiva de quienes todavía permanecían en Summer'87. Deviene así la versión de Clipper más usada de la historia. Contrariamente, su sucesora, 5.3, pese a implementar mejoras, cae en un error de bulto, al no tener en cuenta la compatibilidad con al menos las más populares bibliotecas de Clipper (tanto comerciales como freeware), y por consumir excesivos recursos de DOS.
La multinacional americana [[Computer Associates]] adquiere [[Nantucket]] y se lanza a mejorar el producto afianzando las características heredadas de C, en particular el tipo de datos '''code-block''' (literalmente ''[[bloque de código]]'', un híbrido entre las [[macro]]s de dBase, la evaluación de cadenas de caracteres y los punteros de funciones). Otra de las mejoras procedentes de la versión 5.0 es el sistema "Replaceable Database Drivers" (RDD o drivers reemplazables de base de datos), que permiten con una sola sentencia cambiar entre diferentes normas de base de datos. La aparición de la versión 5.2, con una carrera frenética de subversiones (con mejoras y corrección de errores) hasta la '''5.2c''', que marca el comienzo de la migración masiva de quienes todavía permanecían en Summer'87. Deviene así la versión de Clipper más usada de la historia. Contrariamente, su sucesora, 5.3, pese a implementar mejoras, cae en un error de bulto, al no tener en cuenta la compatibilidad con al menos las más populares bibliotecas de Clipper (tanto comerciales como freeware), y por consumir excesivos recursos de DOS.
* CA Clipper 5.01a -
* CA Clipper 5.01a -
* CA Clipper 5.20 - lanzada el [[15 de febrero]] de [[1993]]
* CA Clipper 5.20 - lanzada el 15 de febrero de 1993
* CA-Clipper 5.2a - lanzada el [[15 de marzo]] de [[1993]]
* CA-Clipper 5.2a - lanzada el 15 de marzo de 1993
* CA Clipper 5.2b - lanzada el [[25 de junio]] de [[1993]]
* CA Clipper 5.2b - lanzada el 25 de junio de 1993
* CA-Clipper 5.2c - lanzada el [[6 de agosto]] de [[1993]]
* CA-Clipper 5.2c - lanzada el 6 de agosto de 1993
* CA Clipper 5.2d - lanzada el [[25 de marzo]] de [[1994]]
* CA Clipper 5.2d - lanzada el 25 de marzo de 1994
* CA-Clipper 5.2e - lanzada el [[7 de febrero]] de [[1995]]
* CA-Clipper 5.2e - lanzada el 7 de febrero de 1995
* CA Clipper 5.30 - lanzada el [[26 de junio]] de [[1995]]
* CA Clipper 5.30 - lanzada el 26 de junio de 1995
* CA Clipper 5.3a - lanzada el [[20 de mayo]] de [[1996]]
* CA Clipper 5.3a - lanzada el 20 de mayo de 1996
* CA Clipper 5.3b - lanzada el [[20 de mayo]] de [[1997]]
* CA Clipper 5.3b - lanzada el 20 de mayo de 1997


Computer Associates decide abandonar Clipper ante la pujanza de [[Microsoft Windows]], y vuelca parte del desarrollo de Clipper (el ''proyecto Aspen'' de Nantucket) a su nueva herramienta [[Visual Objects|CA-Visual Objects]], que se presenta casi a la vez que Clipper 5.3 Pero el abandono de la sintaxis xBase y el no proveer una herramienta de migración adecuada, unido al alto precio del producto (que además debía competir con otros productos de la propia casa, uno de ellos basado en [[BASIC]]), hace que el grueso de programadores Clipper opten por permanecer en las versiones 5.2/5.3 con bibliotecas de terceros como [[FiveWin]], o migren a herramientas xBase como [[Visual FoxPro]] a medida que el mercado DOS va reduciéndose.
Computer Associates decide abandonar Clipper ante la pujanza de [[Microsoft Windows]], y vuelca parte del desarrollo de Clipper (el ''proyecto Aspen'' de Nantucket) a su nueva herramienta [[Visual Objects|CA-Visual Objects]], que se presenta casi a la vez que Clipper 5.3 Pero el abandono de la sintaxis xBase y el no proveer una herramienta de migración adecuada, unido al alto precio del producto (que además debía competir con otros productos de la propia casa, uno de ellos basado en [[BASIC]]), hace que el grueso de programadores Clipper opten por permanecer en las versiones 5.2/5.3 con bibliotecas de terceros como [[FiveWin]], y DGE, o migren a herramientas xBase como [[Visual FoxPro]] a medida que el mercado DOS va reduciéndose.


El [[22 de abril]] de [[2002]] [[Computer Associates]] y [[GrafX Software]] anuncian que han alcanzado un acuerdo de licenciamiento, marketing y desarrollo de dos de sus lenguajes de desarrollo: CA-Clipper y CA-Visual Objects.
El 22 de abril de 2002 [[Computer Associates]] y [[GrafX Software]] anuncian que han alcanzado un acuerdo de licenciamiento, marketing y desarrollo de dos de sus lenguajes de desarrollo: CA-Clipper y CA-Visual Objects.


Una de las principales características que ayudó al éxito de Clipper fue la posibilidad de expandir el lenguaje con rutinas en C y ensamblador. Varias de ellas, como CodeBase o Apollo son RDDs. Con la aparición de Windows se desarrollaron varias de ellas para portar las aplicaciones Clipper a Windows. La más popular es la española FiveWin, empleada en los productos líderes de contabilidad en España.
Una de las principales características que ayudó al éxito de Clipper fue la posibilidad de expandir el lenguaje con rutinas en C y ensamblador. Varias de ellas, como CodeBase o Apollo son RDDs. Con la aparición de Windows se desarrollaron varias de ellas para portar las aplicaciones Clipper a Windows. La más popular es la española FiveWin, empleada en los productos líderes de contabilidad en España.
Línea 80: Línea 80:
Además, el uso de linkers alternativos permitieron mejorar el rendimiento del ejecutable generado. El más aclamado fue Blinker, que añade un extensor de DOS con modo protegido (es utilizado con numerosos lenguajes y compiladores). Añadió soporte para compilar programas y bibliotecas para Windows.
Además, el uso de linkers alternativos permitieron mejorar el rendimiento del ejecutable generado. El más aclamado fue Blinker, que añade un extensor de DOS con modo protegido (es utilizado con numerosos lenguajes y compiladores). Añadió soporte para compilar programas y bibliotecas para Windows.


En la actualidad el lenguaje Clipper está siendo activamente implementado y extendido por varios proyectos y vendedores. Entre los proyectos de [[software libre]] podemos destacar [[compilador Clip|Clip]], [[compilador Harbour|Harbour]] y [[xHarbour]]. Entre los compiladores comerciales ''[[XBase++]]'' y ''[[FlagShip|Visual FlagShip]]''. Y Otros productos como "[http://www.otc.pl/ MEDIATOR]" y "[http://es.groups.yahoo.com/group/eagle1/ Eagle1 y Condor1]" que le brindan la posibilidad de conectarse a Servidores de bases de datos relacionales como MS-SQL, MySQL y Oracle.
En la actualidad el lenguaje Clipper está siendo activamente implementado y extendido por varios proyectos y vendedores. Entre los proyectos de [[software libre]] podemos destacar [[compilador Clip|Clip]] (desactualizado desde 2006), [[compilador Harbour|Harbour]] y [[xHarbour]]. Entre los compiladores comerciales ''[[XBase++]]'' y ''[[FlagShip|Visual FlagShip]]''. Y Otros productos como "[http://www.otc.pl/ MEDIATOR]" y "[http://es.groups.yahoo.com/group/eagle1/ Eagle1 y Condor1] {{Wayback|url=http://es.groups.yahoo.com/group/eagle1/ |date=20090709114716 }}" que le brindan la posibilidad de conectarse a Servidores de bases de datos relacionales como MS-SQL, MySQL y Oracle.


[[XBase++]] ha sido llamado el Compilador Clipper de 32 bits, siendo actualmente el líder en innovaciones e incorporaciones al lenguaje. Ya se han vendido más de 25.000 copias del compilador y lo usan desde desarrolladores solitarios hasta grandes empresas como Hewlett-Packard o el Gobierno de Canadá.
[[XBase++]] ha sido llamado el Compilador Clipper de 32 bits, siendo actualmente el líder en innovaciones e incorporaciones al lenguaje. Ya se han vendido más de 25{{esd}}000 copias del compilador y lo usan desde desarrolladores solitarios hasta grandes empresas como Hewlett-Packard o el Gobierno de Canadá.


Varias de esas implementaciones son portables gracias a su desarrollo en C ([[DOS]], [[Windows]], [[GNU/Linux]] (32 y 64 bits), [[Unix]] (32 y 64 bits), y [[Mac OS X]]), soportando varias extensiones del lenguaje [http://www.xharbour.org/index.asp?page=product/extensions]; cuentan con varias extensiones del lenguaje, y varios Replaceable Database Drivers (RDD) que soportan los formatos más populares de tablas, como [[DBF]], DBTNTX, DBFCDX ([[FoxPro]] y Comix), MachSix (Apollo), [[SQL]], y más. Todas estas nuevas implementaciones mantienen la completa compatibilidad con la sintaxis estándar [[xBase]], a la vez que ofrecen [[programación orientada a objetos]] y sintaxis orientada al destino como <tt>SQLExecute()</tt>.
Varias de esas implementaciones son portables gracias a su desarrollo en C ([[DOS]], [[Windows]], [[GNU/Linux]] (32 y 64 bits), [[Unix]] (32 y 64 bits), y [[Mac OS X]]), soportando varias extensiones del lenguaje [http://www.xharbour.org/index.asp?page=product/extensions]; cuentan con varias extensiones del lenguaje, y varios Replaceable Database Drivers (RDD) que soportan los formatos más populares de tablas, como [[DBF]], DBTNTX, DBFCDX ([[FoxPro]] y Comix), MachSix (Apollo), [[SQL]], y más. Todas estas nuevas implementaciones mantienen la completa compatibilidad con la sintaxis estándar [[xBase]], a la vez que ofrecen [[programación orientada a objetos]] y sintaxis orientada al destino como <tt>SQLExecute()</tt>.
Línea 90: Línea 90:
En el mes de julio de 2011 se anunció oficialmente el lanzamiento de la versión 3.0, la cual ha sido la última publicada y se descuenta que el proyecto ha sido abandonado.
En el mes de julio de 2011 se anunció oficialmente el lanzamiento de la versión 3.0, la cual ha sido la última publicada y se descuenta que el proyecto ha sido abandonado.


En [[2005]], los [[newsgroup]]s de [[Usenet]] relativos a Clipper <tt>[http://groups.google.com/group/comp.lang.clipper comp.lang.clipper]</tt> y <tt>[http://groups.google.com/group/comp.lang.clipper.visual-objects comp.lang.clipper.visual-objects]</tt> seguían activos.
En 2005, los [[newsgroup]]s de [[Usenet]] relativos a Clipper <tt>[http://groups.google.com/group/comp.lang.clipper comp.lang.clipper]</tt> y <tt>[http://groups.google.com/group/comp.lang.clipper.visual-objects comp.lang.clipper.visual-objects]</tt> seguían activos.


== Programación en Clipper ==
== Programación en Clipper ==
Línea 96: Línea 96:
Un sencillo [[Hola Mundo]]:
Un sencillo [[Hola Mundo]]:


<source lang="php">
<syntaxhighlight lang="php">
? "Hola Mundo"
? "Hola Mundo"
</syntaxhighlight>
</source>


Una máscara simple de entrada de [[base de datos]]:
Una máscara simple de entrada de [[base de datos]]:


<source lang="php">
<syntaxhighlight lang="php">
USE Cliente SHARED NEW
USE Cliente SHARED NEW
cls
cls
Línea 109: Línea 109:
@ 4, 0 SAY "Direccion" GET Cliente->Direccion
@ 4, 0 SAY "Direccion" GET Cliente->Direccion
READ
READ
</source>Función que invierte una cadena de caracteres (Clipper 5.2):<syntaxhighlight lang="clipper">
</syntaxhighlight>Función que invierte una cadena de caracteres (Clipper 5.2):<syntaxhighlight lang="clipper">
CLEAR
CLEAR
ACCEPT "Teclee una cadena para invertirla: " TO cTexto
ACCEPT "Teclee una cadena para invertirla: " TO cTexto
Línea 138: Línea 138:
* [http://www.hmgforum.com/ Foro de Harbour-Minigui.]
* [http://www.hmgforum.com/ Foro de Harbour-Minigui.]
* [http://hmgextended.com/ Minigui EXTENDED.]
* [http://hmgextended.com/ Minigui EXTENDED.]
* [http://www.oohg.org/ Object Oriented Harbour GUI] MiniGUI pero basado en Objetos.
* [https://web.archive.org/web/20080811000401/http://www.oohg.org/ Object Oriented Harbour GUI] MiniGUI pero basado en Objetos.
* [http://ca.com/es/ Computer Associates] Propietarios de CA-Clipper y CA-Visual Objects
* [https://web.archive.org/web/20080401155627/http://www.ca.com/es/ Computer Associates] Propietarios de CA-Clipper y CA-Visual Objects
* [http://www.grafxsoft.com/ GrafX Software] Comercializador y co-desarrollador de CA-Clipper
* [http://www.grafxsoft.com/ GrafX Software] Comercializador y co-desarrollador de CA-Clipper
* {{Enlace roto|1=[http://www.alaska-software.com/products/xpp/xpp.shtm Alaska Software web page] |2=http://www.alaska-software.com/products/xpp/xpp.shtm |bot=InternetArchiveBot }} XBase++, The clipper sucessor.
* [http://www.alaska-software.com/products/xpp/xpp.shtm Alaska Software web page] {{Wayback|url=http://www.alaska-software.com/products/xpp/xpp.shtm |date=20080408200038 }} XBase++, The clipper sucessor.
* [http://www.the-oasis.net/ The Oasis] comunidad de soporte a desarrolladores focalizada en Clipper, FoxPro y xBase++
* [http://www.the-oasis.net/ The Oasis] comunidad de soporte a desarrolladores focalizada en Clipper, FoxPro y xBase++
* [http://www.clarin.com/suplementos/informatica/1998/11/04/t-00301d.htm Diario Clarín] Xbase++: un puente hacia Windows
* [http://www.clarin.com/suplementos/informatica/1998/11/04/t-00301d.htm Diario Clarín] {{Wayback|url=http://www.clarin.com/suplementos/informatica/1998/11/04/t-00301d.htm |date=20080414203237 }} Xbase++: un puente hacia Windows
* [http://www.fivetechsoft.com FiveTech] desarrolladores de FiveWin y uno de los motores del Proyecto Harbour
* [http://www.fivetechsoft.com FiveTech] desarrolladores de FiveWin y uno de los motores del Proyecto Harbour
* [https://web.archive.org/web/20120605041921/http://www.harbour-project.org/ Proyecto Harbour]
* [https://web.archive.org/web/20120605041921/http://www.harbour-project.org/ Proyecto Harbour]
Línea 151: Línea 151:
* [http://www.youtube.com/watch?v=1wQMHsqxo_s Un programa musical en Clipper]
* [http://www.youtube.com/watch?v=1wQMHsqxo_s Un programa musical en Clipper]


{{Control de autoridades}}
[[Categoría:Software de 1985]]
[[Categoría:Software de 1985]]
[[Categoría:Lenguajes de programación]]
[[Categoría:Lenguajes de programación]]

Revisión actual - 01:04 17 feb 2024

Clipper
Desarrollador(es)
Nantucket Corporation
http://www.grafxsoft.com/clipper.htm
Información general
Paradigma Programación Estructurada - Procedural
Apareció en 1985
Diseñado por Nantucket Corporation
Última versión estable CA Clipper 5.3b (20 de mayo de 1997)
Sistema de tipos Dinámico
Influido por xBase, Fox y C
Sistema operativo MS-DOS y Windows

Clipper es un lenguaje de programación procedural e imperativo creado en 1985 por Nantucket Corporation y vendido posteriormente a Computer Associates, la que lo comercializó como CA-Clipper. En un principio Clipper se creó como un compilador para el sistema gestor intérprete de bases de datos dBase III (de hecho las versiones estacionales de Nantucket incluían una etiqueta que lo indicaba así), pero con el tiempo el producto evolucionó y maduró, convirtiéndose en un lenguaje compilado más poderoso que el original, no solo por sus propias implementaciones sino también por las ampliaciones desarrolladas por terceros en C, Ensamblador y Pascal, de los que fue heredando características. Esto lo convirtió en la herramienta líder de desarrollo de aplicaciones de bases de datos relacionales bajo sistema operativo MS-DOS, sobre todo programas de gestión, contabilidad y facturación, agendas comerciales y programas de testificación.

Características

[editar]

A diferencia de otros lenguajes xBase, Clipper nunca contó con un modo intérprete, similar al de dBase. Sus utilidades para manejo de base de datos, tales como la de creación de tablas (DBU), se entregaban con el código fuente escrito en Clipper e incluido, el usuario podía adaptarlas a sus necesidades si quería. Se aportaban también muchas rutinas escritas en C y Ensamblador a las que el usuario podía acudir, incluso ampliar y crear bibliotecas de pre-enlaces completos e importantes

Clipper trabaja en modo compilador puro generando un código objeto binario; el paquete proveía también un enlazador (RTLINK o DLINK, y BLINKER) que con el módulo objeto y las bibliotecas de pre-enlace generaba un módulo ejecutable directo. Esto último le otorgaba a las aplicaciones Clipper una velocidad que otros manejadores de bases de datos no poseían, y, como desventaja, la necesidad de recompilar y enlazar nuevamente cada vez que se corregía algún error en el código fuente (la depuración era lenta).

Posee características que fueron muy atractivas para su época y su entorno de trabajo (DOS), tales como: manejo propio de memoria virtual (RAM en disco); manejo de memoria extendida, las aplicaciones podían superar la barrera de los 640Kb de RAM impuesta por MS-DOS; rutinas y bibliotecas pueden cargarse solo cuando son necesarias y se descargan de RAM cuando ya no hacen falta (enlace y overlays dinámicos); la cantidad de registros por tablas estaba solo limitada a la capacidad del disco (con máximo 1024 columnas); gran robustez en las aplicaciones, particularmente en las diseñadas para cliente-servidor (red LAN), etc.

Si bien no poseía prácticamente funciones de cálculo tales como las trigonométricas, que otros lenguajes como FoxPro sí incorporaron; el usuario las podía fácilmente elaborar en C y utilizarlas como cualquier otra función de biblioteca propia del paquete, ventaja que devenía de que el compilador Clipper y muchas de sus bibliotecas estaban casi completamente desarrolladas en C.

Su forma, administración, almacenamiento e intercambio de pantallas era sencillo, efectivo y veloz; lo que otorgaba buen dinamismo a las aplicaciones desarrolladas con Clipper.

El lenguaje en sí era poderoso, contando con una gran cantidad de sentencias, funciones, administración de memoria y variables que permitían al programador desarrollos muy flexibles y eficientes; en forma razonablemente rápida. También el paquete incluía un completo "manual en línea navegable", que se cargaba en memoria RAM, a requerimiento del programador, y se accedía por la sola presión de un par de teclas.

En su larga época dorada ha sido, probablemente, el lenguaje gestor de bases de datos relacionales de "bajo y mediano porte" más utilizado en el mundo. Aún hoy existen muchos desarrolladores Clipper (algunos agrupados comunidades y con foros en Internet), que elaboran aplicaciones, incluso estilo Windows, usando sus propias bibliotecas gráficas escritas en C y Ensamblador.

Las primeras versiones

[editar]

Las primeras versiones se denominan versiones estacionales por hacer referencia a una estación del año en sus nombres oficiales. Todas ellas se nominaban como compiladores dBase. Estas fueron:

  • Nantucket Clipper Winter'84 - lanzada el 25 de mayo de 1985
  • Nantucket Clipper Summer'85 - lanzada en 1985
  • Nantucket Clipper Winter'85 - lanzada el 29 de enero de 1986
  • Nantucket Clipper Autumn'86 - lanzada el 31 de octubre de 1986
  • Nantucket Clipper Summer'87 - lanzada el 21 de diciembre de 1987
  • Gatsoft Clipper Summer'88 - lanzada el 16 de marzo de 1988

Clipper 5

[editar]

Clipper 5.0 supone un salto cualitativo del lenguaje, aunque comienza mal. Dada la creciente popularidad (Summer 87 ha sido utilizada hasta el año 2000 como herramienta habitual de desarrollo; en Telefónica se utilizó ampliamente hasta al menos 2008 en aplicaciones importantes[cita requerida]), se decide centrarse más en ampliar el lenguaje que en ser un compilador mejorado de dBase. Se implementan así los pseudoobjetos y otras mejoras... pero el producto se lanza con numerosos errores de software que hacen que el público objetivo se retraiga y siga usando la versión Summer87, mucho más estable. La 5.01 corrige muchos de los problemas, pero no será hasta la 5.2 que se produzca el vuelque masivo de los desarrolladores.

Las versiones 5 de Nantucket son:

  • Nantucket Clipper 5.00 - lanzada en 1990
  • Nantucket Clipper 5.01 - lanzada el 15 de abril de 1991
  • Nantucket Clipper 5.01 Rev.129 - lanzada el 31 de marzo de 1992

La multinacional americana Computer Associates adquiere Nantucket y se lanza a mejorar el producto afianzando las características heredadas de C, en particular el tipo de datos code-block (literalmente bloque de código, un híbrido entre las macros de dBase, la evaluación de cadenas de caracteres y los punteros de funciones). Otra de las mejoras procedentes de la versión 5.0 es el sistema "Replaceable Database Drivers" (RDD o drivers reemplazables de base de datos), que permiten con una sola sentencia cambiar entre diferentes normas de base de datos. La aparición de la versión 5.2, con una carrera frenética de subversiones (con mejoras y corrección de errores) hasta la 5.2c, que marca el comienzo de la migración masiva de quienes todavía permanecían en Summer'87. Deviene así la versión de Clipper más usada de la historia. Contrariamente, su sucesora, 5.3, pese a implementar mejoras, cae en un error de bulto, al no tener en cuenta la compatibilidad con al menos las más populares bibliotecas de Clipper (tanto comerciales como freeware), y por consumir excesivos recursos de DOS.

  • CA Clipper 5.01a -
  • CA Clipper 5.20 - lanzada el 15 de febrero de 1993
  • CA-Clipper 5.2a - lanzada el 15 de marzo de 1993
  • CA Clipper 5.2b - lanzada el 25 de junio de 1993
  • CA-Clipper 5.2c - lanzada el 6 de agosto de 1993
  • CA Clipper 5.2d - lanzada el 25 de marzo de 1994
  • CA-Clipper 5.2e - lanzada el 7 de febrero de 1995
  • CA Clipper 5.30 - lanzada el 26 de junio de 1995
  • CA Clipper 5.3a - lanzada el 20 de mayo de 1996
  • CA Clipper 5.3b - lanzada el 20 de mayo de 1997

Computer Associates decide abandonar Clipper ante la pujanza de Microsoft Windows, y vuelca parte del desarrollo de Clipper (el proyecto Aspen de Nantucket) a su nueva herramienta CA-Visual Objects, que se presenta casi a la vez que Clipper 5.3 Pero el abandono de la sintaxis xBase y el no proveer una herramienta de migración adecuada, unido al alto precio del producto (que además debía competir con otros productos de la propia casa, uno de ellos basado en BASIC), hace que el grueso de programadores Clipper opten por permanecer en las versiones 5.2/5.3 con bibliotecas de terceros como FiveWin, y DGE, o migren a herramientas xBase como Visual FoxPro a medida que el mercado DOS va reduciéndose.

El 22 de abril de 2002 Computer Associates y GrafX Software anuncian que han alcanzado un acuerdo de licenciamiento, marketing y desarrollo de dos de sus lenguajes de desarrollo: CA-Clipper y CA-Visual Objects.

Una de las principales características que ayudó al éxito de Clipper fue la posibilidad de expandir el lenguaje con rutinas en C y ensamblador. Varias de ellas, como CodeBase o Apollo son RDDs. Con la aparición de Windows se desarrollaron varias de ellas para portar las aplicaciones Clipper a Windows. La más popular es la española FiveWin, empleada en los productos líderes de contabilidad en España.

Además, el uso de linkers alternativos permitieron mejorar el rendimiento del ejecutable generado. El más aclamado fue Blinker, que añade un extensor de DOS con modo protegido (es utilizado con numerosos lenguajes y compiladores). Añadió soporte para compilar programas y bibliotecas para Windows.

En la actualidad el lenguaje Clipper está siendo activamente implementado y extendido por varios proyectos y vendedores. Entre los proyectos de software libre podemos destacar Clip (desactualizado desde 2006), Harbour y xHarbour. Entre los compiladores comerciales XBase++ y Visual FlagShip. Y Otros productos como "MEDIATOR" y "Eagle1 y Condor1 Archivado el 9 de julio de 2009 en Wayback Machine." que le brindan la posibilidad de conectarse a Servidores de bases de datos relacionales como MS-SQL, MySQL y Oracle.

XBase++ ha sido llamado el Compilador Clipper de 32 bits, siendo actualmente el líder en innovaciones e incorporaciones al lenguaje. Ya se han vendido más de 25 000 copias del compilador y lo usan desde desarrolladores solitarios hasta grandes empresas como Hewlett-Packard o el Gobierno de Canadá.

Varias de esas implementaciones son portables gracias a su desarrollo en C (DOS, Windows, GNU/Linux (32 y 64 bits), Unix (32 y 64 bits), y Mac OS X), soportando varias extensiones del lenguaje [1]; cuentan con varias extensiones del lenguaje, y varios Replaceable Database Drivers (RDD) que soportan los formatos más populares de tablas, como DBF, DBTNTX, DBFCDX (FoxPro y Comix), MachSix (Apollo), SQL, y más. Todas estas nuevas implementaciones mantienen la completa compatibilidad con la sintaxis estándar xBase, a la vez que ofrecen programación orientada a objetos y sintaxis orientada al destino como SQLExecute().

Actualmente hay una versión libre, el Proyecto Harbour que tiene como objetivo original ser 100% compatible con la versión 5.2 (La más popular de las versiones de Clipper), también se han añadido nuevas características como soporte para SQL a través de SQLite. Harbour está disponible para múltiples plataformas, incluyendo no solo MS-DOS y Windows, sino también a GNU/Linux, OS/2 y otras. En el mes de julio de 2011 se anunció oficialmente el lanzamiento de la versión 3.0, la cual ha sido la última publicada y se descuenta que el proyecto ha sido abandonado.

En 2005, los newsgroups de Usenet relativos a Clipper comp.lang.clipper y comp.lang.clipper.visual-objects seguían activos.

Programación en Clipper

[editar]

Un sencillo Hola Mundo:

 ? "Hola Mundo"

Una máscara simple de entrada de base de datos:

 USE Cliente SHARED NEW
 cls
 @  1, 0 SAY "ClitNum" GET Cliente->CliNum PICT "9999999" VALID Cliente->CliNum > 0
 @  3, 0 SAY "Contacto" GET Cliente->Contacto VALID !empty(Cliente->Contacto)
 @  4, 0 SAY "Direccion" GET Cliente->Direccion
 READ

Función que invierte una cadena de caracteres (Clipper 5.2):

CLEAR
ACCEPT "Teclee una cadena para invertirla: " TO cTexto
 
? cTexto
? "invertido es: "
? invStr( cTexto )
//
FUNCTION invStr( __cTexto )
   LOCAL aText1, cNew, n, cTemp, g, x
   aText1 = ARRAY (LEN ( __cTexto ) )
   cNew = ""
   FOR n = 1 TO LEN( __cTexto )
      cTemp = LEFT( __cTexto, n )
      aText1[ n ] = RIGHT( cTemp, 1 )
   NEXT n
   x = 1
   FOR g = LEN( __cTexto ) TO 1 STEP -1
      cNew =  aText1[ x ] + cNew
      x = x + 1
   NEXT g
RETURN cNew

Enlaces externos

[editar]