3 ms·
Regarding macros: I wrote about this in On Lisp. A complex macro may have to save many times its own length to be justified - PG, Succinctness is Power (http:
by DanielRibeiro 16y ago
Regarding macros:
I wrote about this in On Lisp. A complex macro may have to save many times its own length to be justified
- PG, Succinctness is Power (http://www.paulgraham.com/power.html http://www.paulgraham.com/power.html)
Having that said, macros, and ast manipulation overall, are the most powerful form of metaprogramming. Ruby supports this with ParseTree and Ruby2Ruby, however ruby supports easier and less powerful forms of metaprogramming. I find this useful, as you can use the least complex form needed for a job (and refactor up/down as time goes by).
On the other hand, I find Clojure much more valuable for its applied research in STM and high level concurrency. But I digress...
- kunley 16y agoYeah I always liked PG's argument, he's using macros in a very powerful way building bottom-up lots of valuable code. Still succinctness doesn't seem to apply to CL usual practices and Clojure seems to have this legacy inherited (actually, not in the core, rather in the community libs). I'm talking about full-sentence-like-function-names-without-any-abbreviations. There was a explanation by the CL community that long names don't hurt as most editors (read: emacs) support smart tab-expansion of existing symbols, so typing it isn't a PITA. But still long names do hurt reading the code! My brain seems to visually reject code with such names. Add Clojure's type annotations esp. in java-interop code and there's quite a mess on screen.. so i have to read the code carefully sexp by sexp instead of grasping it with a quick glance like in Ruby.. Maybe it's time to try Arc it seems much more succint :]