Stanford, kita tampaknya memiliki masalah ...

Ke pengadilan Anda, ini lebih merupakan pertanyaan artikel, alasan artikel, dan di beberapa tempat - kebingungan. Di satu sisi, kami disajikan dengan pendapat otoritatif Leslie Lamport, "Pemrograman Seharusnya Lebih Dari Pengkodean", yang menempatkan pemrograman dan pengkodean dalam tabel peringkat dadakan. Di pihak lawan, aku, yang tidak memiliki status yang cukup untuk perselisihan dengan master dan universitas legendaris, yang diwakilinya ... tapi aku tidak bisa menyangkal kesenangan dan risiko seperti itu. Saya berharap kawan yang lebih berpengalaman akan memperbaiki kekurangan saya dalam bernalar.


Saya memahami secara intelektual bahwa pengkodean di dunia modern biasanya dianggap sebagai tingkat terendah dari aktivitas rekayasa, yang pada grafik evolusi lebih dekat ke simpanse daripada ke programmer. Dan mungkin ini adalah kesalahan besar kita, karena kodenya seperti DNA. Hanya empat nukleotida, dan apa yang merupakan biomassa beraneka ragam dalam lini produk.


Sebagai insinyur berpengalaman, kami adalah ahli abstraksi. Oleh karena itu, tidak akan sulit bagi kami untuk memperkenalkan pemrogram kondisional bernama Leslie Lampport (semua nama dan pasangan tidak acak) dan alat utamanya adalah mesin Turing. Dia adalah master dari keahliannya, sebagian besar berkat tao besi:


  1. Putuskan apa yang harus dilakukan program.
  2. Tentukan bagaimana tepatnya ia harus memenuhi tugasnya.
  3. Tulis kode yang sesuai.

Langkah terakhir, meskipun tampaknya penting baginya, jelas tidak menyukainya dan menyarankan untuk mengabaikannya. Dan sulit untuk berdebat dengan itu. Menggerakkan penunjuk di sepanjang pita tak berujung dari mesin Turing adalah kerinduan besar.


Dan di sini kejeniusannya terungkap sepenuhnya. Tetapi proses ini, seperti halnya pernis dengan bidal, harus dipantau dengan sangat hati-hati. Dia mengambil tiga poin dari programnya dan menempatkan bola dengan kode di bawah yang terakhir. Kami mengangguk dan memasang taruhan. Kemudian bidal itu sengaja dicampur perlahan. Dimana kodenya?


Praktis kami tidak ragu di mana bidal ketiga berada, dan kodenya adalah ... di bawah bidal nomor 1. Penonton kaget, Tuan Lamport juga terlihat bingung, tetapi dalam hatinya ia tahu bahwa ia curang. Dan tepat pada saat ini, ketika dia diam-diam menggulirkan bola dengan kode dari item 3 di item 1, saya benar-benar ingin meraihnya dengan lengan.


Apa yang tampak seperti bebek berdetak seperti bebek, dan bahkan ia yakin bebek itu kemungkinan besar akan seperti itu. Jika Anda telah mengembangkan bahasa TLA + untuk spesifikasi, berteriak dengan semua penampilan dan perilakunya bahwa itu adalah kode, itu saja. Fakta bahwa Anda menggunakannya pada tahap spesifikasi program, yaitu, poin 1 dari "keputusan apa yang harus dilakukan program", Anda tidak menyingkirkan kebutuhan poin 3 untuk "menulis kode yang sesuai."


Mari interpolasi Leslie selama sepuluh tahun ke depan, di mana ia secara metodis menggunakan TLA + yang ia buat untuk menulis spesifikasi. Saya pikir, terlepas dari apakah para analis, kami, arsitek atau insinyur basis data, dengan enggan mengakui bahwa kami menjadi semacam kode dalam arti kata yang paling rutin. Dialek yang berbeda, kamus yang berbeda, tetapi alat refleks yang sama, yang dengan tampilan bosan memberikan pola desain, diagram ER atau spesifikasi dalam kasus karakter kita. Dan sekarang, di bawah item nomor 1, penulis tesis bahwa "pengkodean tidak begitu penting" menyembunyikan penyandian ini.


Sebagai ilustrasi, saya akan mengundang saksi lain, sebut saja dia John McCarthy. Memprogram mesin Turing sangat menyebalkan bagi siapa pun seperti John, terutama dalam hal tugas-tugas yang sangat ia cintai di bidang kecerdasan buatan. Dan dalam penyelamatan, ia menciptakan gaya pengkodean deklaratif baru untuk menggambarkan bagaimana tugas harus dilakukan (paragraf 2 dari daftar Leslie). Sebut saja LISP bersyarat.


Mari kita asumsikan bahwa John belum menulis satu program pun dalam hidupnya, yang, menurut formula Lamport, menempatkannya pada peringkat di tingkat plankton, meskipun ia memiliki hubungan paling langsung dengan kode tersebut. Muncul pertanyaan, apa tingkat kebingungannya dan apa yang akan dia katakan kepadanya pada suatu pertemuan?


Saya tidak akan memberikan lusinan contoh yang identik, tetapi saya akan mencoba menawarkan beberapa ringkasan kepada pengadilan rekan kerja. Pengkodean adalah denyut nadi perkembangan. Ia hadir di semua tahapan dalam satu bentuk atau lainnya. Kardiogram terlihat membosankan, tetapi merupakan indikator yang diperlukan bahwa proyek itu hidup. Oleh karena itu, kata-kata * -as-a-Code semakin banyak bermunculan.


Kita semua adalah coders. Kami memiliki peralatan dan aturan tertentu untuk ini, hanya semua orang melakukannya di lantai mereka sendiri. Tidak ada alasan yang dapat dibenarkan bahwa seseorang yang menghasilkan kode PHP agak lebih bodoh daripada seorang analis yang menciptakan spesifikasi yang dapat dieksekusi, dan bersama-sama mereka kehilangan seorang peretas muda yang langsung berpikir dalam kode mesin.


Perbedaannya adalah bahwa sebagian dari kita akan melihat sesuatu yang orang lain tidak perhatikan dan menambah nilai pada proses ini. McCarthy - LISP, Lampport - LaTeX dan TLA +. Dan ketika Anda memilah-milah kode seperti sistem angka desimal, huruf Braille, radio atau emotikon, lidah Anda tidak akan mengatakan "Programing Lebih dari Pengodean".


PS Mungkin seseorang dari pengunjung konferensi ingin mengajukan pertanyaan yang diajukan. Jika mereka tampak konyol bagi pembicara dan penonton, maka bawakan semuanya untuk saya.


PPS Kebetulan saya memiliki banyak materi tentang topik kode dan pengkodean, dan jika topik ini menarik, saya akan membagikannya dengan senang hati.

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


All Articles