Re:Threads Are a Bad Idea for Most Purposes (1995) [pdf]
by abecedarius on Tuesday January 28, 2020 @04:18PM
(#22174138)
AFAIK the E language http://erights.org/index.html influenced several other people and projects like Twisted Python and Midori, which influenced the now-popular deployments like Javascript. (I followed E in the 90s but not so much the other projects.) There's a sketch of E's history at http://erights.org/history/index.html but it's mostly stubs there. They apparently invented promises independently of Liskov, while working on Xanadu: http://erights.org/elib/distrib/pipeline.html
[ Parent
| on HN ]
Re:Threads Are a Bad Idea for Most Purposes (1995) [pdf]
by kragen on Tuesday January 28, 2020 @04:51PM
(#22174450)
Right, and MarkM is on the ECMAScript committee. Futures I think are about 20 years older, maybe from MIT.
P.S. sorry so late answering your mail!
Re:Threads Are a Bad Idea for Most Purposes (1995) [pdf]
by abecedarius on Tuesday January 28, 2020 @06:36PM
(#22175393)
https://en.wikipedia.org/wiki/Futures_and_promises is quite detailed and looks good. I'm sure MarkM & company knew of futures, so I should've mentioned them.
(I owe you mail too.)
Re:Threads Are a Bad Idea for Most Purposes (1995) [pdf]
by kragen on Tuesday January 28, 2020 @08:14PM
(#22176140)
Aha, Baker and Hewitt, 1977. I didn't realize Friedman had defined "promises" in 1976; I wonder if they're the same as E promises? (Which are almost precisely the same as ECMAScript promises.)
I was terribly remiss not to mention Dojo, a popular JS toolkit which got its promises from Twisted, which of course got them from E, though Twisted modified them a bit. I don't know how it slipped my mind.
Re:Threads Are a Bad Idea for Most Purposes (1995) [pdf]
by abecedarius on Tuesday January 28, 2020 @09:02PM
(#22176453)
I haven't read the Friedman/Wise paper. Most likely those were futures? They were doing FP work around then, like https://help.luddy.indiana.edu/techreports/TRNNN.cgi?trnum=T... (I seem to remember reading another paper of theirs which included racing suspensions till one of them completed, which would be more like futures than the streams of this paper. But if so I'm forgetting where.)
I get the impression E promises had a nicer design than JS's for handling errors -- but that's also a vague memory and I never really learned JS's.