6 ms·
Author here. Let me explain where this article came from, since people keep digging it up every few years to discuss it. :-) I spent some time during the late
by ekidd 10y ago
Author here. Let me explain where this article came from, since people keep digging it up every few years to discuss it. :-)
I spent some time during the late 90s learning all kinds of cool ways to use Lisp, courtesy of a couple Boston startups, including IS Robotics (now better known as iRobot). And I'd helped introduce Scheme to another employer. Scheme made it ridiculously easy to create domain-specific languages, but it was obviously a niche technology.
Around the same time, I'd heard Matz speak to a room full of Lisp hackers at the Lightweight Languages conference. He'd elegantly explained why Ruby was cool several years before Rails became widespread. But I don't think many of us understood what he was saying until later.
When I finally realized—thanks to Rails—that Ruby could mimic many of the most common Lisp metaprogramming tricks, I mentally kicked myself and wrote this blog post. There were a lot of great responses from other bloggers, too. My goal was to help make other people aware of some fun new possibilities.
Anyway, if anybody has any questions, I'll try to answer them later this evening when I'm back online. It's fun to remember when this stuff was so new.
- CCing 10y agoOFF-TOPIC: Why Lisp was so popular in Boston ?
- contingencies 10y agoInteresting article and thanks for chiming back in. I also discovered and enjoyed the metaprogramming features of ruby perhaps 5+ years ago. As I've been learning it recently, can I ask if you have any particular take on lua? To me, it feels a bit paired back, more purist, smaller core/libraries than ruby, but also drawing from the same tradition - ie. lua's tables/functions equate well to lisp's lists/S-expressions (though practically largely equivalent and including metaprogramming support) - despite not being directly derived from a lisp.
- ekidd 10y agoLua looks like a nice language, but I've never really tried it. The Lua JITs are really impressive. Metaprogramming is a pretty widespread feature these days. Even Rust, for example, has both Scheme-style rewrite-rule macros, and (unstable) programmatic macros, for example.