Live data from Hacker News

Why Ruby is an acceptable Lisp (2005)

randomhacks.net

51–60 of 115 posts

Re: Why Ruby is an acceptable Lisp (2005)

#51
post #16

Tcl is a better lisp than Ruby. Homoiconic. Yield and tailcall make it easy to implement FP idioms. Macros available if needed.

Wish more people understood this about tcl

Maybe this is meta (the wish) :-)

I remember tcl in the early 90s then it disappeared from my radar, mostly web and mobile apps. Honest question: is it still relevant in some application area?

Re: Why Ruby is an acceptable Lisp (2005)

#52
post #47

Earlier quoted context omitted.

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

Yeah, because regex is so great at parsing code. It's not like that'll break in unexpected ways. And we all just love writing parsers in our macros.

Oh, wait.

Re: Why Ruby is an acceptable Lisp (2005)

#53

For a 2005 article, this is totally awesome, as well as that Steve Yegge response. But in 2016, it's hard for me not to get excited about what's seeming like Clojure's upward trajectory into the mainstream and want to jump on board 100%. To paraphrase Rich Hickey, Lisp and immutable functional programming totally rock, and the JVM and Javascript just reach (ClojureScript). As our systems get bigger and more quality i…

On the other functional JavaScript side of things, there are also Elm and Purescript. They are both pure functional, and both are ML-inspired (strongly typed, equational, ADTs with pattern matching, etc.). Elm is a fair bit easier to get started with, but has a substantially weaker type system and fewer useful functional features. Purescript is a fair bit more difficult to get started with, but has a substantially more powerful type system and lots of useful features like effect types.

Personally, I greatly prefer ML style languages to lisp style languages. I get fed up with all the parentheses in lisps.

Re: Why Ruby is an acceptable Lisp (2005)

#54

For a 2005 article, this is totally awesome, as well as that Steve Yegge response. But in 2016, it's hard for me not to get excited about what's seeming like Clojure's upward trajectory into the mainstream and want to jump on board 100%. To paraphrase Rich Hickey, Lisp and immutable functional programming totally rock, and the JVM and Javascript just reach (ClojureScript). As our systems get bigger and more quality i…

...No. Clojure is lisp, but it's a weird little language, and most of us lispers schemers aren't really totally happy with it. We're used to more flexability, less functionalism, and less opinionation. Plus, Clojure's equality and conses don't work at all the way a lisper would expect, and the conses are way less useful.

There's a reason there will never be a universal language.

Re: Why Ruby is an acceptable Lisp (2005)

#55
post #21

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

OFF-TOPIC: Why Lisp was so popular in Boston ?

Re: Why Ruby is an acceptable Lisp (2005)

#56
post #6

Earlier quoted context omitted.

I missed the original postings so it's nice to see this for the first time. That would be difficult if HN didn't allow reposts. Though I can understand if I had seen it already.

That's actually a good point. On a sidenote, I get a weird feeling from HN's simple UI/UX. On one hand, it feels like the old CLI machines that put the focus on "content" - kinda like "do one thing and do it right". On the other hand, reading all the comments, getting notified for replies on comments, etc. is really hard. In this day and age, one would wonder if HN really hates JS (well, except for the upvote button)…

There is no need for JS on a site like this. The ajax upvote is convenient but they could (unconveniently) reload the whole page and set the location with an anchor to go back to the upvoted comment, 1994 style. Any real time notification system requires a backend infrastructure that maybe they don't want to have.

They could also use a better CSS but who cares, text is king in this kind of sites. It displays quite well on mobile too, especially with Opera which reflows text after zoom (the very reason for using Opera).

Re: Why Ruby is an acceptable Lisp (2005)

#57
I have read the point about hygienic macros before. I have been working with racket and common lisp and I cannot tell you have annoying it is to be trying to learn macros and continually having to fight racket to let me do what I want. CL on the other hand seems to get out of the way and let me shoot myself in the foot just fine. I'd say that from a learning standpoint hygienic macros (ala define-syntax) are a roadblock because they introduce a whole bunch of hidden state which is hard to build a mental model of until after you have encountered regular macros.

Re: Why Ruby is an acceptable Lisp (2005)

#58
post #55
post #21

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

OFF-TOPIC: Why Lisp was so popular in Boston ?

MIT is in Cambridge

Re: Why Ruby is an acceptable Lisp (2005)

#59
post #51
post #16

Earlier quoted context omitted.

Wish more people understood this about tcl

Maybe this is meta (the wish) :-) I remember tcl in the early 90s then it disappeared from my radar, mostly web and mobile apps. Honest question: is it still relevant in some application area?

It's still great at what it was always great at: embedding, acting as a CLI, and doing random grunt work. It's Lua's main competitor, but it can also go toe-to-toe with python and ruby in terms of libraries in some areas (although by no means all of them). In particular, the ease of construction for graphical applications is arguably unmatched (IUP is probably the closest), SQLite was built to work with it, metakit is handy as well in the DB area, it has a great event loop, several OO models, solid unix integration, sold FFI and excellent embedding (as you'd expect), Starkits, which means you can distribute your whole TCL sourcetree as a single file, and a ton of other stuff.

So while it's not as popular, relevancy isn't an issue.

Re: Why Ruby is an acceptable Lisp (2005)

#60

For a 2005 article, this is totally awesome, as well as that Steve Yegge response. But in 2016, it's hard for me not to get excited about what's seeming like Clojure's upward trajectory into the mainstream and want to jump on board 100%. To paraphrase Rich Hickey, Lisp and immutable functional programming totally rock, and the JVM and Javascript just reach (ClojureScript). As our systems get bigger and more quality i…

...No. Clojure is lisp, but it's a weird little language, and most of us lispers schemers aren't really totally happy with it. We're used to more flexability, less functionalism, and less opinionation. Plus, Clojure's equality and conses don't work at all the way a lisper would expect, and the conses are way less useful. There's a reason there will never be a universal language.

As a clojure fan, I agree about conses. It's rare to use something like that.

Personally I'm happy equality doesn't work like common lisp. See here for a post explaining equality in CL: http://eli.thegreenplace.net/2004/08/08/equality-in-lisp

It's old and I don't use common lisp, so please correct me or the post if needed.

I've tried to get into lisp numerous times. Clojure was the one that clicked for me. I can't say if that's because of clojure or because it was just the right time for me after N times trying to get lisp.

Every now and then I poke at a scheme or CL. Scheme seems do-able for me, particularly Chicken Scheme, but I everytime I try CL, I come across what seems like too many functions to do what it seems like one function should do. Whenever I see something like SETQ, etc., that's a big turn off for me.

On the other hand, I really dislike Clojure startup times. Doesn't matter for server/long running apps, but when you are debugging or iterating, it gets to be a pain. There are some mitigations with their own set of issues.

Pixie and Hy have been brought to my attention. Pixie seems more or less abandoned, but Hy looks interesting. I haven't been able to tell from the docs if it has clojure datastructures (which are the best part of clojure), but Pixie does. So maybe sometime I'll try to bring those over to Hy and see if they get accepted.

Post reply on HN