When Harlequin started out with Dylan, to bootstrap we first quickly morphed LispWorks into a high-functioning Dylan IDE. This was done through a combination of macro, reader macro and CLOS MetaObject Protocol abuse, allowing us to achieve a faithful rendition of Dylan's syntax and object system semantics respectively.
When Dylan went from prefix to infix syntax the reader macro indirection got all the more elaborate: what started out as a trivial reader macro that treated colons differently started delegating to a full-blown lex & yacc style parser instead.
All the better, most of this was achieved modularly: Lisp editor buffers and Lisp listeners would run happily alongside Dylan editor buffers and Dylan listeners, Lisp code could still compile load and run alongside Dylan code, and Lisp classes could interoperate cleanly with Dylan classes.
There's no question that Common Lisp and its predecessors are some of the most formidably adaptable and hackable programming environments ever created. Only Smalltalk really comes close, and they have complementary strengths I think. Standard macros, reader macros and a comprehensive MOP are some of the key things that stand out in Common Lisp's favour in that hackability comparison.
I've occasionally wondered if we should take the old emulator sources and re-package them as a separate repository. It isn't clear that anyone knows how to make them run any longer or whether or not they'd run on anything other than LispWorks or if this would be of anything other than a historical curiosity.
When Dylan went from prefix to infix syntax the reader macro indirection got all the more elaborate: what started out as a trivial reader macro that treated colons differently started delegating to a full-blown lex & yacc style parser instead.
All the better, most of this was achieved modularly: Lisp editor buffers and Lisp listeners would run happily alongside Dylan editor buffers and Dylan listeners, Lisp code could still compile load and run alongside Dylan code, and Lisp classes could interoperate cleanly with Dylan classes.
There's no question that Common Lisp and its predecessors are some of the most formidably adaptable and hackable programming environments ever created. Only Smalltalk really comes close, and they have complementary strengths I think. Standard macros, reader macros and a comprehensive MOP are some of the key things that stand out in Common Lisp's favour in that hackability comparison.