Til qatlamlari

Hey Xabr!

Men sizning e'tiboringizga maqolaning tarjimasini taqdim etaman "Til qatlamlari» Robert C. Martin (Bob amaki).

Til qatlamlari
Men vaqtimni 1969 yildagi Lunar Lander deb nomlangan eski o'yinni o'ynashga sarflayman. Bu o'rta maktab o'quvchisi Jim Storer tomonidan yozilgan. U buni FOCAL da PDP-8 da yozgan. Dastur shunday ko'rinadi:

Til qatlamlari

Va bu erda FOCAL uchun manba kodi:

Til qatlamlari

Jim Storer juda iqtidorli o'rta maktab o'quvchisi edi. Ushbu kodni ko'rib chiqing. U erda juda qiziqarli Teylor iboralari bor.

Asosan, men K ning qiymatini aniqlash uchun ikkilik qidiruvni amalga oshiraman, u doimiy ravishda ishlatilsa, kemani mukammal qo'nadi. Shunday qilib, men dasturni faqat bitta qiymatni qabul qiladigan va kema qo'nguncha yoki qulab tushguncha bir necha marta qo'llashi uchun o'zgartirdim. Buni yozar ekanman, javob 76.40625 va 76.4453125 orasida ekanligini bilaman va men 76.4257813 ni sinab ko'raman. Javobni topishdan oldin vaqtim tugaydi deb o'ylay boshladim.

Ayni paytda men ushbu dasturni emulyatorda boshqarganim xayolimga keldi PDP-8, iPad uchun Lua tilida yozgan.

Xo'sh, keling, bu haqda o'ylab ko'raylik.

  • iPadda chip bor A8X, gigagerts chastotasida ishlaydigan uchta yadro bilan.
  • Lua C tilida yozilgan va A8X ga kompilyatsiya qilingan.
  • Mening PDP8 emulyatorim paket yordamida Lua tilida yozilgan CODEA "Ikki hayot qolgan" bo'limidan.
  • FOCAL 1960-yillarning oxirida PDP8 da yozilgan.
  • Lunar Lander FOCAL da yozilgan.

Shunday qilib, bular A8X, C, Lua, PDP8 va FOCAL. Bu besh xil til. Mashinaga nima qilish kerakligini aytadigan besh xil mexanizm; ularning hammasi bir-birining ustiga yig'ilgan!

Bu nima? Nima uchun tillar juda ko'p? Aslida, iPad, PDP-8, C, Lua va boshqa narsalarni unuting. Nima uchun tillar juda ko'p?

##Nega tillar ko'p?

O'ylab ko'r! Qancha dasturlash tilini nomlay olasiz? Mana, sizga kichik ro'yxat beraman:

  • FORTRAN
  • NIMADUR
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • KICHIK MUNOZARASI
  • EYFFEL
  • C ++
  • JAVA
  • C#
  • PITON
  • Rubl
  • LOGO
  • OY
  • ASOSIY
  • PL/1
  • JAVASKRIPT
  • GO
  • DART
  • PROLOG
  • To'rtinchi
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELİKSIR
  • FOQAL

Siz, albatta, men aytib o'tmagan boshqalar haqida o'ylashingiz mumkin. Savol shundaki, nega ular juda ko'p? Bu savolga haqiqatan ham bitta javob bo'lishi mumkin. Kompyuter tillarining ko'pligining sababi:

Biz ularni yoqtirmaymiz.

Ehtimol, bu juda kuchli bayonotdir. Balki aytishim kerak:

Biz Gollivudda edik.
Biz Redwoodda edik.
Biz oltin kod uchun okeanni kesib o'tdik.
Biz aqldan ozgan edik
Bu juda nozik chiziq.
Bu bizni oltin kodni izlashga majbur qiladi.

Va biz qariyapmiz.

Mayli, balki o'zim uchun gapirsam kerak... Nil Yangga shikoyat qilishni bas, yaxshi qiz topib, u bilan yashash uchun baqirishni xohlamaysizmi? Siz unga tilla yurak izlash befoyda ekanligini aytmoqchi emasmisiz? Ayting-chi, agar topib qolsa, u bilan nima qiladi?

Va agar biz ideal tilni topsak, uni nima qilgan bo'lardik?

Biz 8 yilda o'rta maktab o'quvchisi tomonidan yozilgan "Lunar Lander" ni o'ynash uchun PDP-1969 va FOCAL emulyatorlarini yaratdik!

Men shunday deb o'ylayman.

U bilan shug'ullaning. Qidiruvni to'xtating. Mukammal til yo'q. Biz hamma joyga qaradik. Biz yuqoridan va pastdan qaradik. Biz ichkariga va tashqariga qaradik.

Biz tillarni ikki tomondan ko'rib chiqdik.
Ichkarida va tashqarisida
va hali ham, u yoki bu tarzda.
Bu lingvistik illyuziyalar ekanligini eslaylik.

Biz haqiqatan ham tillar haqida hech narsani tushunmaymiz...
… umuman.

Ha, bugun g'ayrioddiy kun.

Ammo shunga qaramay, nuqta:

Bizga boshqa til kerak emas.
Uyga boradigan yo'lni bilishimiz shart emas.
Biz xohlagan narsa hayotdan tashqariga chiqishdir.
SQL

Ha, g'alati kun.

Shunday qilib, bir fikr bor. Ehtimol, biz yangi tillarni yaratishni to'xtatishimiz va tinchlanishimiz va juda yaxshi bo'lgan bir yoki ikkitasini tanlashimiz kerak. Bu hayotni ancha osonlashtiradi, shunday emasmi?

Va agar siz hayron bo'lsangiz, 76.43844461 sizga 2.23 mil / soat tezlikda qo'nish imkonini beradi.

Manba: www.habr.com

a Izoh qo'shish