Dil təbəqələri

Hey Habr!

Məqalənin tərcüməsini diqqətinizə çatdırıram”Dil qatları» Robert C. Martin (Bob əmi).

Dil təbəqələri
Vaxtımı 1969-cu ildəki Lunar Lander adlı köhnə oyunu oynamağa sərf edirəm. Bu, orta məktəb şagirdi Jim Storer tərəfindən yazılmışdır. O, bunu FOCAL-da PDP-8-də yazdı. Proqram belə görünür:

Dil təbəqələri

Və burada FOCAL üçün mənbə kodu:

Dil təbəqələri

Jim Storer kifayət qədər istedadlı orta məktəb şagirdi idi. Bu koda nəzər salın. Orada olduqca maraqlı Taylor ifadələri var.

Əsasən, mən ardıcıl istifadə edildikdə gəmini mükəmməl şəkildə endirəcək K-nin dəyərini müəyyən etmək üçün ikili axtarış aparıram. Beləliklə, mən proqramı elə dəyişdirdim ki, o, yalnız bir dəyəri qəbul etsin və sonra gəmi yerə enənə və ya qəzaya düşənə qədər onu bir neçə dəfə tətbiq etsin. Bunu yazarkən cavabın 76.40625 və 76.4453125 arasında olduğunu bilirəm və 76.4257813-ü sınayacağam. Cavabı tapana qədər vaxtım bitəcəyini düşünməyə başlayıram.

Bu arada ağlıma gəldi ki, bu proqramı emulyatorda işlədirəm PDP-8, iPad üçün Lua dilində yazan.

Yaxşı, gəlin bu barədə düşünək.

  • iPad-də çip var A8X, gigahertz və ya daha çox sürətlə işləyən üç nüvə ilə.
  • Lua C dilində yazılmışdır və A8X-ə tərtib edilmişdir.
  • PDP8 emulyatorum paketdən istifadə edərək Lua dilində yazılmışdır CODEA İki Həyat Sol bölməsindən.
  • FOCAL 1960-cı illərin sonlarında PDP8-də yazılmışdır.
  • Lunar Lander FOCAL-da yazılmışdır.

Beləliklə, bunlar A8X, C, Lua, PDP8 və FOCAL-dır. Bunlar beş fərqli dildir. Maşına nə edəcəyini söyləyən beş fərqli mexanizm; hamısı bir-birinin üstünə yığılıb!

Bu nədir? Niyə bu qədər dil var? Əslində, iPad, PDP-8, C, Lua və başqa hər şeyi unut. Niyə bu qədər dil var?

##Niyə bu qədər çox dil var?

Fikirləşin! Neçə proqramlaşdırma dilinin adını çəkə bilərsiniz? Budur, sizə kiçik bir siyahı verim:

  • FORTRAN
  • ALQOL
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SİMULA
  • KÜÇÜK DANIŞMA
  • EIFEL
  • C + +
  • JAVA
  • C#
  • PİTON
  • RUBY
  • LOGO
  • LUA
  • BASIC
  • PL/1
  • CAVASCRIPT
  • GO
  • DART
  • PROLOQ
  • Dördüncü
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • YAXŞI

Əlbəttə ki, qeyd etmədiyim başqaları haqqında düşünə bilərsiniz. Sual budur ki, niyə onların sayı bu qədər çoxdur? Bu sualın həqiqətən yalnız bir cavabı ola bilər. Bu qədər çox kompüter dilinin olmasının səbəbi:

Onları bəyənmirik.

Yaxşı, bəlkə də bu, çox güclü bəyanatdır. Bəlkə deməliyəm:

Hollivudda idik.
Redwoodda idik.
Qızıl kod üçün okeanı keçdik.
Biz ağlımızdan çıxdıq
O qədər incə bir xəttdir.
Bu, bizi qızıl kodu axtarmağa vadar edir.

Biz isə qocalırıq.

Yaxşı, bəlkə də öz adımdan danışım... Sən sadəcə Nil Yanqa qışqırmaq istəmirsən ki, şikayət etməyi dayandırıb gözəl qız tapıb onunla yaşasın? Ona qızıl ürək axtarışının əbəs olduğunu söyləmək istəmədinmi? Mənə deyin, tapsaydı, onunla nə edərdi?

Və ideal bir dil tapsaq, onunla nə edərdik?

8-cu ildə orta məktəb şagirdi tərəfindən yazılmış "Lunar Lander" oyunu oynamaq üçün PDP-1969 və FOCAL emulyatorları yaratdıq!

Mən belə düşünürəm.

Bununla məşğul olun. Axtarmağı dayandırın. Mükəmməl dil yoxdur. Hər yerə baxdıq. Biz yuxarıdan və aşağıdan baxdıq. İçəri və çölə baxdıq.

Dillərə hər iki tərəfdən baxdıq.
Inside və həyata
və hələ də bu və ya digər şəkildə.
Unutmayaq ki, bunlar linqvistik illüziyalardır.

Dillərdən heç nə başa düşmürük...
… bütün.

Bəli, bu gün qeyri-adi bir gündür.

Ancaq buna baxmayaraq, məsələ budur:

Bizə başqa dil lazım deyil.
Evə gedən yolu bilmək lazım deyil.
İstədiyimiz tək şey həyatdan kənara çıxmaqdır.
SQL

Bəli, qəribə gündür.

Beləliklə, burada bir fikir var. Bəlkə də yeni dillər yaratmağı dayandırmalı və sadəcə sakitləşib həqiqətən yaxşı olan bir və ya ikisini seçməliyik. Bu, həyatı çox asanlaşdıracaq, elə deyilmi?

Və əgər maraqlanırsınızsa, 76.43844461 sizə olduqca yaxşı 2.23 MPH eniş verir.

Mənbə: www.habr.com

Добавить комментарий