Domanda

Epigrammi in Programmazione da Alan J. Perlis:

  

22. Un buon sistema non può avere un linguaggio di comando debole.

Che cosa significa questo? Quali sono buoni esempi di questo principio?

Dove posso imparare di più su come implementare un langauge comando che soddisfi questo criterio?

È stato utile?

Soluzione

È necessario conoscere un po 'del contesto in cui che è stato formulato. L'articolo collegato è stato pubblicato solo nel 1982 e ogni singolo uno di questi epigrammi potrebbe essere decenni più vecchio. Tuttavia, anche 1982 è stato prima il mio tempo e le mie impressioni pertinenti quindi sono:

  • sistemi informatici sono stati più altamente specializzate per un compito specifico.
  • operatori
  • Sistemi erano dedicati (che non erano programmatori) formati sui sistemi specifici.
  • La conoscenza di un sistema non ha trasferito facilmente ad un altro sistema. (Oggi si formare gli operatori sulle specifiche programmi , ma raramente su specifici combinazioni hardware + OS. In altre parole, i sistemi sono diventati più simili e adottato gli standard e le convenzioni.)

Il "linguaggio di comando" significa solo scripting di shell oggi. Ricordate che in un prompt della shell si entra "comandi".

Queste basi fuori del modo, questo mi sta parlando in merito a Unix Way ™.

Confronto a come i programmi di Windows possono avere un tempo molto più difficile con l'automazione e molti programmi (e persino il sistema operativo) richiedono una GUI per modificare alcune impostazioni. (L'atteggiamento verso che è un po 'cambiando con Microsoft PowerShell, ma è ancora manca decenni di esperienza nel seguire questo principio che altri sistemi operativi hanno.)

Futhermore, quando la modalità di base del funzionamento di qualsiasi utente è linguaggio di comando del sistema (come è stato per Unix nel 1982), allora il vostro linguaggio di comando è forte in un altro modo: tutti gli utenti sanno come usarlo e non c'è bisogno di imparare strumenti separati. In questa situazione non c'è niente il sistema può fare, che il linguaggio di comando non può realizzare, perché il linguaggio di comando in modo efficace è il sistema .

Non conosco nessun singola risorsa che definisce tutte queste idee e che si può usare come una tabella di marcia per implementare il proprio linguaggio di comando. Il concetto è più etereo di scritto nella pietra, come gli altri epigrammi sono anche in generale. Vi incoraggio a leggere su Unix in generale, conchiglie (standard per esempio di POSIX per sh, e altri, come bash), altri linguaggi di scripting di shell (qualsiasi cosa con una linea shebang, come Perl e Python), e così via.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top