Sebuah makalah penelitian berjudul Build Systems à la Carte telah memicu diskusi menarik di komunitas developer tentang sifat pendidikan computer science dan hubungannya dengan pengembangan perangkat lunak praktis. Makalah tersebut, yang ditulis bersama oleh Simon Peyton Jones (yang dikenal karena Glasgow Haskell Compiler), menyediakan kerangka kerja sistematis untuk memahami berbagai build systems seperti MAKE, Buck, dan Bazel.
Penulis Makalah dan Kredensial:
- Andrey Mokhov
- Neil Mitchell (pencipta sistem build Shake)
- Simon Peyton Jones (ACM Fellow, dikenal karena Glasgow Haskell Compiler)
Aksesibilitas Membagi Pendapat tentang Penulisan Akademis
Respons komunitas terbagi secara mencolok mengenai apa yang membuat makalah akademis mudah dibaca. Beberapa developer memuji gaya penulisan makalah yang mudah dipahami, mencatat betapa mudahnya mereka bisa membaca sekilas dan memahami konsep-konsep bahkan tanpa latar belakang teknis yang mendalam. Yang lain berargumen bahwa aksesibilitas ini berasal dari makalah tersebut yang merupakan review daripada penelitian mutakhir, menunjukkan bahwa makalah computer science yang benar-benar kompleks tetap sama tidak dapat dipahaminya seperti makalah di bidang lain.
Diskusi tersebut mengungkapkan kontras menarik antara berbagai area computer science. Sementara makalah build systems ini menggunakan bahasa sehari-hari dan penjelasan yang jelas, makalah theoretical computer science sering memerlukan perjuangan yang signifikan bahkan bagi developer berpengalaman untuk memahaminya.
Krisis Identitas Computer Science vs Software Engineering
Perdebatan filosofis yang lebih dalam muncul tentang apakah pengembangan perangkat lunak modern harus disebut computer science atau sesuatu yang lain. Beberapa anggota komunitas menganggap remeh sebagian besar praktik saat ini sebagai digital carpentry, sementara yang lain lebih menyukai istilah yang lebih mapan yaitu software engineering.
Computer science adalah ilmu formal dengan elemen empiris, sebanyak yang saya ingin anggap sebagai cabang matematika.
Pertanyaan identitas ini juga menyentuh pendekatan pendidikan. Sebagian besar developer mempelajari computer science di sekolah, tetapi kurikulum mereka fokus berat pada keterampilan praktis daripada fondasi teoretis. Tidak seperti bidang engineering tradisional, software engineering tidak dibangun berdasarkan prinsip-prinsip engineering umum tetapi tumbuh langsung dari computer science dan matematika.
Dampak Dunia Nyata pada Build Tools Modern
Di luar diskusi akademis, makalah tersebut telah memiliki pengaruh praktis pada build systems yang sebenarnya. Neil Mitchell, salah satu co-author, menciptakan Shake build system berdasarkan penelitian ini. Sistem Buck dan Buck2 milik Meta juga menelusuri silsilah mereka ke ide-ide ini, dengan Buck2 dipuji sebagai perangkat lunak yang sangat baik yang sayangnya tetap niche karena tantangan ekosistem.
Komunitas mencatat masalah chicken-and-egg dengan build systems yang lebih baru seperti Buck2. Meskipun secara teknis superior dibanding tools yang sudah mapan seperti Bazel, mereka kesulitan mendapatkan adopsi tanpa ekosistem yang kuat dari tools dan libraries pendukung.
Sistem Build yang Disebutkan dalam Diskusi:
- MAKE (tradisional, banyak digunakan)
- Shake (dibuat oleh co-author Neil Mitchell berdasarkan paper ini)
- Buck/Buck2 (sistem Meta, turunan dari penelitian ini)
- Bazel (sistem Google dengan ekosistem yang lebih besar)
- Blaze (pendahulu internal Google untuk Bazel)
Kesimpulan
Makalah akademis ini telah melakukan lebih dari sekadar menjelaskan build systems - ia telah memicu refleksi bermakna tentang hubungan antara teori computer science dan praktik pengembangan perangkat lunak. Diskusi tersebut menyoroti ketegangan yang berkelanjutan antara aksesibilitas dan ketelitian dalam penulisan teknis, serta pertanyaan tentang bagaimana kita mendefinisikan dan mengajarkan pengembangan perangkat lunak sebagai sebuah disiplin. Apakah kita menyebutnya computer science, software engineering, atau digital carpentry, komunitas jelas menghargai penelitian yang menjembatani kesenjangan antara teori dan praktik sehari-hari.
Referensi: Build Systems à la Carte