Rob Pike's Newsqueak - some good concepts

Joel C. Salomon JoelCSalomon at Gmail.com
Sun May 20 20:27:24 PDT 2007


Dejan Lekic wrote:
> Today I watched an excellent presentation by Mr. Rob Pike on Google Tech Talks. (Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak - http://video.google.com/url?docid=810232012617965344&esrc=rss_uds&ev=v&q=user:%22Google+engEDU%22&vidurl=http://video.google.com/videoplay%3Fdocid%3D810232012617965344%26q%3Duser%253A%2522Google%2BengEDU%2522%26hl%3Den&usg=AL29H22XDZMMUfZudHDB2dqX9jtFEE4L9w )
> There are several very interesting concepts in his Newsqueak langauge which I would be very happy to see in D. One of such is the ability to execute ANY function as a new process (thread) via keyword "begin".

I mentioned some of these ideas when the discussion of a threading 
library for D came up in discussion.  Remember, though, that “procs” 
(what Pike calls his light-weight processes) as implemented in Newsqueak 
are maybe not suited for a systems programming language like D.  On the 
other hand, Alef /was/ a systems language.

See the Alef papers at <http://plan9.bell-labs.com/wiki/plan9/papers/>, 
the Plan 9 thread(2) man page for the C port of these concepts at 
<http://plan9.bell-labs.com/magic/man2html/2/thread>, and Russ Cox’s 
libtask at <http://swtch.com/libtask/>, a stripped-down version of the 
library ported to Unix.

I’ve played with some of the Plan 9 programs built on Pike’s concurrency 
concept.  I think it’s a powerful concept, and well-suited to D. 
Whether D needs built-in keywords for this (the Newsqueak/Limbo/Alef 
model) or a library (like thread(2) or libtask, but with a D-ish 
interface) I wouldn’t presume to say.

--Joel



More information about the Digitalmars-d mailing list