14.3.10

Filosofía

Unix ha probado lo que ningún otro sistema operativo puede imaginar. Diferentes versiones han funcionado sobre supercomputadores, PDAs, hardware de red, teléfonos móviles, videoconsolas etc, pero Unix es mucho más un sistema operativo. Unix se caracteriza por tener una filosofía y una forma diferente de ver las cosas, así como por ser el sistema operativo de los entusiastas de la informática. La complejidad de uso que le achacan los defensores de sistemas inferiores como MS Windows es vista por los usuarios de Unix como uno de sus mayores atractivos. La idea de conocer el funcionamiento interno del sistema, la posibilidad de modificar sus partes, de añadir nueva funcionalidad o su enorme fiabilidad y ausencia de cuelgues totales, ha hecho que mucha gente se identifique totalmente con este sistema operativo y se convierta en un ferviente defensor del mismo.

Al igual que Internet, Unix tiene una cultura propia, tiene un estilo de programación característico y lleva consigo una potente filosofía de diseño. Entender el mundo y la comunidad que rodea a UNIX es esencial para poder desarrollar software para él. Frecuentemente se acusa a esta comunidad de ser un grupo muy cerrado y reticente al cambio. Esto es bastante cierto y no parece que vaya a cambiar en un futuro próximo por lo que es conveniente familiarizarse con la filosofía que rodea al sistema para poder integrarse en su mundo.

Básicamente toda la filosofía de la programación en Unix se puede resumir con la frase “Do one thing and do it well”, pero en general hay una serie de pautas que deberían tenerse en cuenta:

* 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.

En caso de duda la regla universal a tener en cuenta es siempre la norma KISS: Keep it simple, stupid!

No hay comentarios:

Publicar un comentario