Scala implicits, Lisp macros, debugging, and cleverness
The Scala Programming Language
has a notion of
implicit parameters and implicit conversions, invoked when
normal function call resolution methods fail.
On the Scala mailing list,
Scala's designer Martin Odersky
writes:
... implicits are very powerful but also easily abused. [...]
they enable you to do some amazing things.
But, amazing is not always what you want.
Which mirrors almost precisely how I feel about macros in Lisp.
If you s/amazing/clever/g, it also reminds me of
this quote by
Brian
W
Kernighan:
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
(As mentioned three years ago by
Charles and
Ned).
10:58:35 AM