En el Proyecto Medusa, donde estoy trabajando, se está reimplementando en .NET un sistema de salud, que originariamente estaba escrito en Clipper. Es un sistema bastante grande, que tiene varios casos de uso, desde temas administrativos y contables, hasta turnos, farmacia, stock de medicamentos, cocina para dietas, y seguimiento de pacientes.
Recuerdo que en los ochenta, me topé con DBase II, en varios sistemas operativos, el venerable intérprete, y más adelante, a fines de los ochenta, me encontré con la sorpresa de un compilador, el Clipper de Nantucket, para DOS. Otros recordaran al Fox, que luego, al ser adquirido por Microsoft, pasó a Windows como Visual Fox (no recuerdo si primero Fulton y cía pasaron su producto a Windows y luego Microsoft lo compró, o si primero pasó Fox de DOS a Microsoft, y ahí lo portaron a Windows).
Para los que quieran recordar cómo era el lenguaje, encontré estos enlaces:
CA-Clipper 5.3 . Guide To CA-Clipper – Menu
Clipper (programming language) - Wikipedia, the free encyclopedia
Hay ejemplos con código en:
The Oasis Clipper Source. Over 300,000,000,000 bytes served!
Preguntas frecuentes sobre Clipper y sus sucesores en:
Frequently Asked Questions (FAQ 2.31) about CA-Clipper and CA-Visual Objects
Como comentaba un miembro del equipo Medusa, Clipper mientras fue de Nantucket, se mantuvo actualizado, cuando lo compró Computer Associates, entró en un derrape del que no se recuperó.
Si todavía tienen archivos Fox, Clipper, DBase dando vueltas por ahí, pueden probar los productos de:
CodeBase Products Overview
Y parece interesante, con soporte de SQL Server, y de varias plataformas, el Proyecto de código abierto:
Harbour Project
Como lenguaje, Clipper tenía sus “quirks”, como:
- El uso de SET, como SET EXACT OFF, SET EXACT ON, que cambiaban todo al conducta del programa
- El uso de work areas para acceder a datos
- Cosas como MEMVARS, que todavía tengo que recordar que era… :-)
Por mi parte, estoy divirtiéndome escribiendo un intérprete, AjClipper:
Ya tengo dos simples programas corriendo en mi intérprete:
y
? "This is a test"
foo := "Hello"
bar := "World"
? foo, " ", bar
Pueden ejecutarlo con
AjClipper.Console HelloWorld.prg SimpleTest.prg
No será, “Uy, qué bruto, qué programa”, pero va tomando cuerpo. Pueden seguir mi avance en el trunk de AjCodeKatas:
http://code.google.com/p/ajcodekatas/source/browse/#svn/trunk/AjClipper
Están escritos los tests (dando verde, por ahora):
Buen Code Coverage:
Cualquier enlace interesante sobre Clipper, bienvenido! Iré agregándolos en http://delicious.com/ajlopez/clipper
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez