Dil katmanları

Ey Habr!

Makalenin çevirisini dikkatinize sunuyorum “Dil Katmanları» Robert C. Martin (Bob Amca) tarafından.

Dil katmanları
Zamanımı 1969'dan kalma Lunar Lander adlı eski bir oyunu oynayarak geçiriyorum. Bir lise öğrencisi olan Jim Storer tarafından yazılmıştır. Bunu FOCAL'deki bir PDP-8'e yazdı. Programın görünüşü şöyle:

Dil katmanları

Ve işte FOCAL'in kaynak kodu:

Dil katmanları

Jim Storer oldukça yetenekli bir lise öğrencisiydi. Bu koda bir göz atın. Orada oldukça ilginç Taylor ifadeleri var.

Temel olarak, tutarlı bir şekilde kullanıldığında gemiyi mükemmel bir şekilde indirecek olan K değerini belirlemek için ikili bir arama yapıyorum. Bu yüzden programı yalnızca tek bir değeri kabul edecek ve gemi karaya oturana veya düşene kadar bunu birden çok kez uygulayacak şekilde değiştirdim. Bunu yazarken cevabın 76.40625 ile 76.4453125 arasında olduğunu biliyorum ve 76.4257813'ü deneyeceğim. Cevabı bulmadan önce zamanımın tükeneceğini düşünmeye başlıyorum.

Bu arada bu programı bir emülatörde çalıştırdığım aklıma geldi. KAP-8, iPad için Lua'da yazan.

Peki, tamam, bunu düşünelim.

  • iPad'in çipi var A8X, üç çekirdek gigahertz civarında çalışıyor.
  • Lua, C dilinde yazılmıştır ve A8X'e derlenir.
  • PDP8 öykünücüm Lua'da paket kullanılarak yazılmıştır CODEA İki Hayat Kaldı bölümünden.
  • FOCAL, 1960'ların sonlarında bir PDP8 üzerine yazılmıştır.
  • Lunar Lander FOCAL'de yazılmıştır.

Yani bunlar A8X, C, Lua, PDP8 ve FOCAL. Bunlar beş farklı dildir. Makineye ne yapması gerektiğini söyleyen beş farklı mekanizma; hepsi üst üste yığılmış!

Ne olduğunu? Neden bu kadar çok dil var? Aslında iPad'i, PDP-8'i, C'yi, Lua'yı ve diğer her şeyi unutun. Neden bu kadar çok dil var?

##Neden bu kadar çok dil var?

Bunu düşün! Kaç tane programlama dilini adlandırabilirsiniz? Şimdi size küçük bir liste vereyim:

  • FORTRAN
  • Algol
  • COBOL
  • Snobol
  • LISP
  • BCPL
  • B
  • C
  • SİMULA
  • KÜÇÜK KONUŞMA
  • EYFEL
  • C + +
  • JAVA
  • C#
  • PİTON
  • YAKUT
  • LOGO
  • AY
  • KLASİK
  • PL / 1
  • JAVA Scripti
  • GO
  • DART
  • PROLOG
  • ORTAYA
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELİXIR
  • ODAK

Tabii saymadığım başkalarını da düşünebilirsiniz. Soru şu: neden bu kadar çok var? Bu sorunun aslında tek bir cevabı olabilir. Bu kadar çok bilgisayar dilinin olmasının nedeni:

Onları sevmiyoruz.

Belki bu çok güçlü bir ifadedir. Belki şunu söylemeliyim:

Hollywood'daydık.
Redwood'taydık.
Altın kod için okyanusu geçtik.
Aklımızı kaçırmıştık
Bu çok ince bir çizgi.
Bu da bizi altın kodu aramaya itiyor.

Ve yaşlanıyoruz.

Tamam, belki de kendi adıma konuşmalıyım... Neil Young'a bağırıp şikayet etmeyi bırakıp hoş bir kız bulup onunla yaşaması için bağırmak istemez misin? Ona altın kalp arayışının boşuna olduğunu söylemek istemedin mi? Söyle bana, eğer bulursa onunla ne yapardı?

İdeal dili bulursak ne yaparız?

8'da bir lise öğrencisinin yazdığı "Lunar Lander"ı oynamak için PDP-1969 ve FOCAL emülatörlerini oluşturduk!

Bu benim düşündüğüm şey.

Başa çıkmak. Aramayı bırak. Mükemmel bir dil yoktur. Her yere baktık. Yukarıdan ve aşağıdan baktık. İçeriye ve dışarıya baktık.

Dillere her iki taraftan da baktık.
İçte ve dışta
öyle ya da böyle hâlâ da öyle.
Bunların dilsel yanılsamalar olduğunu unutmayalım.

Dillerden gerçekten hiçbir şey anlamıyoruz.
…hiç.

Evet, bugün alışılmadık bir gün.

Ancak yine de mesele şu:

Başka bir dile ihtiyacımız yok.
Eve giden yolu bilmemize gerek yok.
Tek istediğimiz hayatın ötesine geçmek.
SQL

Evet garip bir gün.

İşte bir düşünce. Belki de yeni diller yaratmayı bırakıp sakinleşip gerçekten iyi olan bir veya iki tanesini seçmeliyiz. Bu hayatı çok kolaylaştıracak, değil mi?

Ve merak ediyorsanız, 76.43844461 size oldukça iyi bir 2.23 MPH iniş sağlar.

Kaynak: habr.com

Yorum ekle