3 ms·
The point you're making here is that having more tools for abstracting things results in easier time abstracting things. Which is of course true, and Lisp usual
by klibertp 12y ago
The point you're making here is that having more tools for abstracting things results in easier time abstracting things. Which is of course true, and Lisp usually provides at least one tool (syntactic abstraction) more than other languages.
There are however - perceived or real - downsides to providing too many such tools. Personally I don't believe they outweigh the benefits of having more powerful tool in hand, but if you ask Java, Python or Go designers you'll hear a very different story.
It's not about need - you really only need Brainfuck to do anything doable with any other language - it's about a set of trade-offs language designers and programmers make. Personally I'm ready to sacrifice much for expressive power, however I understand that people working in different environments are more interested in less expressive but safer tools.
- agentultra 12y agoI wasn't talking about whether macros are useful to everyone. The grandparent comment was dismissive without providing constructive criticism. Of course you can implement yield-from in Python 2. Of course Hy generates Python AST. We know that. It doesn't make the yield-from macro any less interesting as I hope I've pointed out. Update Perhaps it was the title that is misleading.
- klibertp 12y agoI was only referring to your last point, specifically this: > The point I'm making here is that you can do pretty much everything you want to do without macros. You'll just have to write quite a bit more code and come up with many more metaphors and analogies in order to get it to work. Macros just let you get straight to the point by extending the language. This is all true, but it's also very one-sided. It makes macros look like a universal solution to all abstraction problems and without any downsides at that. Now, as I said, I don't really believe that the "downsides" are that important, but I wanted to add to your comment by pointing out their existence. I also didn't read the GP comment as dismissive, it seems a bit pedantic at worst.
- agentultra 12y ago> This is all true, but it's also very one-sided. It makes macros look like a universal solution to all abstraction problems and without any downsides at that. They are a universal solution to the problem of abstractions: they let you use fewer abstractions! > I also didn't read the GP comment as dismissive, it seems a bit pedantic at worst. I can see that. I wasn't being very charitable with my choice of words. Apologies to GP.