Antiguo BlogGNU/LinuxKernel LinuxLinux

Filosofía UNIX

La filosofía de UNIX resume en gran medida las características de los grandes sistemas operativos de nuestros días: Linux, BSD y Solaris entre otros (en el caso de Mac por ejemplo aunque es un derivado de UNIX desconozco sus características ya que es un sistema cerrado: lo tomas o lo dejas).

Esta se puede resumir con una frase: Do one thing and do it well, lo que se puede traducir como Haz una cosa pero hazla bien. Existen diferentes versiones, en las cuales no voy a entrar, pero esta es la que a través de Google he encontrado más completa (traducida al castellano):

  • Haz que cada programa haga una cosa y la haga bien.
  • Para llevar a cabo una nueva tarea escribe un programa nuevo. No compliques uno viejo añadiendo nueva funcionalidad.
  • Escribe tu programa teniendo en cuenta que su salida probablemente sea la entrada de otro programa. No llenes stdout con información innecesaria ni utilices formatos raros.
  • Guarda los datos en archivos de texto plano. Si necesitas seguridad, confía en los permisos.
  • Usa nombres cortos y en minúscula.
  • Si no es imprescindible, no pidas nada de forma interactiva: haz que el usuario suministre los datos por línea de comandos en la llamada.
  • Haz partes simples conectadas mediante interfaces limpias y bien definidas.
  • Céntrate en los datos. Si has elegido las estructuras adecuadas y organizado todo correctamente, los algoritmos serán evidentes.
  • Claridad mejor que complejidad. La solución más simple es frecuentemente la mejor: añade complejidad solo donde sea indispensable.
  • Portabilidad mejor que eficiencia.
  • Piensa en paralelo. Hay otros procesos en el mundo, incluso instancias de tu mismo programa funcionando al mismo tiempo.
  • Haz un programa grande sólo cuando haya quedado demostrado que no puede hacerse con uno pequeño.
  • Si tu programa no tiene nada interesante que decir, que no diga nada.
  • No existe una única manera de hacerlo. Cada problema tiene múltiples soluciones.
  • Diseña pensando en el futuro, está más cerca de lo que piensas.
  • Unix no pide por favor.

Referencias:

Estos puntos han sido copiados literalmente del artículo ~$ Unix: Historia, Filosofía y Estándares, del blog ~$ thefuckingshit.org con licencia ~$ Creative Commons Reconocimiento-Compartir bajo la misma licencia 2.5 España (~# Free Cultural Works).

[en.wikipedia.org] ~$ Unix philosophy