viernes, enero 12, 2007

El lenguaje de programacion perfecto...

Hace unos meses, comencé de nuevo con un sueño olvidado hacia tiempo.
Este sueño es usar mi sistema GNU/Linux de manera diaria para quitarme terrible daño cerebral que dejo en mi vida usar Windows (desde el 3.11 hasta XP).
Y no es que Windows sea malo... es una buena idea pero esta TERRIBLEMENTE implementada y
simplemente para mi: tiene fecha de vencimiento.
Ahora me siento orgulloso de decir que solo utilizo Windows para imprimir mis ebooks... lastima que todavía lo utilizo... gracias Canon por no hacer drivers adecuados para tus malditas impresoras.

Claro, el proceso no fue fácil, eventualmente me di cuenta de que tenia los pies en el lodo mas de lo que parece... ha sido un largo camino, lleno de cambios de distribuciones, descargas interminables y discrepancias entre los mismos usuarios de GNU/Linux a los que acudía. Fue tan errático que hasta pensé en usar FreeBSD pero esa es otra historia.
Entonces desde que comencé con el proceso de migración solo me he preguntado algo que todo mundo que pasa por este proceso llega a preguntarse alguna vez...
¿Que uso para programar en GNU/Linux?
Y esa, querido lector, no es una pregunta fácil de contestar, porque hay un sin fin de lenguajes de desarrollo en este sistema. Y es que eso lo hace tan IMPORTANTE para un desarrollador de software.
Como el sistema es abierto y contiene una extensa (y muchas veces detallada) información acerca de su funcionamiento, es "fácil" para el programador adiestrado usar una herramienta adecuada (flex o bison) para crear la sintaxis de un lenguaje y tener en poco tiempo un interprete (de moda por el asunto multiplataforma) o un compilador.

Tan variada es la fauna de los lenguajes como los nombres que estos tienen:
Lisp, Fortran, Ada, Haskel, BASIC, C#, C/C++, Python, Pascal, Cobol...
Para ver una lista mas detallada click aquí
Y existen algunos tan ofuscados y oscuros, como los hay "esotéricos".
Brainfuck, Ook!, COW, Boolfuck, Nanopond, f*ckf*ck, Braintwist, Befunge...
Mi favoritos en lo personal Zombie y Brainfuck.
Muchos de estos surgen de la verdadera búsqueda del lenguaje perfecto para desarrollar y otros por simple diversión.

Pues bien, ahora tienen una idea de todo lo que hay y que (MUY probablemente) este implementado en GNU/Linux.
En este colorido camino, re-formulamos la pregunta anterior:
¿Que deseo desarrollar?
Y añadimos:
¿Deseo que sea multiplataforma?
Por que si bien Microsoft nos enseño que TODOS podemos usar una computadora, no nos ha enseñado que el Sistema Operativo debe de ser el que se adapta a mis necesidades y no al revés.
Y si bien BASIC (en todas sus horribles metamorfosis) nos demostró que TODOS pueden "programar" (mal la mayoría de las veces) no nos enseño que existe una variedad de lenguajes de programación orientados a funcionalidades especificas y que estos pueden facilitar la vida en ciertas áreas complicadas del desarrollo de soluciones informáticas.
Tomemos el caso de la Inteligencia Artificial, área truculenta de la codificación de algoritmos, que seria un suicidio mental implementar con COBOL o FORTRAN... señoras y señores para esos casos existe LISP.

Y es que al final, quizás esa es la primera lección del "programador": aprender a distinguir que lenguaje usar (que en gustos no hay nada escrito, pero por favor sean realistas) y en que caso usarlo ya que "La lógica es la misma, la implementación es la que cambia".

Hasta la proxima!.

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...