5 ms·
I'm glad to see this, and even more interested that it was written in 2005. I've read lots of rants about how awesome Lisp is supposed to be from Paul Graham a
by ufmace 10y ago
I'm glad to see this, and even more interested that it was written in 2005. I've read lots of rants about how awesome Lisp is supposed to be from Paul Graham and Steve Yegge and all. But I never see anything significant being written in it or using it, so I haven't felt all that tempted to try learning it.
Meanwhile, I've been using Ruby for a while, and the metaprogramming capabilities are pretty cool. It sounds a lot like what all of the Lisp enthusiasts are saying is so awesome about Lisp to me. So I've always wondered what it is that's so awesome about Lisp that Ruby doesn't already have.
- peruvian 10y agoFWIW Elixir has first class macros that go way beyond Ruby's metaprogramming, so you may want to try that.
- pjmlp 10y agoThe software done by these guys is pretty significant and manages a few of the European train systems. http://www.siscog.com http://www.siscog.com
- mnemonicsloth 10y agoI don't know ruby, so I can't answer your question directly. But I can ask you one: why not just learn a lisp? You don't have to learn a whole language to know what makes people like it. Working at it for a week or two, in you free time, would probably be enough for you to settle the question permanently. Lisp doesn't have to be a search for nirvana.
- ufmace 10y agoMaybe one of these days... I've been spending what time I have for learning completely different languages on Haskell, and I haven't messed with that in a while either.
- billsix 10y agoI couldn't have written a unit test framework which evaluates at compile-time in Ruby, but I did in Gambit Scheme. (If any test fails, the compiler exits in error, and no library or executable is produced.) https://github.com/billsix/bug https://github.com/billsix/bug
- qwertyuiop924 10y agoMacros, arbitrary syntax transformation in macros, and object system as powerful as CLOS, and the ability to comfortably use almost any paradigm. It's not always useful, but you'll be thankful when it is.
- feelsboutlisps 10y ago> Macros I don't want my teammates writing macros. When the whole programming community constantly talks about situations within regular, more expressive languages (with syntax) like Python et al, where teammates look at each others code and are baffled ... I struggle to see a scenario where inventing syntax through macros is a good idea, and won't make that situation so much worse. > arbitrary syntax transformation in macros See above. > object system as powerful as CLOS If I wanted object systems, there are plenty of options that don't involve so many parens, and do involve far more expressive syntax than lisps offer. > and the ability to comfortably use almost any paradigm I kinda want my team to pick a set of known paradigms. This is not an advantage. I've never used a modern programming language and thought 'this lacks paradigms, if only I could let my team invent some, that none of us will understand 6 months from now'. > It's not always useful, but you'll be thankful when it is. From what you've said, I won't. I'll just be upset my teammates invented their own language with macros and whatever paradigms they chose to use that day. The lisp 'trade-off' (homoiconicity over expressive syntax) just seems like it's looking for power in the wrong places. Power like that is more often bad than good.
- qwertyuiop924 10y agoGPP asked what lisp's got that Ruby doesn't. I told him. Lisp isn't the end-all be-all. If you can't trust your teammates, than maybe you shouldn't be using Lisp. But keep in mind that you can write INTERCAL in any language. Lisp just makes it easier, because Lisp does its best not to limit you. Besides, who would invent their own language in macros for no reason? Also, the syntax is one of the best parts about Lisp. It's agressively regular, so you'll never have to worry about screwups or ambiguity. And with readtables, the syntax can be more expressive than you might think. Although you did set the standards pretty low...