Salah satu hal yang membuat Ruby bersinar adalah kemampuan untuk membuat Bahasa Khusus Domain menjadi lebih baik
Meskipun orang dapat menduplikasi perpustakaan ini di LISP melalui makro, saya pikir implementasi Ruby lebih elegan. Meskipun demikian, saya pikir ada kasus bahwa makro LISP bisa lebih baik daripada Ruby, meskipun saya tidak bisa memikirkan satu pun.
Jadi, di bidang apa makro LISP lebih baik daripada "kemampuan" Ruby untuk membuat DSL, jika ada?
memperbarui
Saya sudah menanyakan hal ini karena bahasa pemrograman modern mendekati singularitas LISP , seperti
- C mendapat preprocessor ekspansi makro , meskipun sangat primitif dan rentan terhadap kesalahan
- C # memiliki atribut, meskipun ini hanya baca, diekspos melalui refleksi
- Python menambahkan dekorator, yang dapat memodifikasi perilaku fungsi (dan kelas untuk v 3.0), meskipun terasa sangat terbatas.
- Ruby TMTOWTDI yang membuat DSL elegan, jika perawatan diterapkan, tetapi dengan cara Ruby.
Saya bertanya-tanya apakah makro LISP hanya berlaku untuk kasus khusus dan bahwa fitur bahasa pemrograman lainnya cukup kuat untuk meningkatkan abstraksi untuk memenuhi tantangan saat ini dalam pengembangan perangkat lunak.