I really wish lisps were more popular (or, really, popular again). Most people can't make it past the non-Algol syntax, which is silly IMO. But they do also demand more of the user than a typical language.
Their use of metaprogramming doesn't just allow you to extend the language, it really expects that of the programmer. Which means you have to assume the role of language designer to some extent. Learning how to do that definitely feels like a way to level up your skills. But it seems uncommon for people to want to do that.
maplant•56m ago
I think people underestimate how pragmatic meta programming can be because there are some obvious downsides. Arguably one of things that made Rust so popular was its inclusion of procedural macros.
But beyond that the thing I don't understand about the modern hate towards macros is that they are simply very fun.
shpongled•49m ago
As someone who is "into" programming languages (and making toy implementations of them), I think some of the most important macros are along the lines of Rust/Haskells `derive/deriving` for quickly enabling serialization, printing etc. Using a language without such capability quickly becomes frustrating once you move to any kind of "real" task.
tmtvl•32m ago
Lisp is versatile as all get-out, so you can program however you want. For example, we can roll like it's 1969:
(prog ((a 0)
(b 1)
(c 0))
(declare (type Fixnum a b c))
:fb-start
(print a)
(incf b a)
(setf a
(- b a))
(incf c)
(when (< c 100)
(go :fb-start)))
0xcafefood•1h ago
Their use of metaprogramming doesn't just allow you to extend the language, it really expects that of the programmer. Which means you have to assume the role of language designer to some extent. Learning how to do that definitely feels like a way to level up your skills. But it seems uncommon for people to want to do that.
maplant•56m ago
But beyond that the thing I don't understand about the modern hate towards macros is that they are simply very fun.
shpongled•49m ago
tmtvl•32m ago