gcc -o friendly links.c
Pude acceder por primera vez a una computadora, era una Toshiba MSX que venía con un intérprete de lenguaje MSX Basic y por supuesto mi primer intento de "programa" estuvo escrito en este lenguaje de programación...
Altos programadores los de antes... si te quedabas sin números de línea era todo un desafio escalar tu programa ;). No era lo único que había pero era lo único a lo que podía acceder por aquel entonces, igualmente me entretenía muchísimo, hasta había hecho un curso de programación en lenguaje Basic que duró un año en un instituto privado, en donde había aprendido bien el paradigma y técnicas como cortes de control y demás.
Por fin pude tener mi primera y flamante PC! Era un XT con 1MB de RAM! monitor monocromático ambar de 12" y disquetera de 5 1/4" baja densidad! y ni hablemos del "potente" sistema operativo MS-DOS 3.3. Recuerdo que en el combo me enviaron un intérprete de lenguaje GW-Basic que daba gusto de programar en "semejante" hardware.
Los pobres procesos batch fueron algo por lo que también pasé mientras fui usuario de MS-DOS.
Quería aprender algún lenguaje de alto nivel un poco mas "serio" que Basic y sus variantes, algo útil en la vida real. Así fue como terminé castigándome con COBOL, otra vez en un instituto privado. A COBOL le dedicaba muchísimo tiempo y fue con él, con quien hice mis primeros módulos de sistema reales.
Aprender COBOL me sirvió muchísimo en mi formación profesional, sin embargo, a nivel técnico nunca me agradó mucho (la realidad es que no conosco a nadie que le guste) era muy engorroso, lento, tosco y siempre requería de muchísimas lineas de código incluso para hacer algo muy simple. Esto no era debido a que el lenguaje fuese malo, es que su diseño está enfocado a la gestión, y nada más que a la gestión. Hoy en día en plataforma PC está en desuso, pero no debe haber mainframe que no esté corriendo algún sistema escrito en COBOL. Hago una reverencia hacia él.
Había concluido mi curso de COBOL y pude renovar mi PC por una más "moderna", una PC AT 80286. En esta época yo solía comprar algunas revistas de informática que importaban de España, y leía bastante sobre el lenguaje Clipper y sus bondades. Así fue como me encaminé a aprender Clipper, y nuevamente, cursar otro año de programación sobre este lenguaje.
Clipper me encantaba, a COBOL le dedicaba muchísimo tiempo pero a Clipper lo adopté como mi lenguaje por excelencia por algunos años. Era totalmente lo opuesto a COBOL, sintaxis clara y simple, pocas lineas, ejecutables únicos y fáciles de distribuir, compatibilidad con base de datos de dBase y posibilidad de enlazar librerias de otros lenguajes como Assembler y lenguaje C. Era ideal para los desarrollos que yo hacía en ese entonces.
Entusiasmadísimo y fulltime con Clipper llegué prácticamente a experimentar con cada-una-de-sus-funciones, lo que me llevó a querer integrarlo con otro lenguaje. Acá fue como poco a poco me fui acercando al Turbo C de Borland. Un mundo nuevo para mí, mucho más complejo. Recuerdo que había querido hacer algún curso de lenguaje C ya que no contaba con internet para bajar documentación y tutoriales, pero en el lugar donde yo vivía no había nadie que enseñase asi que me fui arreglando con la información que proveía la herramienta de desarrollo y alguna que otra revista que compraba.
Aunque me encanta como está diseñado y el desafío que impone la programación en lenguaje C, no me dedico de pleno a él y solo lo utilizo en forma esporádica para cosas muy específicas. En esa época Borland tenía otro producto, el Turbo Pascal, como lenguaje de alto nivel que incluso se utiliza hasta el día de hoy en las universidades, pero jamás lo usé, y espero jamás tener que usarlo!
¡Qué año este eh! Había salido el "modernísimo" sistema operativo Windows 95, el cual jamás adopté asi como tampoco su predecesor (Windows 3.11 para trabajo en grupo) ya que me gustaba la consola tradicional, la cual seguí usando para desarrollar en Clipper y lenguaje C, de hecho hoy en día sigo manteniendo la costumbre de trabajar en modo texto, esto mismo lo estoy escribiendo desde el editor GNU/Emacs con X11 deshabilitado desde la Terminal del MacOSX Leopard.
Contaba con un 80486DX2, bastante anticuado incluso para ese año, y todo el software que salía comenzaba a diseñarse únicamente para ser ejecutado "bajo Windows", ¡qué problema! porque a mi no me gustaba Windows. Igualmente me digné a instalarlo (Con el entorno gráfico deshabilitado ¡claro!). Pero eventualmente lo levantaba para "hacer algo" e ir familiarizándome, lo bueno es que esas sesiones no duraban mas de 15" porque se colgaba :)
Todavía con la 80486DX2, obsoletísima, y "allá afuera" todo el mundo con Windows y Pentiums I y II... fuí y me compré lo último que había en ese momento, un Pentium II de 300Mhz, con aceleradora gráfica, 20GB de disco duro y 128MB de RAM. Contraté un servicio de internet e Instalé el nuevísimo Windows 98. Acá todo empezaba a tomar otro color, tener acceso a internet era tener acceso a toda la información que quisiese, eran un montón de cosas nuevas para ir descubriendo. Asi fue como también instalé por primera vez Linux, un Red Hat 5.0 y comencé a familiariarme con esta nueva plataforma (para mí, claro).
Linux era fabuloso, me había encantado y dedicaba todo el tiempo que podía a investigarlo, igualmente seguí utilizando Windows por algunos años más mientras iba jugando con diferentes cosas en ambas plataformas.
HTML combinado con JavaScript y CSS fue algo que inevitablemente comencé a escribir este año.
A pleno con ICQ, mIRC, Netmeeting, Netscape y todas esas aplicaciones que eran moneda corriente en ese año, había empezado a mirar el lenguaje de scripting del mIRC porque se me había antojado hacer algo con él :)
Con el mIRC estuve programando algún tiempo como relato más detalladamente acá.
Para este entonces ya había reemplazado el Red Hat por una distribución de Mandrake Linux (ahora Mandriva), mientras del lado de Windows desarrollaba looksharp y mantenía su sitio Web, comencé a hacer algunas rutinas en PHP para ir aprendiendo este lenguaje y utilizarlo en los sitios que desarrollaba.
Hasta el día de hoy lo sigo utilizando fervientemente.
Es muy común que en el aprendizaje de PHP se interactúe con alguna base de datos relacional, yo empecé utilizando MySQL.
Ya había dejado de mantener looksharp definitivamente, y había (¡por fin!) dejado de utilizar Windows. Para este entonces mi sistema operativo era un Linux Slackware, y ya le dedicaba "tiempo completo" a él. Este año conocí a Buanzo y me propuso participar de un proyecto al cual me uní como analista programador en lenguaje PHP. El proyecto tuvo un año de vida y aunque fue sinceramente un fracaso comercial la pasé muy bien, aprendí mucho y conocí gente copada, entre los que no puedo dejar de nombrar al DBA Juan Castaño del cual aprendí un montón de bases de datos relacionales usando PostgreSQL.
Después del proyecto anterior cada cual siguió su rumbo, excepto Buanzo que empezó a trabajar como consultor en IntraRedes SRL y me presentó para ocupar el puesto de analista programador que había vacante, el cual obtuve, así que estuvimos trabajando un tiempo más juntos hasta que el se fué a los pocos meses. Yo sigo en IntraRedes hasta el día de hoy.
En un principio entré programando fuertemente en Perl y PHP interactuando con MySQL y PostgreSQL sobre plataforma SuSE Linux y posteriormente me fuí abriendo hacia otras tecnologias.
En lo personal me había pasado a Gentoo Linux para el escritorio y OpenBSD para servidores, el primero lo usé algunos años hasta que lo reemplacé por Arch Linux, y el segundo lo sigo utilizando hasta el día de hoy.
Seguí trabajando en IntraRedes, la cantidad de experiencias, proyectos en los que participé, y tecnologias que manipulé de una u otra forma, fueron muchísimos, solo enumeraré brevemente: PHP, Perl, HTML, CSS, JavaScript, AJAX, Java, Java Me, C, Win32 C++ y Bash por el lado de la programación, MySQL, PostgreSQL, DB2 y Oracle por el lado de las bases de datos, también utilizo bastante directorios LDAP y otros servicios como Apache y Tomcat.
A Java comencé a acercame a principios del '06, si bien hice algunas cosas eventuales, nunca pude dedicarle el tiempo suficiente para dominarlo como se debería.
Lo mismo con Java Micro Edition, la versión para dispositivos móviles.
MacOSX habia crecido mucho, la versión 10.4 (Tiger) era tan sólida y estable como un BSD (de hecho es un FreeBSD cerrado) y la experiencia gráfica le llevaba al menos 10 años de ventaja a Windows, en cuanto a efectos visuales, Compiz-Fusion se lleva todos los premios, pero su estabilidad aún deja mucho que desear, en MacOSX no abusan de ellos y es un verdadero placer utilizar su interfaz. Yo para este entonces tenía un Athlon XP 2.4 con Arch Linux y quería comprar un portatil, así que me decidí por un iBook G4 1.2, hermoso hardware y sistema operativo, y así fue como me introduje en el maravilloso mundo de las Mac's.
Después de casi un año usando mitad Arch Linux, mitad MacOSX Tiger, pude reemplazar mi iBook G4 por un Macbook Black Core 2 Duo, lo último hasta la fecha de la linea Macbook. Con lo cual confirmé el mito de que "Cuando usas una Mac, ya no hay retorno", simplemente agregar que... es un viaje de ida :). Hoy por hoy es la única máquina que utilizo como escritorio (a nivel servidor sigo utilizando OpenBSD). Su última versión, el MacOSX Leopard... bueno que puedo decir, miren por ustedes mismos.
En cuanto a la parte de desarrollo, esta todo integrado en XCode, con el se puede hacer de todo para Mac, incluso las últimas versiones ya traen emulador de iPhone para hacer aplicaciones que ejecuten en estos nuevos dispositivos.
Me gustaría aprender Ruby (incluyendo On Rails) que me parecen un lenguaje y framework potentes y muy bien diseñados, me gustaría darles uso para toda la parte de desarrollo web enabled.
También quisiera aprender Objective C para hacer algo de desarrollo personal para Mac, pero hoy por hoy no dispongo de mucho tiempo libre ni para Ruby, ni para Objective C, igualmente espero que dentro de poco pueda empezar a profundizar en al menos uno de ellos y agregar otro "Hello World!" a esta linea de tiempo pero ya sin signos de pregunta ;)