> 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.
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.
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.
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).
jknoepfler|8 years ago
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
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.
leavethebubble|8 years ago
[deleted]
eadmund|8 years ago
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
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).