Live data from Hacker News

Why Ruby is an acceptable Lisp (2005)

randomhacks.net

41–50 of 115 posts

Re: Why Ruby is an acceptable Lisp (2005)

#41
post #33

>But, for the sake of argument, I'd like to boil them down to two things: > LISP is a dense functional language. > LISP has programmatic macros. First of these is wrong and second is just picking something from feature list without any concern of practicality. When someone writes Lisp as LISP and speaks about functional programming, I get the feeling that the author has not programmed with Lisp outside school (or kno…

> When someone writes Lisp as LISP and speaks about functional programming, I get the feeling that the author has not programmed with Lisp outside school (or knows only Scheme)

I've actually spent something like a dozen years writing Common Lisp and Scheme macros for production software. But I try not to put the nastiest ones in blog posts. :-)

In my experience, real-world Lisp was often a surprisingly functional language, certainly by the standards of the day.

Based on working with real-life Lisp code bases at four different organizations, I also stand by my description of what Lisp macros in production software typically looked like in 2005. Sure, there was the occasional elaborate macro that implemented something like Prolog in Lisp, and it was glorious. But the actual day-to-day workhorse Lisp macros were less flashy—most of them delayed evaluation, improved syntax, or performed simple transformations.

Many of these things are extremely valuable, but you don't necessarily need the full power of macros to implement them.

Re: Why Ruby is an acceptable Lisp (2005)

#42

Earlier quoted context omitted.

Community building and maintanence is a very tough job, and the simplest of things can end up nudging people towards unproductive behaviour. HN has consistently maintained at least a decent quality audience and community by keeping the UI free of bells and whistles, and thusly being unattractive to certain kinds of low-effort users. At this point, any change would probably count as messing with a good thing, so the t…

For getting notified of replies, try http://www.hnreplies.com/ .

Thanks, will give it a shot.

Re: Why Ruby is an acceptable Lisp (2005)

#43
post #32

Earlier quoted context omitted.

I don't have the love of CL development environments you do, but yeah, as a schemer, ruby's perf is kind of awful. We've got AOT, JIT, bytecode, and literally decades of research spend making these languages fast, and Ruby doesn't have that, or the hot code loading and quick iteration cycle that makes Lisp/Scheme realtime development so deliciously sweet. To say nothing of our macro superpowers. But then, CLers still…

I hardly have used Lisp besides Emacs Lisp and Clojure, but as a language geek I do have my collection of Lisp related stuff, mainly Xerox PARC, Lisp Machines and commercial CL environments. Scheme also has environments like DrRaket, even if the language now has moved beyond its Scheme origins.

I don't know how you got a lispm, but nice for you :-).

I was confusing you with Rainer (who, by coincedence, goes by the username lispm on HN), who actually loves CL environments.

As for me, I set my store by Geiser. Integrated documentation from all the implmentations it supports, repl (as well as the capability to connect to a remote one), support for all three big Schemes, is an emacs extension, and has excellent docs? Consider me sold.

Re: Why Ruby is an acceptable Lisp (2005)

#44
post #33

>But, for the sake of argument, I'd like to boil them down to two things: > LISP is a dense functional language. > LISP has programmatic macros. First of these is wrong and second is just picking something from feature list without any concern of practicality. When someone writes Lisp as LISP and speaks about functional programming, I get the feeling that the author has not programmed with Lisp outside school (or kno…

I agree regarding this mischaracterization of Lisp, but have to laugh as you mischaracterize Scheme. Lisps are excellent at adapting to programming paradigms. Scheme is often used academically in a functional style, but if you want to go full-on procedural or OO, we're just as good as Common Lisp. Okay, maybe we're not quite as good as CLOS, but we're not as far off as you'd think. Also, most Schemes are way more tra…

I had to simplify in the sake of argument.

Both Common Lisp and Scheme are multi paradigm languages by nature, but Scheme took philosophical step into different direction. This philosophical difference may follow into other Lisp dialects that are not exactly Scheme.

Re: Why Ruby is an acceptable Lisp (2005)

#45
post #36

Earlier quoted context omitted.

...TCL doesn't have macros, it has fexprs, and uplevel. It also has no effective hygene mechanisms, and unless you want to use regex to parse the tree every time your function fires, you can't do the kinds of code transforms macros can. Don't get me wrong, TCL is super cool, but it doesn't have quite the same powers as lisp. Although you are correct, it's a better lisp than ruby.

Do you know about the sugar package? Sugar implements real lisp macros. http://wiki.tcl.tk/11155

Huh. Meh, the lack of Macros aren't a problem. The problem is lack of arbitrary code transformation, which isn't as fixable.

Re: Why Ruby is an acceptable Lisp (2005)

#46
post #44

Earlier quoted context omitted.

I agree regarding this mischaracterization of Lisp, but have to laugh as you mischaracterize Scheme. Lisps are excellent at adapting to programming paradigms. Scheme is often used academically in a functional style, but if you want to go full-on procedural or OO, we're just as good as Common Lisp. Okay, maybe we're not quite as good as CLOS, but we're not as far off as you'd think. Also, most Schemes are way more tra…

I had to simplify in the sake of argument. Both Common Lisp and Scheme are multi paradigm languages by nature, but Scheme took philosophical step into different direction. This philosophical difference may follow into other Lisp dialects that are not exactly Scheme.

...I would say clojure goes in a third direction, but fair enough.

Re: Why Ruby is an acceptable Lisp (2005)

#47
post #36

Earlier quoted context omitted.

Do you know about the sugar package? Sugar implements real lisp macros. http://wiki.tcl.tk/11155

Huh. Meh, the lack of Macros aren't a problem. The problem is lack of arbitrary code transformation, which isn't as fixable.

There is arbitrary code transformation in tcl through subst or string map

Re: Why Ruby is an acceptable Lisp (2005)

#48
post #20

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 l…

I 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.

Re: Why Ruby is an acceptable Lisp (2005)

#49
post #20

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 l…

I 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

Re: Why Ruby is an acceptable Lisp (2005)

#50
post #37
post #16

Earlier quoted context omitted.

Wish more people understood this about tcl

Tcl was what made possible one of the best startups I had the privilege to be part of. They had a Rails like stack in the first .com wave, but implemented in a mix of Tcl, Apache and C.

Can I get your email? Would love to hear about that stack
Post reply on HN