Pergunta

A partir de Epigramas em programação Por Alan J. Perlis:

22. Um bom sistema não pode ter uma linguagem de comando fraca.

O que isto significa? Quais são os bons exemplos desse princípio?

Onde posso aprender mais sobre como implementar um comando Langauge que atenda a esses critérios?

Foi útil?

Solução

Você precisa conhecer parte do contexto em que isso foi formulado. O artigo vinculado foi publicado apenas em 1982 e qualquer um desses epigramas pode ser décadas mais velhas. No entanto, até 1982 era antes do meu tempo, e minhas impressões relevantes de então são:

  • Os sistemas de computador eram mais altamente especializados em uma tarefa específica.
  • Os sistemas tinham operadores dedicados (que não eram programadores) treinados em sistemas específicos.
  • O conhecimento de um sistema não transferiu facilmente para outro sistema. (Hoje você treina operadores em específicos programas, mas raramente em combinações específicas de hardware+sistema operacional. Em outras palavras, os sistemas se tornaram padrões e convenções mais semelhantes e adotados.)

A "linguagem de comando" significa apenas script de shell hoje. Lembre -se de que, em um prompt de shell, você insere "comandos".

Esses princípios estão fora do caminho, isso está falando comigo sobre o Unix Way ™.

Compare como os programas do Windows podem ter muito mais dificuldade com a automação e muitos programas (e até o sistema operacional) exigem que uma GUI altere algumas configurações. (A atitude em relação a isso está mudando com o Microsoft PowerShell, mas ainda está faltando o décadas de experiência em seguir esse princípio que outros sistemas operacionais têm.)

FutHermore, quando o modo básico de operação para qualquer usuário é O idioma de comando do seu sistema (como era para o UNIX em 1982), então o idioma do seu comando é forte de outra maneira: todos os usuários sabem como usá -lo e não precisam aprender ferramentas separadas. Nessa situação, não há nada que o sistema possa fazer o que a linguagem de comando não pode realizar, porque a linguagem de comando efetivamente é o sistema.

Conheço nenhum recurso único que explique todas essas idéias e que você pode usar como um roteiro para implementar seu próprio idioma de comando. O conceito é mais etéreo do que escrito em pedra, pois os outros epigramas também são em geral. Encorajo você a ler sobre o Unix em geral, conchas (por exemplo, o padrão de Posix para SH e outros como Bash), outras linguagens de script de concha (qualquer coisa com uma linha de Shebang, como Perl e Python) e assim por diante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top