Lapisan bahasa

Halo, Habr!

Saya membawa kepada Anda terjemahan dari artikel “ Layers Bahasa ” oleh Robert C. Martin (Paman Bob).

gambar

Saya menghabiskan waktu memainkan game Lunar Lander 1969 yang lama. Itu ditulis oleh Jim Storer, seorang siswa sekolah menengah. Dia menulisnya di PDP-8 di FOCAL. Seperti apa bentuk programnya:

gambar

Dan di sini adalah kode sumber untuk FOCAL:

gambar

Jim Storer adalah siswa sekolah menengah yang cukup berbakat. Lihatlah kode ini. Dia memiliki ekspresi Taylor yang cukup menarik di sana.

Secara umum, saya melakukan pencarian biner untuk menentukan nilai K, yang bila digunakan secara seri, idealnya akan mendaratkan kapal. Karena itu, saya mengubah program sehingga hanya membutuhkan satu nilai, dan kemudian menerapkannya beberapa kali hingga kapal mendarat atau jatuh. Ketika saya menulis ini, saya tahu bahwa jawabannya terletak di antara 76,40625 dan 76,4453125, dan saya akan mencoba 76,4257813. Saya mulai berpikir bahwa saya akan kehabisan waktu sebelum saya menemukan jawabannya.

Sementara itu, terpikir oleh saya bahwa saya menjalankan program ini pada emulator PDP-8 , yang saya tulis di Lua untuk iPad.

Jadi, yah, mari kita pikirkan.

  • IPad memiliki chip A8X , dengan tiga core beroperasi pada frekuensi gigahertz atau lebih.
  • Lua ditulis dalam C dan dikompilasi ke dalam A8X.
  • Emulator PDP8 saya ditulis dalam Lua menggunakan paket CODEA dari bagian Two Lives Left.
  • FOCAL ditulis pada akhir 1960-an di PDP8.
  • Lunar Lander ditulis dalam FOCAL.

Jadi ini adalah A8X, C, Lua, PDP8 dan FOCAL. Ini adalah lima bahasa yang berbeda. Lima mekanisme berbeda memberi tahu mesin apa yang harus dilakukan; mereka semua ditumpuk di atas satu sama lain!

Apa ini Mengapa ada begitu banyak bahasa? Bahkan, lupakan iPad, PDP-8, C, Lua dan yang lainnya. Mengapa ada begitu banyak bahasa?

## Mengapa ada begitu banyak bahasa?

Pikirkan itu! Berapa banyak bahasa pemrograman yang bisa Anda sebutkan? Di sini, izinkan saya memberi Anda daftar pendek:

  • FORTRAN
  • Algol
  • COBOL
  • SNOBOL
  • Gangguan
  • Bcpl
  • B
  • C
  • SIMULA
  • KECIL
  • Eiffel
  • C ++
  • Jawa
  • C #
  • Python
  • RUBY
  • LOGO
  • LUA
  • Dasar
  • PL / 1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORTH
  • Cepat
  • ML
  • Ocam
  • OCAML
  • ADA
  • Erlang
  • Elixir
  • Fokus

Tentu saja, Anda bisa memikirkan orang lain yang belum saya sebutkan. Pertanyaannya adalah, mengapa ada begitu banyak? Hanya ada satu jawaban untuk pertanyaan ini. Alasannya ada begitu banyak bahasa komputer:

Kami tidak suka mereka.

Yah, mungkin ini pernyataan yang terlalu kuat. Mungkin saya harus mengatakan:
Kami berada di Hollywood.
Kami berada di Redwood.
Kami menyeberangi lautan untuk mendapatkan kode emas.
Kami keluar dari pikiran kami
Ini adalah garis yang bagus.
Ini membuat kami mencari kode emas.

Dan kita semakin tua.
Oke, mungkin saya harus berbicara sendiri ... Bukankah Anda hanya ingin berteriak pada Neil Young sehingga dia akan berhenti mengeluh, menemukan gadis yang baik dan tinggal bersamanya? Tidakkah kamu ingin mengatakan kepadanya bahwa pencarian untuk hati emas tidak berguna? Katakan padaku, apa yang akan dia lakukan padanya jika dia menemukannya?

Dan apa yang akan kita lakukan dengan bahasa yang sempurna jika kita menemukannya?
Kami menciptakan emulator PDP-8 dan FOCAL untuk memainkan "Lunar Lander" yang ditulis oleh seorang siswa sekolah menengah pada tahun 1969!
Inilah yang saya pikirkan.

Menghadapinya. Hentikan pencarian. Tidak ada bahasa yang sempurna. Kami mencari kemana-mana. Kami melihat ke atas dan ke bawah. Kami melihat ke dalam dan ke luar.
Kami melihat bahasa dari kedua sisi.
Di dalam dan luar
dan lagi pula.
Kita ingat bahwa ini adalah ilusi linguistik.

Kami benar-benar tidak mengerti apa pun dalam bahasa ...
... tentu saja.
Ya, hari ini adalah hari yang tidak biasa.

Namun, intinya adalah:
Kami tidak membutuhkan bahasa lain.
Kita tidak perlu tahu jalan pulang.
Yang kami inginkan adalah melampaui hidup.
SQL
Ya, hari yang aneh.

Jadi ada satu pemikiran. Mungkin kita perlu berhenti membuat bahasa baru dan tenang dan pilih satu atau dua yang benar-benar bagus. Itu akan membuat hidup jauh lebih mudah, bukan?

Dan, jika Anda tertarik, 76.43844461 memberi Anda kecocokan yang cukup baik pada 2,23 MPH.

Source: https://habr.com/ru/post/id476644/


All Articles