Couches linguistiques

Salut, Habr !

Je vous présente la traduction de l'article «Language Layers» de l'auteur Robert C. Martin (Uncle Bob).

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

Couches linguistiques

Et voici le code source en FOCAL :

Couches linguistiques

Jim Storer était un élève de lycée plutôt talentueux. Regardez ce code. Il contient des expressions de Taylor assez intéressantes.

En gros, j'effectue une recherche binaire pour déterminer la valeur de K qui, lorsqu'elle est utilisée de manière répétée, fera atterrir le vaisseau spatial en toute sécurité. J'ai donc modifié le programme pour qu'il n'accepte qu'une seule valeur, puis je l'applique plusieurs fois jusqu'à ce que le vaisseau atterrisse ou se crashe. Pendant que j'écris cela, je sais que la réponse se situe entre 76.40625 et 76.4453125, et j'essaierai 76.4257813. Je commence à penser que je vais manquer de temps avant de trouver la réponse.

Entre temps, il m'est venu à l'esprit que j'avais lancé ce programme sur un émulateur PDP-8, que j'ai écrit en Lua pour l'iPad.

Bien, réfléchissons à cela.

  • L'iPad a une puce A8X, avec trois cœurs fonctionnant à une fréquence d'environ un gigahertz.
  • Lua est écrit en C et est compilé en A8X.
  • Mon émulateur PDP8 est écrit en Lua, en utilisant le paquet 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.

Donc, il y a A8X, C, Lua, PDP8 et FOCAL. Ce sont cinq langages différents. Cinq mécanismes différents, indiquant à la machine quoi faire ; tous empilés les uns sur les autres !

Qu'est-ce que cela signifie ? Pourquoi autant de langages ? En fait, laissez de côté l'iPad, PDP-8, C, Lua, et tout le reste. Pourquoi tant de langages ?

##Почему существует так много языков?

Pensez-y ! Combien de langages de programmation pouvez-vous nommer ? Voici, laissez-moi vous donner une petite liste :

  • FORTRAN
  • ALGOL
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • SMALLTALK
  • EIFFEL
  • C++
  • JAVA
  • C#
  • PYTHON
  • RUBY
  • LOGO
  • LUA
  • BASIC
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORTH
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • FOCAL

Bien sûr, vous pouvez penser à d'autres que je n'ai pas mentionnés. La question est, pourquoi en existe-t-il autant ? Il n'y a réellement 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, peut-être que c'est une affirmation trop forte. Peut-être devrais-je dire :

Nous étions à Hollywood.
Nous étions dans la forêt de séquoias.
Nous avons traversé l'océan pour obtenir le code en or.
Nous étions hors de nous,
C'est une ligne si fine.
Cela nous pousse à chercher le code doré.

Et nous vieillissons.

D'accord, peut-être que je devrais parler pour moi-même... N'as-tu jamais voulu simplement crier sur Neil Young pour qu'il arrête de se plaindre, qu'il trouve une jolie fille et vive avec elle ? N'as-tu pas voulu lui dire que la recherche d'un cœur en or était vaine ? Dis-moi, qu'est-ce qu'il en aurait fait s'il l'avait trouvé ?

Et que ferions-nous avec une langue parfaite si nous la trouvions ?

Nous avons créé des émulateurs PDP-8 et FOCAL pour jouer à « Lunar Lander », écrit par un élève de lycée en 1969 !

Voilà ce que je pense.

Accepte cela. Arrête les recherches. Il n'y a pas de langue parfaite. 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.
De l'intérieur et de l'extérieur
et jusqu'ici d'une manière ou d'une autre.
Rappelons-nous que ce sont des illusions linguistiques.

Nous ne comprenons vraiment rien aux langues...
...du tout.

Oui, aujourd'hui est un jour inhabituel.

Mais, néanmoins, l'essence 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 dépasser la vie.
S.Q.L.

Oui, un jour étrange.

Alors, voici une idée. Peut-être devrions-nous cesser de créer de nouvelles langues et simplement nous calmer et en choisir une ou deux qui soient vraiment bonnes. Cela rendrait la vie beaucoup plus simple, n'est-ce pas ?

Et, si cela t'intéresse, 76.43844461 te donne un atterrissage plutôt bon à 2.23 MPH.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster