filosofia_unix

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
filosofia_unix [2021/12/12 02:39] peronfilosofia_unix [2022/03/28 16:29] (actual) peron
Línea 1: Línea 1:
 ====== Filosofía Unix ====== ====== Filosofía Unix ======
  
-Es una filosofía de programación orientada a buscar un entorno de trabajo interdependiente, en el cual se elaboran pequeñas aplicaciones capaces de operar en conjunto con otras.+Es una filosofía de programación ideada originalmente por los creadores del sistema operativo multiusuario [[Unix]], y orientada a buscar un entorno de trabajo cooperativo, en el cual se elaboran pequeñas aplicaciones capaces de operar en conjunto con otras.
  
-Fomenta el **concepto estético minimalista** según lo cual "lo simple es hermoso", e intenta transportarlo al arte de la programación y al diseño de sistemas de cómputo.+Fomenta el **concepto estético minimalista** según lo cual "lo simple es más hermoso", e intenta transportarlo al arte de la programación y al diseño de sistemas de cómputo.
  
-Su sentido práctico se basa fundamentalmente en ofrecer herramientas simples y transparentes creadas para un único propósito. Estas características implican robustez para trabajar en comunidad, ya que Las aplicaciones están pensadas especialmente pensando en su uso cooperativo con otras aplicaciones.+Su sentido práctico se basa fundamentalmente en ofrecer herramientas simples y transparentes creadas para un único propósito. Estas características implican robustez para trabajar en comunidad, puesto que Las aplicaciones están especialmente concebidas pensando en su uso cooperativo junto con otras aplicaciones.
  
 > "Lo que queríamos preservar no era sólo un buen entorno para programar, sino mas bien un sistema alrededor del cual pudiese formarse una [[pubnix|comunidad]]. Sabíamos por propia experiencia que la esencia del cómputo comunal en función del acceso remoto a [[tiempo de cómputo compartido|sistemas  de tiempo compartido]] no implica únicamente escribir programas desde una [[terminal de computadora|terminal]] en lugar de utilizar conmutadores, sino asegurar una comunicación cercana". Dennis Ritchie > "Lo que queríamos preservar no era sólo un buen entorno para programar, sino mas bien un sistema alrededor del cual pudiese formarse una [[pubnix|comunidad]]. Sabíamos por propia experiencia que la esencia del cómputo comunal en función del acceso remoto a [[tiempo de cómputo compartido|sistemas  de tiempo compartido]] no implica únicamente escribir programas desde una [[terminal de computadora|terminal]] en lugar de utilizar conmutadores, sino asegurar una comunicación cercana". Dennis Ritchie
Línea 11: Línea 11:
 Entre los preceptos filosóficos Unix se encuentra el de "todo es un archivo", "procesos cooperativos", "fronteras internas", "atributos de fichero y estructuras de datos", "formatos de archivos binarios". Entre los preceptos filosóficos Unix se encuentra el de "todo es un archivo", "procesos cooperativos", "fronteras internas", "atributos de fichero y estructuras de datos", "formatos de archivos binarios".
  
-Al contar con un punto de vista resultadista, se privilegia el intercambio de cadenas de texto simple, ya que se la considera una interfaz universal y de fácil transformación y procesamiento. +Al contar con un punto de vista //resultadista//, se privilegia el intercambio de cadenas de texto simple, ya que se la considera una interfaz universal y de fácil transformación y procesamiento.
  
-El concepto de "caños" o //pipes// en Unix ha sido una mecánica de trabajo altamente influyente. Permite llevar a cabo a nivel [[interpretes_de_comandos|intérprete de comandos]] un trabajo cooperativo entre distintas aplicaciones. En la práctica esto permite utilizar el caracter **|** para encaminar los resultados de texto de un programa (//salida//oficiarlas como objeto (//entrada//) a otro. De esta manera se pueden estructurar nuevos trabajos de manera creativa.+El concepto de "[[tutorial basico de la consola#caños|caños]]" o //pipes// en Unix ha sido una mecánica de trabajo cooperativo que resultó altamente influyente. Permite llevar a cabo a nivel [[interpretes_de_comandos|intérprete de comandos]] un trabajo simbiótico entre distintas aplicaciones, crenado nuevas estructuras creativas de trabajos, que minimizan esfuerzo de cómputo y de concepción.
  
 Mas adelante se agregó el concepto [[cliente]]-[[servidor]]. Mas adelante se agregó el concepto [[cliente]]-[[servidor]].
  
-==== Reglas de Diseño de programación UNIX ==== +Ver: [[Reglas de Diseño UNIX]]
- +
-Consisten en algunas reglas técnicas concernientes a la elaboración de programas en sistemas similares a Unix. +
- +
-  - **Regla de Modularidad**: Escribir partes simples conectadas por interfaces limpias. +
-  - **Regla de Claridad**: Claridad es mejor que inteligencia. +
-  - **Regla de Composición**: Diseña programas que se conecten con otros programas. +
-  - **Regla de Separación**: separa políticas de mecanismos, interfases de motores. +
-  - **Reglas de Simplicidad**: diseña buscando simplicidad, agrega complejidad sólo cuando debas hacerlo. +
-  - **Regla de parsimonia**: Escribe programas grandes sólo cuando es claro por demostración que nada mas podrá resolverlo. +
-  - **Regla de Transparencia**: diseña para visibilidad, para hacer el depurado y la inspección muy fácil. +
-  - **regla de Robustez**. Robustez es la unión de transparencia y simplicidad. +
-  - **Regla de Representación**: Divide el conocimiento en datos, de modo que la lógica del programa pueda ser estúpida y robusta. +
-  - **Regla de la menor sorpresa**: Al diseñar interfases, siempre haz lo menos sorprendente. +
-  - **Regla de Silencio**: Cuando el programa no tiene nada que decir, que no diga nada. +
-  - **Regla de Reparación**. Cuando falle, que falle ruidosamente y tan rápido como sea posible. +
-  - **Regla de Economía**: Tiempo de programación es cado, ahorrala en preferencia al tiempo de procesamiento. +
-  - **Regla de generación**: Evita hacking a mano; escribe programas que escriban programas. +
-  - **Regla de optimización**: Prototipea antes de pulir. Haz que funcine antes de optimizarlo. +
-  - **Regla de Diversidad**: Desconfía de "la única manera verdadera"+
-  - **Regla de extensibilidad**: Diseña para el futuro, pero será más pronto que lo pensado. +
- +
-> "Cuando estés en duda, emplea la fuerza bruta". Ken Thomson.+
  • filosofia_unix.1639276755.txt.gz
  • Última modificación: 2021/12/12 02:39
  • por peron