3 ms·
I posted the following comment earlier today but it was moderated by the infantile censorship police on HN : Before muddying the water for future generations o
by jgrant27 15y ago
I posted the following comment earlier today but it was moderated by the infantile censorship police on HN :
Before muddying the water for future generations of potential Lisp programmers in this forum please go and master macros first instead of spewing unfounded bullshit about their limitations.
1. Macros were never meant to 'offer guidance for improving your semantics' however they are the mechanism that makes it possible to create your own new semantics (which is just not possible in any other family of languages). The semantics that you want to create are often specific to the domain you may be working in. Learn from those who have mastered the domain and created their own semantics and then come up with your own.
2. It's clear that you've been drinking the OO koolaid for a while. Let it go and try really learning macros. Leave the baggage at the door, it's just not required where you can go with macros.
3. Ruby is a badly diluted hack that borrowed some ideas from Lisp and other languages. No you cannot accomplish in Ruby what is possible with Lisp macros. For a start all the Ruby mechanisms that you suggest execute at runtime. Ruby does not have direct access to it's AST the way that Lisp does. Lisp and Ruby are not even in the same class of languages. Contrast Ruby with Java, and then yes it looks great.
If your talking about the "hundred-year language" then just forget Haskell. Lisp is the future, go and learn Qi. Qi has a turing complete type system, this is already light-years beyond what Haskell's type system will ever have.