Saya tidak berpikir Anda dapat memprogram tanpa membuat bahasa baru, jadi bagus untuk menyadari bahwa itulah yang Anda lakukan dan pahami masalahnya.
- Apa itu bahasa?
Kosakata, sintaksis, dan semantik.
Bahasa yang tidak tersedia seperti VB, Java, C #, dll. Hanyalah bahasa dasar . Segera setelah Anda menambahkan kelas, metode, dll. Untuk itu, Anda telah menambahkan kosakata dan semantik. Ada banyak cara untuk mengimplementasikan bahasa - parsing & menerjemahkan, parsing & menafsirkan, makro di atas bahasa yang ada, menambahkan kelas & metode ke bahasa yang ada.
- Apa yang Anda ingin bahasa lakukan?
Baik untuk mengungkapkan masalah secara singkat.
Bagaimana Anda tahu jika Anda telah melakukan ini? Ukuran yang saya gunakan adalah jumlah edit . Jika persyaratan satu kalimat A datang, saya melanjutkan untuk mengimplementasikan persyaratan dalam kode. Ketika saya selesai & mengeluarkan semua bug, saya memeriksa kode, dan repositori kode memberi saya daftar perubahan yang saya buat, B. Semakin kecil B, semakin baik bahasanya. Rata-rata di atas ruang persyaratan nyata & mungkin, ukuran itu memberi tahu saya bagaimana "domain spesifik" bahasa itu.
- Mengapa keringkasan itu baik?
Karena itu meminimalkan bug.
Jika diperlukan perubahan kode N untuk menerapkan persyaratan 1, dan Anda terkadang membuat kesalahan, maka jumlah bug yang Anda perkenalkan kira-kira sebanding dengan N. Pada batas di mana N = 1, hampir tidak mungkin untuk memperkenalkan bug tanpa berusaha.
Perhatikan bahwa ini adalah tantangan langsung ke "kode mengasapi" yang kita lihat saat ini.
TAMBAH: Menanggapi permintaan Anda untuk contoh, lihat eksekusi diferensial . Saya tidak akan mengatakan itu bisa dipahami dengan cepat, tetapi itu secara signifikan mengurangi kode UI.