Programando para Linux

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

Este artículo trata de hacer un programa siguiendo los estándares de los programas para Linux. La mayoría de programas de terminal de Linux cumplen en mayor o menor medida unas pautas para facilitar su uso y aprendizaje. Estas están relacionadas con la filosofía UNIX. Que, resumiendo, se trata de hacer programas que hagan una cosa y la hagan bien, que puedan trabajar juntos y que manejen texto, ya que es la interfaz universal. De esta manera, difícilmente, un programa que solo tenga interfaz gráfica, que haga de todo un poco pero nada demasiado bien o que tenga una formato propietario para guardar sus datos, podrá cumplir los ideales de esta filosofía.

Dentro de esta manera de pensar, otros autores han concretado más las reglas para hacer un buen programa para Unix. A continuación voy a resumir las que me parecen más relevantes y intentaré cumplir en este artículo:

  • Modularidad: Todo programa mínimamente complejo ha de estar formado por módulos que se comunican con unas interfaces bien definidas para poder mejorar los módulos por separado.
  • Claridad: Se debe hacer código legible por el programador y otros. Como se trata de hacer software libre esta regla es bastante importante.
  • Composición: Nuestro programa ha de poder comunicarse fácilmente con los demás para poder hacer comandos más complejos. Por ejemplo, los comandos cat, cut, tr, grep, sed... se pueden poner sin problemas entre | para ir filtrando un texto.
  • Simplicidad: Un programa potente no es necesariamente un programa con miles de opciones y parámetros. Algunos comandos pueden descorazonar al usuario al entra en su manual. Si el programa ha de ser complejo, se debería facilitar un uso básico fácil y una curva de aprendizaje asequible.
  • Robustez: El programa ha de ser capaz de hacer bien su trabajo en cualquier condición.
  • Pocas sorpresas: El programa tendrá una interfaz similar a todos los demás. Por ejemplo, el signo + ha de significar siempre sumar o añadir algo.
  • Silencio: A menos que se le indique, el programa solo sacará los datos pedidos. De esta manera, se pueden enlazar los programas.
  • Fallos ruidosos: Si algo falla, el usuario ha de ser consciente de todos los detalles.
  • Economía: En términos de ciclos de reloj y espacio en memoria.
  • Utilizar ficheros de texto plano: Puede que no sea lo más eficiente. Pero los podrá entender cualquiera y los podrá utilizar cualquier programa. Si es necesario, se pueden comprimir después.
  • Preferencia por la terminal: Todo lo que se puede hacer de forma gráfica se ha de poder hacer por terminal.

A lo largo del artículo nos centraremos en cómo hacer todo esto de manera técnica.

El programa

Hay programas para casi todo en la terminal y no voy a poder hacer algo totalmente nuevo.