> It's so great for writing DSLs. This magic might turn some people off but the result of this meta-programming makes for some very expressive and concise code.
The problem with DSLs is that you now have a different language for each project you have to maintain.
Each time you come across some little DSL that shortens the original writers work by a few lines (at most), you have to read it carefully, and in depth, to understand what was intended.
I'm turned off by Ruby for this reason alone. If I want the ability to throw little DSLs all over my code, Lisp does it better and more readably.
The problem with DSLs is that you now have a different language for each project you have to maintain.
Each time you come across some little DSL that shortens the original writers work by a few lines (at most), you have to read it carefully, and in depth, to understand what was intended.
I'm turned off by Ruby for this reason alone. If I want the ability to throw little DSLs all over my code, Lisp does it better and more readably.