Lapisan bahasa

Hei Habr!

Saya sampaikan kepada Anda terjemahan artikel “Lapisan Bahasa»oleh Robert C. Martin (Paman Bob).

Lapisan bahasa
Saya menghabiskan waktu saya dengan memainkan game lama bernama Lunar Lander dari tahun 1969. Itu ditulis oleh Jim Storer, seorang siswa sekolah menengah. Dia menulisnya di PDP-8 di FOCAL. Seperti inilah tampilan programnya:

Lapisan bahasa

Dan berikut adalah source code untuk FOCAL:

Lapisan bahasa

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

Pada dasarnya saya melakukan pencarian biner untuk menentukan nilai K yang bila digunakan secara konsisten akan mendaratkan kapal dengan sempurna. Jadi saya memodifikasi programnya sehingga hanya menerima satu nilai dan kemudian menerapkannya beberapa kali hingga kapal mendarat atau jatuh. Saat saya menulis ini, saya tahu jawabannya terletak antara 76.40625 dan 76.4453125 dan saya akan mencoba 76.4257813. Saya mulai berpikir saya akan kehabisan waktu sebelum menemukan jawabannya.

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

Jadi oke, mari kita pikirkan hal ini.

  • iPad memiliki chip A8X, dengan tiga inti berjalan pada gigahertz atau lebih.
  • Lua ditulis dalam C dan dikompilasi ke A8X.
  • Emulator PDP8 saya ditulis dalam Lua menggunakan paket KODEA dari bagian Dua Kehidupan Kiri.
  • FOCAL ditulis pada akhir tahun 1960an pada PDP8.
  • Lunar Lander ditulis dalam FOCAL.

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

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

##Mengapa ada begitu banyak bahasa?

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

  • FORTRAN
  • SESUATU
  • COBOL
  • SNOBOL
  • PELAT
  • BCPL
  • B
  • C
  • SIMULA
  • BICARA KECIL
  • EIFFEL
  • C + +
  • JAWA
  • C#
  • PYTHON
  • RUBI
  • LOGO
  • LUA
  • DASAR
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • KEUNTUNGAN
  • SWIFT
  • ML
  • OKCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIKSIR
  • FOKAL

Anda tentu saja dapat memikirkan orang lain yang belum saya sebutkan. Pertanyaannya, mengapa jumlahnya begitu banyak? Hanya ada satu jawaban untuk pertanyaan ini. Alasan mengapa ada begitu banyak bahasa komputer:

Kami tidak menyukai mereka.

Yah, mungkin itu pernyataan yang terlalu kuat. Mungkin saya harus mengatakan:

Kami berada di Hollywood.
Kami berada di Redwood.
Kami menyeberangi lautan untuk mendapatkan kode emas.
Kami sudah gila
Itu garis yang bagus.
Hal ini membuat kita mencari kode emasnya.

Dan kita semakin tua.

Oke, mungkin aku harus berbicara sendiri... Bukankah kamu hanya ingin berteriak pada Neil Young agar berhenti mengeluh dan mencari gadis yang baik dan tinggal bersamanya? Tidakkah kamu ingin memberitahunya bahwa pencarian hati emas itu sia-sia? Katakan padaku, apa yang akan dia lakukan jika dia menemukannya?

Dan apa yang akan kita lakukan dengan bahasa yang ideal jika kita menemukannya?

Kami membuat emulator PDP-8 dan FOCAL untuk memainkan "Lunar Lander", yang ditulis oleh seorang siswa sekolah menengah pada tahun 1969!

Itulah yang saya pikirkan.

Tangani itu. Berhenti mencari. Tidak ada bahasa yang sempurna. Kami mencari kemana-mana. Kami melihat dari atas dan bawah. Kami melihat ke dalam dan ke luar.

Kami melihat bahasa dari kedua sisi.
Di dalam dan luar
dan masih melakukannya, dengan satu atau lain cara.
Ingatlah bahwa ini adalah ilusi linguistik.

Kami benar-benar tidak mengerti apa pun tentang bahasa...
… sama sekali.

Ya, hari ini adalah hari yang tidak biasa.

Namun, intinya adalah:

Kami tidak membutuhkan bahasa lain.
Kita tidak perlu tahu jalan pulang.
Yang kita inginkan hanyalah melampaui kehidupan.
SQL

Ya, hari yang aneh.

Jadi, inilah satu pemikiran. Mungkin kita perlu berhenti membuat bahasa baru dan menenangkan diri lalu memilih satu atau dua bahasa yang benar-benar bagus. Ini akan membuat hidup lebih mudah, bukan?

Dan, jika Anda bertanya-tanya, 76.43844461 memberi Anda kecepatan 2.23 MPH yang cukup bagus.

Sumber: www.habr.com

Tambah komentar