Filosofía Unix




La simplicidad con que trabaja Unix ha servido en su buen desarrollo para asegurar un buen trabajo y que a través del tiempo pueda seguir creciendo .



Según Doug Mcllroy puede resumirse en la siguientes frases:

Programas que hagan una única cosa y la hagan bien.
Esto significa que los programas tiene que ser lo mas indivisibles posible y que pueda comprobar su rendimiento y funcionamiento para hacerlo lo mejor posible.

Que la hagan bien y con una gran capacidad de intercomunicación.
Esto significa que debemos hacer dividir un problema en varios programas, y luego podemos desechar o modificar uno solo de esos pequeños programas cuando se necesite y no tener solo un programa que nos sirva para una tarea especifica que cuando toque modificarlo haya que reescribir todo el programa.

Que manejen Streams de texto, pues es una forma de interfaz universal.
Esto significa que un Streams de texto es más fácil de enlazar la información entre los programas, y se puede utilizar en cualquier momento.


Otro punto de vista sobre la filosofía nos la proporciona Mike Gancarz de la sigueinte forma:

•Lo pequeño es hermoso.
Lo pequeño es fácil de manejar por lo cual es algo que nos llama la atención.
•Haz que cada programa haga una sola cosa, pero que la haga bien.
Se debe hacer lo más indivisible los programas y lograr que este cumpla los requisitos y los cumpla bien.
•Construye un prototipo lo antes posible.
La creación de nuevas ideas las debemos de plasmar lo mas antes posible en un prototipo e ir creando mejoras a partir de el.
•Elige portabilidad sobre eficiencia.
La portabilidad nos permite una la comunicación entre los programas y la portabilidad nos proporciona esta característica.
•Guarda los datos en archivos de texto plano.
Los archivos de texto permiten enlazar la información entre los programas más fácilmente, y se puede utilizar en cualquier momento.
•Aprovecha funcionalidades del software.
Hay que aprovechar las funcionalidades que se tienen para extenderlas en otros programas.
•Usa scripts de shell para aumentar la funcionalidad y portabilidad.
Los scripts del Shell nos permiten aumentar la funcionalidad y portabilidad en los programas ya que permiten usar funciones que ya están hechas.
•Evita interfaces de usuario captivas.
Permitir ver los comandos que ejecutan junto con todos los argumentos.
•Haz de cada programa un filtro.
Aquí podremos decir que el filtro se encargara de se quede todo lo bueno y que lo que no nos sirve hay que desecharlo.

fuente http://bosqueviejo.net/wordpress/2008/09/



Otro punto de vista nos lo da Eric Steven Raymon en su libro The art of Unix programming en el cual el describe 17 reglas con las cuales quiere expresar el principio de Kiss (keep it simple stupid) que se aplican en el desarrollo de Unix y el cual dice que un programa debe de cumplir un objetivo y evitar la complejidad innecesaria.


fuentehttp://www.dutudu.mideann.net/gtd/2008/03/15/aplicar-la-filosofia-de-unix- a-la-productividad-personal/

En conclusión el software nos debe servir y ser útil en cualquier momento para solucionar un problema dado a las personas y que esta solución permita extenderse y ayudar en los problemas que presenten en el futuro, ya que un buen sistema de productividad nos ayuda automatizar la información.


Entre los sistemas que usan la filosofia Unix esta GNU/LINUX a continuacion les dejo un link para que puedan darse una idea que como unix puedo ir evolucionando a traves del tiempo.
Tambien aprovecho para recomendarles este docuemental sobre linux que nos muestra como ha sido desarrollado.
link: filosofia-gnu/linux
link: Documental gnu/linux

22 comentarios:

Eliabd dijo...
Este comentario ha sido eliminado por el autor.
Eliabd dijo...

Buen post. En cierto modo, estas filosofias mas que todo van orientadas a personas que desarrallan software, ya que ellos son los que crearan una solucion a los problemas que se les presenten. Pero estas filosofias no mensionan en ningun punto que sean faciles de usar y de entender, como que las cosas se hacen como a cada quien mejor le parece.

fagoner dijo...

Lo que mas me parecio interesante, es la parte donde indican que lo pequeño es hermoso, y una cosa bien hecha. A veces en nuestro entorno preferimos un programa que haga bien las cosas, a que solo se mire bien, Unix lo explica de la mejor manera.
Buena onda por la información :D
Saludos

neobrr dijo...

Me llegó tu publicación concisa y al grano.
Por otro lado me parece interesante lo del apartado K.I.S.S. y como aplicarlo al diario vivir. Pienso que las cosas mientras mas simples se mantengan, serán mas entendibles y manipulables para mas personas, lo que hará "usable" un producto de software, a la vez que las actualizaciones y/o correcciones de parte del desarrollador, tambien reduciran su tiempo de ejecución.

billy dijo...

>Eliab, si como decis las filosofias no mensionan que aunque sean simples sean faciles de usar , pero lo hacen asi para que puedan extender si funcionalidad.

>fagoner, las cosas pequeñas tiene que ser bien echar por que desde alli se parte para poder crear algo nuevo y para que no tengamos problemas despues debemos de hacerlo bien desde un principio

>Neobrr,algunas cosas de la vida podemos aplicar la filosofia kiss,estoy de acuerdo con lo de que las cosas simples por que es la base y si se mantienen asi podra ayudarnos a o nosotros y a otras personas que lo necesiten en el futuro.

elpeladero dijo...

Haces una revisión muy general de los temas, cuando pudiste extender mas en los mismos, por ejemplo con respecto del punto de vista que proporciona Mike Gancarz, sobre "Haz de cada programa un filtro", en que parte podemos ver concreta mente este principio??

