web-dev-qa-db-fra.com

Pourquoi les noms d'appel système UNIX / POSIX sont-ils si illisibles?

Quelle est la raison d'utiliser de tels noms d'appel de système sans vélo tels que time et creat au lieu de getCurrentTimeSecs et createFile ou, peut-être plus approprié sur UNIX get_current_time_secs et create_file. Ce qui m'amène au point suivant: pourquoi quelqu'un devrait-il vouloir quelque chose comme cfsetospeed sans cas de chameau ni au moins des traits de soulignement pour le rendre lisible? Bien sûr, les appels auraient plus de caractères mais nous savons tous que la lisibilité du code est plus importante.

43
Benjoyo

dR01 a raison, mais il y a aussi une autre raison - convivialité. De retour dans la journée, vous n'aviez pas quelque chose d'aussi confortable qu'un clavier pour taper. Si vous avez eu de la chance, vous avez eu quelque chose de semblable à une machine à écrire de la vieille école. Si vous avez mal rencontré, vous avez dû traiter des systèmes nécessitant des travaux physiques réels à fonctionner (comme dans, il a fallu beaucoup de force pour appuyer sur la "touche") ou des trous frappés manuellement sur une carte.

Cela signifiait que même dans la limite de 6 à 8 caractères, vous avez essayé de garder vos commandes aussi courtes que possible. C'est pourquoi vous avez ls au lieu de list et creat au lieu de create. Le code de cette époque est rempli de variables comme a, x et i - et bien sûr, x2 et amis. La dactylographie a été beaucoup de travail - aujourd'hui, vous êtes moins exercé de la dactylographie listIndex que vous veniez de "taper" i - et ce n'est même plus que plus lent (surtout avec des technologies supplémentaires telles que l'achèvement automatique).

La vraie question est - pourquoi de nombreuses idiomes UNIX persistent-elles même si elles ne sont plus souhaitables?

26
Luaan

En plus des autres réponses, je voudrais souligner que l'UNIX a été développée comme une réaction aux multicomanes, CTSS et d'autres systèmes d'exploitation contemporains, qui étaient de manière significative plus verbeuse sur leurs conventions de nommage. Vous pouvez avoir une idée de ces OSES à http://www.multiciens.org/devdoc.html . Par exemple, http://www.multiciens.org/mspm-bx-1-00.html donne change_name comme la commande pour renommer un fichier; Comparez UNIX mv.

En outre, la principale raison pour laquelle les noms d'appel système très courts persistent est la compatibilité en retard. Vous remarquerez que les nouvelles API ont tendance à être plus explicites; par exemple. gettimeofday et clock_gettime au lieu de juste time.

(Même aujourd'hui, en utilisant whateverIndex au lieu de i _ pour un index de boucle est une défaillance automatique de l'examen de code dans mon livre ;-)

22
zwol

Dennis Ritchie s'est fixé une contrainte avec C que cela ne s'appuierait pas sur des caractéristiques de liaison qui n'étaient pas également requises par Fortran. D'où la limite de 6 caractères sur les noms externes.

10
user207421