Salam, Habr!
Sizə Robert C. Martin (Uncle Bob) tərəfindən «» adlı məqalənin tərcüməsini təqdim edirəm.

Mən 1969-cu il «Lunar Lander» adlı köhnə bir oyunda vaxt keçirirəm. O, məktəbli Jim Storer tərəfindən yazılmışdır. O, onu PDP-8-də FOCAL dilində yazıb. Proqram belə görünür:

Bəs FOCAL-da olan mənbə kodu:

Jim Storer olduqca istedadlı bir məktəbli idi. Bu koda baxın. Orada olduqca maraqlı Taylor ifadələri var.
Ümumilikdə mən, gəminin mükəmməl enməsini təmin edəcək K dəyərini müəyyən etmək üçün ikilik axtarışı edirəm. Beləliklə, mən proqramı yalnız bir dəyər qəbul edəcək şəkildə dəyişdirdim, sonra onu bir neçə dəfə tətbiq edəcəm, gəmi enənə qədər və ya partlayana qədər. Bunu yazdığım müddətdə, cavabın 76.40625 ilə 76.4453125 arasında olduğunu bilirəm və 76.4257813-ni sınaqdan keçirəcəm. Düşünməyə başlayıram ki, cavabı tapana qədər vaxtım tükənəcək.
Bu arada, bu proqramı , iPad üçün Lua dilində yazdığım emulatorla işlətdiyimi düşünmüşdüm.
Beləliklə, yaxşı, bunu düşünək.
- iPad A8X çipinə malikdir Lua C-də yazılıb və A8X-də tərtib olunur.
- Mənim PDP8 emulatorum Lua dilində yazılmışdır,
- CODEA FOCAL 1960-cı illərin sonlarında PDP8-də yazılıb.
- Lunar Lander FOCAL-da yazılıb.
- Deməli, bu A8X, C, Lua, PDP8 və FOCAL-dir. Bunlar beş fərqli dil. Maşına nə edəcəyini göstərən beş ayrı mexanizm; hamısı üst-üstə düşür!
Bu nədir? Niyə bu qədər çox dil var? Əslində, iPad, PDP-8, C, Lua və hər şeyi unutun. Niyə bu qədər çox dil var?
Bunu düşün! Neçə proqramlaşdırma dilini adlandıra bilərsiniz? Budur, icazə verin sizə kiçik bir siyahı verim:
##Почему существует так много языков?
FORTRAN
- ALGOL
- COBOL
- SNOBOL
- BCPL
- LISP
- SIMULA
- B
- — TVM üçün ikili icra kodu istehsal edən Fift kitabxanası. Fift Yığmanın tərtibatçısı yoxdur. Bu,
- SMALLTALK
- EIFFEL
- JAVA
- dilində yazılıb və aşağıda Python ilə işə salınır
- PYTHON
- C#
- RUBY
- LOGO
- LUA
- BASIC
- PL/1
- JAVASCRIPT
- GO
- DART
- PROLOG
- FORTH
- SWIFT
- ML
- OCCAM
- OCAML
- ADA
- ERLANG
- ELIXIR
- FOCAL
- əlbəttə, başqa dilləri düşünə bilərsən ki, onları qeyd etməmişəm. Suallardan biri, niyə bu qədər çox dil var? Bu suala əslində yalnız bir cavab var. Bunun səbəbi, bu qədər proqramlaşdırma dilinin olmasıdır:
Biz onları bəyənmirik.
Yaxşı, bəlkə bu, çox güclü bir ifadədir. Bəlkə də deməliyəm:
Biz Hollivudda idik.
Biz Redvudda idik.
Qızıl kod üçün okeanı keçdik.
Biz ağlımızdadırıq,
Bu çox incə bir sərhəddir.
Bu, bizi qızıl kodu axtarmağa sövq edir.
Və biz yaşlanırıq.Yaxşı, bəlkə də, özüm üçün danışmalıyam... Sən, yəqin ki, Neil Young-a bağırmaq istəmirdin ki, şikayət etməyi dayandırsın, gözəl bir qız tapsın və onunla yaşayır? Siz ona qızıl ürəyi axtarmağın yersiz olduğunu demək istəmirdinizmi? Deyin, onu tapsa, nə edəcək?
Və biz, əgər onu tapsaq, mükəmməl bir dil ilə nə edəcəyik?
И что бы мы сделали с идеальным языком, если бы нашли его?
Biz PDP-8 və FOCAL emulatorlarını 1969-cu ildən məktəb şagirdi tərəfindən yazılmış "Lunar Lander" oyununu oynamaq üçün yaratdıq!
Mən belə düşünürəm.
Buna razılaşın. Axtarışları dayandırın. Heç bir mükəmməl dil yoxdur. Biz hər yerdə axtardıq. Yuxarıdan aşağıya, içdən çölə baxdıq.
Biz dillərə hər iki tərəfdən baxdıq.
İçdən və çöldən
və hələ də bu ya da o şəkildə.
Dilin illüziyalı olduğunu xatırlayırıq.Biz dillərdə həqiqətən heç nə anlamırıq...
... tamamilə.
Bəli, bu gün qeyri-adi bir gündür.
Amma hər halda, məsələ budur:
Bizə başqa bir dil lazım deyil.
Bizə evə gedən yolu bilmək lazım deyil.
Bizim istədiyimiz tək şey həyatın sərhədlərini aşmaqdır.
S.Q.L.
Bəli, qəribə bir gündür.
Beləliklə, bir fikir var. Bəlkə yeni dillər yaratmağı dayandırmalıyıq və sadəcə iki dildə sakitləşib, həqiqətən yaxşı olanları seçməliyik. Bu, həyatı çox asanlaşdırar, elə deyilmi?
Və əgər maraqlanırsınızsa, 76.43844461 sizə 2.23 MPH-ə kifayət qədər yaxşı bir eniş verir.
Mənbə: habr.com
