Una delle cose che fa risaltare Ruby è la capacità di creare meglio le lingue specifiche del dominio, come
Anche se è possibile duplicare queste librerie in LISP tramite macro, penso che l'implementazione di Ruby sia più elegante. Nondimeno, penso che ci siano casi in cui la macro di LISP può essere migliore di quella di Ruby, anche se non riuscivo a pensarne una.
Quindi, in quale area la macro di LISP è migliore rispetto alla "capacità" di Ruby di creare DSL, se esiste?
Aggiorna
L'ho chiesto perché i linguaggi di programmazione moderni sono che si avvicinano alla singolarità di LISP , come
- C ha ottenuto preprocessore di espansione macro , anche se molto primitivo e soggetto a errori
- C # ha attributi, benché questo sia di sola lettura, esposto attraverso il riflesso
- Il decoratore aggiunto in Python, che può modificare il comportamento della funzione (e la classe per la v 3.0), sebbene sia abbastanza limitato.
- Ruby TMTOWTDI che rende elegante DSL, se applicato con cura, ma in modo Ruby.
Mi chiedevo se la macro di LISP fosse applicabile solo a casi speciali e che le altre funzionalità del linguaggio di programmazione fossero abbastanza potenti da sollevare l'astrazione per affrontare le sfide odierne nello sviluppo del software.