4 ms·
I agree and disagree with you. Vehemently. Most programming tasks will not require writing macros because most programming tasks amount to solving understood pr
by edw 15y ago
I agree and disagree with you. Vehemently. Most programming tasks will not require writing macros because most programming tasks amount to solving understood problems. But those programming tasks will be accomplished and made tractable and tolerable through the use of macros that someone else wrote.
Think of the analog of writing a desktop application: there are many object-oriented desktop app frameworks where you can write pretty rich apps exclusively by instantiating existing classes, and this is possible because some domain experts designed a framework for writing desktop apps.
Macros—which I've been using as a shorthand for "syntactic innovation"—are the same way. Someone writes e.g. a web application framework that consists of some macros, perhaps of deep skankiness, that let you write clean, obvious code that solves whatever problem in the web application domain that you're currently confronted with.
- cageface 15y agoI've heard this argument made many times, but where's the evidence? If true, we should see Lisp used disproportionately at the cutting edge of software design. Lisp is somewhat more common in these contexts, but no more so certainly than languages without macros like Erlang & Haskell.
- edw 15y agoI will grant you that people are doing interesting things in languages other than lisp, and in that in many of those situations, when the results are interesting, you see lispers smugly replicating those systems and saying, "That was easy; we could've done that." But they didn't. That said, I think the various lisps out there have plenty of user—and by that I mean programmer—success stories. My favorite right now is Cascalog. It's an amazing, life changing tool for anyone who needs to analyze data sets using Hadoop. It makes something that would otherwise be too difficult (given the time I have) to even try to do into something that is fun. Nathan Marz, Cascalog's author, should be considered for a MacArthur genius grant. Cascalog, incidentally, would not be nearly so amazing if not for the relatively few macros that tie everything together.
- crankyoldunixer 15y agoSomeone please tell me what Hadoop, PIG, HIVE, Cascalog, et al. are doing that is fundamentally new? Reinventing the unix FILE, unix pipes, lisp, awk, sed, grep in a new "distributed bash shell"? I don't think this stuff, while brilliant and clever and useful, qualifies for a MacArthur grant when one is standing on the shoulders of N CS giants reimplementing their ideas with few truly novel improvements. MaCarthy, Kernigan, Thompson, Richie, McIlroy etc are those giants.
- cageface 15y agoNathan went to one of the Clojure meetups in S.F. I didn't get a chance to talk to him but somebody else did a demo of Cascalog there. Cool stuff, I agree, and a good example of the flexibility of Lisp. I think a lot of people would still balk at the syntax though, and prefer something with similar functionality and more comfortable syntax, even if it was a lot more work to implement such a thing.