Couches linguistiques

Bonjour, Habr!

J'attire votre attention sur une traduction de l'article « Couches linguistiques » de Robert C. Martin (oncle Bob).

image

Je passe du temps à jouer à l'ancien jeu Lunar Lander de 1969. Il a été écrit par Jim Storer, un lycéen. Il l'a écrit sur PDP-8 dans FOCAL. Voici à quoi ressemble le programme:

image

Et voici le code source de FOCAL:

image

Jim Storer était un élève du secondaire assez talentueux. Jetez un oeil à ce code. Il a là des expressions très intéressantes de Taylor.

En général, je fais une recherche binaire pour déterminer la valeur de K, qui, lorsqu'elle est utilisée en série, atterrira idéalement le navire. Par conséquent, j'ai modifié le programme afin qu'il ne prenne qu'une seule valeur, puis je l'ai appliqué plusieurs fois jusqu'à ce que le navire atterrisse ou s'écrase. Au moment où j'écris ceci, je sais que la réponse se situe entre 76.40625 et 76.4453125, et je vais essayer 76.4257813. Je commence à penser que je vais manquer de temps avant de trouver la réponse.

Pendant ce temps, il m'est venu à l'esprit que j'ai exécuté ce programme sur l'émulateur PDP-8 , que j'ai écrit sur Lua pour l'iPad.

Alors, réfléchissons-y.

  • L'iPad a une puce A8X , avec trois cœurs fonctionnant à une fréquence gigahertz environ.
  • Lua est écrit en C et compilé en A8X.
  • Mon émulateur PDP8 est écrit en Lua en utilisant le package CODEA de la section Two Lives Left.
  • FOCAL a été écrit à la fin des années 1960 sur PDP8.
  • Lunar Lander a été écrit en FOCAL.

Ce sont donc A8X, C, Lua, PDP8 et FOCAL. Ce sont cinq langues différentes. Cinq mécanismes différents indiquant à la machine quoi faire; ils sont tous empilés les uns sur les autres!

Qu'est ce que c'est Pourquoi y a-t-il tant de langues? En fait, oubliez l'iPad, PDP-8, C, Lua et tout le reste. Pourquoi y a-t-il tant de langues?

## Pourquoi y a-t-il autant de langues?

Pensez-y! Combien de langages de programmation pouvez-vous nommer? Ici, permettez-moi de vous donner une courte liste:

  • FORTRAN
  • Algol
  • COBOL
  • SNOBOL
  • Lisp
  • Bcpl
  • B
  • C
  • SIMULA
  • SMALLTALK
  • Eiffel
  • C ++
  • Java
  • C #
  • Python
  • RUBY
  • LOGO
  • LUA
  • Basique
  • PL / 1
  • JAVASCRIPT
  • Allez
  • DART
  • PROLOG
  • FORTH
  • Rapide
  • ML
  • Ocam
  • OCAML
  • ADA
  • Erlang
  • Elixir
  • Focal

Bien sûr, vous pouvez penser à d'autres que je n'ai pas mentionnés. La question est, pourquoi y en a-t-il autant? Il ne peut vraiment y avoir qu'une seule réponse à cette question. La raison pour laquelle il y a tant de langages informatiques:

Nous ne les aimons pas.

Eh bien, c'est peut-être une déclaration trop forte. Je devrais peut-être dire:
Nous étions à Hollywood.
Nous étions à Redwood.
Nous avons traversé l'océan pour le code d'or.
Nous étions fous
C'est une ligne si fine.
Cela nous fait chercher un code d'or.

Et nous vieillissons.
D'accord, je devrais peut-être parler pour moi ... Ne voulais-tu pas juste crier après Neil Young pour qu'il cesse de se plaindre, trouve une fille sympa et vive avec elle? Ne voulais-tu pas lui dire que la quête d'un cœur d'or était inutile? Dites-moi, que ferait-il de lui s'il le retrouvait?

Et que ferions-nous du langage parfait si nous le trouvions?
Nous avons créé les émulateurs PDP-8 et FOCAL pour jouer le «Lunar Lander» écrit par un lycéen en 1969!
Voici ce que je pense.

Traitez-le. Arrêtez la recherche. Il n'y a pas de langage parfait. Nous avons cherché partout. Nous avons regardé en haut et en bas. Nous avons regardé à l'intérieur et à l'extérieur.
Nous avons examiné les langues des deux côtés.
À l'intérieur et à l'extérieur
et toujours de toute façon.
Nous rappelons que ce sont des illusions linguistiques.

Nous ne comprenons vraiment rien dans les langues ...
... absolument.
Oui, aujourd'hui est une journée inhabituelle.

Mais, néanmoins, le résultat est:
Nous n'avons pas besoin d'une autre langue.
Nous n'avons pas besoin de connaître le chemin du retour.
Tout ce que nous voulons, c'est aller au-delà de la vie.
SQL
Oui, un jour étrange.

Il y a donc une pensée. Peut-être que nous devons arrêter de créer de nouvelles langues et simplement nous calmer et choisir une ou deux qui sont vraiment bonnes. Cela rendra la vie beaucoup plus facile, non?

Et, si vous êtes intéressé, 76,43844461 vous donne un assez bon ajustement à 2,23 MPH.

Source: https://habr.com/ru/post/fr476644/


All Articles