Question

De épigrammes dans la programmation par Alan J. Perlis:

  

22. Un bon système ne peut pas avoir un langage de commande faible.

Qu'est-ce que cela signifie? Quels sont les bons exemples de ce principe?

Où puis-je en savoir plus sur la façon de mettre en œuvre une langauge de commande qui répond à ces critères?

Était-ce utile?

La solution

Vous devez connaître certains le contexte dans lequel qui a été formulée. L'article lié n'a été publié en 1982 et une seule de ces épigrammes pourrait être des décennies plus. Cependant, même avant 1982 était mon temps et mes impressions pertinentes puis sont:

  • Les systèmes informatiques étaient plus spécialisés à une tâche spécifique.
  • Les systèmes avaient des opérateurs spécialisés (qui n'étaient pas programmeurs) formés sur des systèmes spécifiques.
  • La connaissance d'un système ne transfère pas facilement à un autre système. (Aujourd'hui, vous formez les opérateurs sur des questions spécifiques programmes , mais rarement sur des combinaisons matérielles + OS spécifiques. En d'autres termes, les systèmes sont devenus plus semblables et adopté des normes et conventions.)

Le « langage de commande » signifie simplement aujourd'hui les scripts shell. Rappelez-vous que dans un shell vous invite, entrez « commandes ».

Les bases sur la voie, ce me parle de la façon dont Unix ™.

Comparer à la façon dont les programmes Windows peuvent avoir un temps beaucoup plus difficile avec l'automatisation et de nombreux programmes (et même le système d'exploitation) nécessitent une interface graphique pour modifier certains paramètres. (L'attitude envers qui est en train de changer quelque peu avec Microsoft PowerShell, mais il manque encore les décennies d'expérience en suivant ce principe que les autres systèmes d'exploitation ont.)

Futhermore, lorsque le mode de fonctionnement de base pour tout utilisateur est votre langage de commande du système (comme pour Unix en 1982), puis la langue de votre commande est forte d'une autre manière: tous les utilisateurs savent comment de l'utiliser et ne pas avoir à apprendre des outils distincts. Dans cette situation, il n'y a rien que le système peut faire que le langage de commande ne peut pas accomplir, parce que la langue de commande efficace le système .

Je ne connais aucune ressource unique qui précise toutes ces idées et que vous pouvez utiliser comme une feuille de route pour mettre en œuvre votre propre langage de commande. Le concept est plus éthérée que écrit dans la pierre, comme les autres épigrammes sont aussi en général. Je vous encourage à lire sur Unix en général, des coquilles (par exemple standard de POSIX pour sh, et d'autres comme bash), d'autres langages de script shell (quoi que ce soit avec une ligne de tralala, tels que Perl et Python), et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top