elpeladero dijo...

Por cierto, me parece muy interesante el principio K.I.S.S. Y sobre todo el uso de los enlaces, ya que das la posibilidad de que se extienda mas en el tema, si así se desea.

billy dijo...

el principio de hacer un filtro de cada programa, los podemos ver en cada version de unix que iva saliendo o en algun programa que se estaba desarrollando, por que si habia algo que ya estaba obsoleto o habia otro componente que lo hacia mejor, hay que filtar todo eso para que podamos verlo de una forma mas simple para simplificar los procesos que lo requieran.

Incoming dijo...

Pues se puede ver que esto de la filosofía nos ayuda a entender que son varios programas que interactúan entre si y esto de que sean varios programas es porque cualquier persona puede venir ver el código y tal vez hacer modificaciones o nuevas aplicaciones y compartirlas, no caer en el monopolio de que solo una persona viene hace algo y él es el único que puede hacer cambios, que mejor que contar con una gran comunidad que trabaje para ayudarse.

[DRUMMER] dijo...

Me gustó mucho tu post, esta bien enfocado a lo que solicitó el auxiliar. Voy a excudriñar mas a fondo lo de K.I.S.S. nunca antes había escuchado de eso, saludos!

TheAlex dijo...

Hay puntos interesantes que mencionas, aunque no de manera leve, pero abordas todos los temas que tiene que ver con la filosofia, pero aunque he visto que nadie aborda que unix esta dividido en dos partes, programas y SO, que aunque el desarrollo al final es lo mismo, se pueden abordar distintos puntos de vista de acuerdo a cada punto de vista.

you jen dijo...

Interesantes todos los puntos y aun mas lo de k.i.s.s., la informacion esta bien resumida y abarcando todo lo que se requeria, a mi opinion muy buen trabajo

aniga_benep dijo...

La Especialización, algo a lo que no estamos tan acostumbrados ya que nos enseñan a hacer de todo, pero que más sin embargo nos permite acoplarnos y enfocarnos en algo convergente, por lo mismo el enfoque de algo especifico, manejable, y pequeño, nos hace participes de poder mejorarlo continuamente y por ende perfeccionarlo, lo que en ocasiones hace que poco a poco estas cosas vayan creciendo, algo que esta filosofia procura ir guardando.

Masi dijo...

Me parece sumamente interesante lo de K.I.S.S, pienso que todos los programadores deberiamos de pensar asi, es decir, no complicarnos tanto la vida haciendo software que de tan complejo que es, no lo puede usar un usuario promedio, es mejor hacerlo simple pero funcional, que cumpla con sus objetivos, y que sea de facil manejo.

darkConsole dijo...

buen post, en realidad es bueno saber esta informacion, ya que se va por la vida haciendo o utilizando las cosas sin saber el trasfondo de este, pero como es mejor saber sus origenes para poder aprobechar mas el recurso, que mas que el de un SO como el padre de linux que tanto utilizamos en la carrera, lamentablemente en el ambiente laboral es raro utilizar esta herramienta tan util, pero esta filosofia puede ser utilizada en cualquier entorno

levitajcmcm dijo...

es filosofia de KISS no me la sabia, pero me parece muy interesante, gracias por el ingrediente extra, que ademas de los conocimientos nuevos sobre la filosofia de unix, aporto mucho con palabras que se podrian decir que hasta son abusivas al momento de oirlas detenidamente, pero que expresan una idea breve pero concisa... gracias por el post

Ana Ruano dijo...

Muy buen post tiene muchisima razon con respecto que el software nos debe ser util en cualquier momento para dar solución a un problema y que pueda extenderse y la verdad UNIX es un gran ejemplo de ello

b3@ dijo...

:) Precisamente comentaba en otro blog del curso, sobre la filosofia K.I.S.S., es una de las filosofias que me parece bastante concreta, al grano. Respecto a ésta, estoy bastante de a cuerdo con ella ya que se centra en realizar las cosas lo mas simple y sencillo posible, siguiendo dicha filosofía será mas sencillo programar, y debido a que se realizará código que se encarga de tareas específicas, será mas simple tambien al momento de darle mantenimiento al mismo o encontrar errores.

edwinnajera dijo...

EL contenido del mismo fue concreto y conciso, y el manejo del tema adicional KISS fue excelente. Ahora bien solo me surge una pregunta, en todas las distros de GNU/Linux se lleva a cabo las filosofías Unix o existe alguna distro que altera sutilmente alguna de las filosofías.

gersoft dijo...

También me ha parecido interesante la filosofía K.I.S.S.

Por otro lado, mencionaste que entre las características asociadas a la filosofía UNIX está el aprovechar al máximo su funcionalidad: por lo general, las aplicaciones de software de GNU/Linux están compuestas de varios módulos, muchos de los cuales pueden ser (o son) utilizados por otras aplicaciones, haciendo por lo tanto un uso eficiente del espacio de almacenamiento, cosa que no veo en el software privativo, normalmente asociado a Windows.

Muy buena publicación Billy.

¡Saludos!

chentex dijo...

yo no habia oido hablar de la filosofia KISS y me parece muy acertada, muy buena informacion pupy!!

TuxMaster dijo...

El principio KISS es realmente la esencia de lo que deberia ser todo software de forma que siempre de hacer lo que sea el objetivo de una forma lo mas sencilla posible(pero funcional) sin meter tantas funcionalidades inncesarias o complejdiad que se pelean con la usabilidad.