- Di masa lalu, lingkungan pengembangan Ada sudah pernah menyelesaikan masalah pemformatan kode
- Para pengembang menangani kode dalam bentuk representasi antara (IR) DIANA, lalu melihatnya dengan pengaturan pretty-printing sesuai preferensi masing-masing
- Hingga kini masih ada inefisiensi dan perdebatan yang terus berulang terkait linter atau kebijakan pemformatan
- Workstation Rational R1000 saat itu menyediakan lingkungan dan fitur pengembangan yang inovatif
- Dari persoalan pemformatan coding, artikel ini mengusulkan gagasan untuk mengubah praktik pengembangan masa kini dengan merujuk pada pendekatan satu generasi sebelumnya
Perdebatan pemformatan kode – solusi dari era 1980-an
- Penulis menyebut pengalamannya dengan Mr. Paige, seorang guru ilmu komputer yang pernah ikut mengerjakan compiler Ada saat penulis masih SMA
- Ketika pada 2016 ia mengeluhkan ribetnya pengaturan tool linter dan bertanya, “kenapa kita masih harus mengalami masalah seperti ini?”, ia diperkenalkan pada pengalaman bahwa persoalan ini sebenarnya sudah diselesaikan lebih dari 40 tahun lalu
Munculnya Ada dan DIANA
- Alih-alih menyimpan source code teks, para pengembang Ada menggunakan representasi antara bernama DIANA (Descriptive Intermediate Attributed Notation for Ada)
- Setiap pengembang bisa melihat source dengan pengaturan pretty-printing miliknya sendiri sesuai gaya yang diinginkan
- Tidak ada perdebatan soal pemformatan atau isu linter, dan di editor mereka bisa langsung mengubah tree program (mirip dengan projectional editing modern)
Rational R1000 – lingkungan pengembangan perintis
- Workstation Rational R1000 memiliki berbagai fitur tingkat lanjut bawaan seperti incremental compilation, analisis statis, version control, dan debugging
- Sistem ini digunakan dalam proyek perangkat lunak penting seperti proyek pemerintah termasuk DoD, Stasiun Luar Angkasa Internasional (ISS), dan pesawat tempur F-22, serta turut berkontribusi pada lahirnya UML
- Menurut Grady Booch, R1000 adalah mesin berbasis DIANA yang tidak menyimpan source code, melainkan hanya menggunakan pretty-printing dari tree DIANA
Keunggulan pengembangan berbasis DIANA
- Tidak perlu perdebatan soal pemformatan, pengaturan linter, atau penyeragaman lingkungan editor
- Dengan akselerasi perangkat keras, sistem ini menghadirkan pengalaman pengembangan yang inovatif seperti incremental compilation, refactoring yang mudah, dan integrasi yang cepat
- Pendekatan ini berdampak penting pada efisiensi pengembangan dan pekerjaan pada sistem berskala besar
Implikasi untuk masa kini
- Akselerasi kompilasi berbasis perangkat keras kini kurang penting, tetapi penyelesaian masalah pemformatan masih tetap belum memadai
- Meskipun pendekatan utama saat ini bukan projectional editing atau lingkungan live, sudah waktunya mempertimbangkan adopsi praktik pengembangan yang lebih efisien dan minim perdebatan seperti pendekatan di masa lalu
Referensi
- Saat meneliti topik ini, penulis mengutip berbagai dokumen dan laporan teknis terkait R1000
4 komentar
Setahu saya, kode yang dibagikan sudah memiliki fitur untuk diformat otomatis melalui konfigurasi yang seragam, dan sepertinya perusahaan-perusahaan juga banyak menggunakannya.
Intinya bukan auto-formatting yang menjadi pokok bahasan, melainkan bahwa sejak awal pun tidak perlu ada anggapan bahwa formatting tertentu lebih unggul, atau proses membuang formatting saya sendiri lalu beradaptasi dengan formatting asing. Karena logikanya adalah menyimpan representasi perantara yang tidak terikat pada formatting, lalu melakukan pretty-printing sesuai cara yang paling nyaman bagi masing-masing pengguna.
Yang ingin saya sampaikan adalah bahwa dengan pemformatan otomatis, kita bisa melakukan hal yang sama dalam bahasa-bahasa yang ada saat ini tanpa perlu representasi perantara, tetapi penjelasan saya memang kurang memadai.
Opini Hacker News