top | item 15719338

(no title)

Johnny_Brahms | 8 years ago

I am still waiting for all my favourite applications to be extendable in GNU Guile.

On a more general note, I am still waiting for the world to fall for lisp in general.

discuss

order

jknoepfler|8 years ago

> On a more general note, I am still waiting for the world to fall for lisp in general.

Gah, aren't we all? Watching John Carmack push Scheme for the Oculus Rift 2 [https://www.youtube.com/watch?v=ydyztGZnbNs] made me feel like something was right in the universe.

marcosdumay|8 years ago

> Gah, aren't we all?

Since I found Haskell, no. Not anymore.

And I don't expect Haskell to take over the world either. I do expect a large crop of new languages that extend on the concept, and some of them to take over the world.

eadmund|8 years ago

As someone who's spent the last week implementing two different Schemes atop two different languages (Lua & Go), I think I can explain why GNU Guile didn't take off: Scheme. The problem with Scheme is that it's an utterly lovely little language with some wonderfully neat concepts which is great for teaching students about continuations … and it happens to have some broken features, like DYNAMIC-WIND instead of UNWIND-PROTECT, and some design decisions seemed wise at the time but in retrospect were foolish (Lisp-1 seems really awesome, right until you have to use it every day; eliminating NIL and making '() truthy seems very elegant and orthogonal but is actually a right royal pain — and don't even get me started about forbidding (car '())).

Scheme pursued a foolish simplicity, foregoing the complexity necessary to deal with the real world.

It's a wonderful language for implementing language interpreters, but I wouldn't want to write large programs in it. For that, the only thing worth using is Common Lisp.

Johnny_Brahms|8 years ago

I don't happen to agree with you on eliminating NIL. I don't understand what the royal pain is.

And dynamic-wind is the price you have to pay for call/cc. UNWIND-PROTECT is not the same thing. Multi-shot continuations is he reason. One way would be having explicit one-shot continuations and escape continuations. Those are faster and will make UNWIND-PROTECT work.

I am more in favour of delimited continuations though.

Delimited continuations makes that a bit simpler (since you can easily implement something like dynamic wind using them).