Pregunta

Epigramas en Programación por Alan J. Perlis:

  

22. Un buen sistema no puede tener un lenguaje de comandos débil.

¿Qué significa esto? ¿Cuáles son buenos ejemplos de este principio?

¿Dónde puedo encontrar más información sobre cómo implementar un langauge comando que cumple este criterio?

¿Fue útil?

Solución

Hay que saber algo del contexto en que se formuló. El artículo enlazado solamente se publicó en 1982 y cualquiera de esos epigramas sola podría ser décadas mayor. Sin embargo, incluso antes de 1982 fue mi tiempo y mis impresiones de entonces pertinentes son:

  • Los sistemas informáticos fueron más altamente especializado para una tarea específica.
  • Sistemas tenían los operadores dedicados (que no eran programadores) formados en sistemas específicos.
  • El conocimiento de un sistema no transfirió fácilmente a otro sistema. (Hoy en día se entrena operadores en específico Programas , pero rara vez en combinaciones específicas de hardware + OS. En otras palabras, los sistemas se han vuelto más similar y adoptado normas y convenciones.)

El "lenguaje de comandos" sólo significa shell scripting hoy. Recuerde que en un intérprete de comandos escribe "comandos".

Los fundamentos fuera del camino, esto me está hablando acerca de The Way ™ Unix.

Comparación de cómo los programas de Windows pueden tener un tiempo mucho más difícil con la automatización y muchos programas (e incluso el sistema operativo) requiere una interfaz gráfica de usuario que cambiar algunos ajustes. (La actitud hacia algo que está cambiando con Microsoft PowerShell, pero todavía le falta los décadas de la experiencia en el seguimiento de este principio que otros sistemas operativos tienen.)

Futhermore, cuando el modo básico de funcionamiento para cualquier usuario es lenguaje de comandos de su sistema (como lo fue para Unix en 1982), a continuación, su lenguaje de comandos es fuerte de otra manera: todos los usuarios saben cómo para usarlo y no tener que aprender herramientas separadas. En esa situación, no hay nada que el sistema puede hacer lo que el lenguaje de comandos no se puede lograr, porque El lenguaje de comandos de manera efectiva es sistema .

No conozco ningún recurso sencillo que explica en detalle todas estas ideas y que se puede utilizar como una hoja de ruta para implementar su propio lenguaje de comandos. El concepto es más etéreo que escrito en piedra, como los otros epigramas son también en general. Os animo a leer sobre Unix en general, conchas (por ejemplo, el estándar de POSIX para sh, y otros, como bash), otros idiomas shell scripting (cualquier cosa con una línea tinglado, como Perl y Python), y así sucesivamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top