[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Coroutines and Go
- From: Jim Whitehead II <jnwhiteh@...>
- Date: Thu, 12 Nov 2009 16:28:39 +0000
On Thu, Nov 12, 2009 at 4:21 PM, David Given <email@example.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> There is nothing new under the sun.
> Have you seen Algol 68? As you might imagine, it's an Algol variant that
> came out in 1968. (Which makes it older than I am.) It begat Pascal,
> Modula, Oberon etc and is a cousin of C. (I think it's Lua's uncle.)
> There's a good Wikipedia page:
> It's a bit scary. It looks *just like a modern programming language*.
> It's got C-like types (although to be more accurate, C has Algol-68-like
> types). It's got user defined polymorphic perators (with user defined
> precedence). Keywords and identifiers occupy different namespaces.
> Identifiers can contain spaces! It's got block expressions. It's got
> OCCAM-like concurrency (there's a par keyword for running processes in
> parallel and built-in support for namespaces). You can use values before
> you define them! Most syntax elements have a short form and a long form,
> where the short form is designed for single statements and the long form
> for multiline statements.
The PAR keyword doesn't in any way approximate 'OCCAM-like'
concurrency. Concurrency in occam is built around communication
between distinct processes through explicit communication channels.
Yes, the SEQ keyword is covered by the sequential nature of Algol-68,
and the PAR keywords are roughly the same.. but that only begins to
graze the surface of what OCCAM-like concurrency actually is.
Perhaps I'm missing something, but I can't help but believe your claim
is a bit over-reaching in this particular case. I'm not ignoring the
rest of your post, because you certainly make a number of very clear
and concise points, but as someone who works with occam-like
concurrency on a daily basis I'd like some clarification on this