Komunitas pemrograman sedang terlibat dalam diskusi sengit tentang salah satu tutorial bahasa pemrograman paling populer secara online. Build Your Own Lisp berjanji untuk mengajarkan pemrograman C dan implementasi bahasa hanya dalam 1000 baris kode, tetapi developer berpengalaman mengangkat kekhawatiran serius tentang nilai edukasinya.
Tutorial Mengandung Praktik Pemrograman C yang Buruk
Kritikus berargumen bahwa tutorial tersebut mengajarkan kebiasaan pemrograman C yang buruk yang dapat merugikan pelajar dalam jangka panjang. Kekhawatiran utama berpusat pada kualitas kode dan praktik terbaik. Beberapa developer khawatir bahwa pemula yang mengikuti panduan ini mungkin akan mengambil pola pemrograman yang tidak dapat ditingkatkan skalanya melampaui proyek mainan.
Kritik yang sangat tajam datang dari analisis mendetail yang menyoroti masalah fundamental dengan pendekatan tutorial tersebut. Kritik ini sangat umum sehingga developer telah membuat sumber daya khusus untuk menjelaskan mengapa tutorial spesifik ini mungkin bukan pilihan terbaik untuk pelajar serius.
Konsep Inti Lisp yang Hilang
Poin perdebatan utama lainnya melibatkan apa yang sebenarnya membuat bahasa pemrograman Lisp . Beberapa anggota komunitas mencatat bahwa tutorial tersebut melewatkan konsep Lisp yang penting seperti operasi CAR dan CDR, yang fundamental untuk memahami bagaimana bahasa Lisp tradisional bekerja.
Ini JAUH lebih dari 'Build Your Own Lisp'. Sampai pada titik hampir menjadi apa pun kecuali itu.
Tutorial tersebut menggunakan pustaka parser yang sudah jadi bernama 'mpc' alih-alih mengajarkan siswa cara membangun komponen inti ini sendiri. Pendekatan ini, meskipun lebih sederhana, mungkin merampas pemahaman yang lebih dalam dari pelajar yang datang dari mengimplementasikan konsep fundamental ini dari awal.
Konsep Lisp yang Hilang dalam Tutorial:
- Operasi CAR dan CDR (operasi daftar fundamental)
- Optimisasi tail-call
- Continuations dan CPS ( Continuation Passing Style )
- Call/CC ( Call with Current Continuation )
- Implementasi S-Expression yang tepat menggunakan linked lists
Alternatif yang Lebih Baik Direkomendasikan
Komunitas telah berkumpul di sekitar beberapa sumber daya alternatif untuk mereka yang tertarik membangun bahasa pemrograman. MAL (Make A Lisp) mendapat penyebutan yang sering sebagai pendekatan yang lebih komprehensif, meskipun membutuhkan lebih banyak usaha dari pelajar. Crafting Interpreters juga menerima pujian sebagai sumber daya yang superior untuk memahami implementasi bahasa.
Untuk mereka yang secara khusus tertarik pada pemrograman C, developer menyarankan untuk mencari di tempat lain sepenuhnya. Konsensusnya tampaknya adalah bahwa meskipun tutorial tersebut mungkin memberikan beberapa nilai hiburan, ia gagal sebagai sumber daya pendidikan yang serius.
Sumber Belajar Alternatif yang Direkomendasikan oleh Komunitas:
- MAL (Make A Lisp): Pendekatan yang lebih komprehensif namun dengan bimbingan yang lebih sedikit
- Crafting Interpreters: Sangat dihargai untuk konsep implementasi bahasa pemrograman
- Writing a Lisp in OCaml: Tutorial langkah demi langkah dengan dasar-dasar yang lebih baik
- mpc Parser Library: Parser siap pakai yang digunakan dalam tutorial asli
Fitur Lanjutan yang Hilang
Developer Lisp berpengalaman menunjukkan bahwa tutorial tersebut berhenti tepat ketika hal-hal menjadi menarik. Konsep penting seperti optimasi tail-call, continuation, dan call/cc (call with current continuation) benar-benar tidak ada. Tanpa fitur-fitur ini, bahasa yang dihasilkan tetap menjadi mainan daripada sesuatu dengan aplikasi praktis.
Perdebatan ini menyoroti tantangan yang lebih luas dalam pendidikan pemrograman: menyeimbangkan aksesibilitas dengan akurasi teknis. Meskipun tutorial tersebut berhasil membuat implementasi bahasa tampak dapat didekati, ia mungkin melakukannya dengan mengorbankan pengajaran teknik dan konsep yang tepat yang akan dibutuhkan siswa untuk pengembangan dunia nyata.
Referensi: Build Your Own Lisp