Luke Gorrie luke@synap.se writes:
Hi Luke.
Erlisp sounds cool, I'm looking forward to see what you come up with.
I'm glad I sparked your interest. I'm looking forward to see what I come up with as well. ;)
For now I suggest adopting the definition that /concurrency/ is juggling a lot of different tasks at once, whereas /parallelism/ is optimization by using multiple processors at the same time. With these definitions Erlang and Erlisp are about concurrency and not parallelism.
Hmm, I should add a terminology page. But I could use some suggestions for it. The way I see it, there are (at least) 5 related concepts:
1. juggling a lot of different tasks at once on a single machine with a single processor 2. juggling a lot of different tasks at once on a single machine with multiple processors 3. juggling a lot of different tasks at once on a single machine (regardless of its number of processors)
4. juggling a lot of different tasks at once across multiple machines
5. juggling a lot of different tasks at once (regardless of the number of machines involved)
I was using the terminology:
1. - 2. - 3. dirk:parallelism 4. dirk:distribution 5. dirk:concurrency
What would would you suggest?
1. - 2. - 3. luke:concurrency 4. luke:distribution 5. luke:concurrent and luke:distributed
?
I would really like to have a single word for each of 3, 4, and 5. But I do share your sentiment that the 1 vs 2 distinction is not really interesting (from a language design standpoint). If I need to mention 1 and 2 at all, I'll just write them out in full.
BTW, "processor" should probably be defined more thoroughly as well. It seems to be hot these days to make CPUs with multiple cores.
This is an important distinction. Parallelism is boring: everybody's already read old papers about parallel Lisps and nobody's actually writing parallel Lisp programs. Concurrency is sexy: everybody's writing concurrent programs (McCLIM, Araneida, etc etc) and Erlisp is trying to break ground by making these programs much easier to write.
I agree, in principle, but the luke:parallel Lisps of old also had a luke:concurrency aspect, and some of them look really interesting.
Don't be labelled as just another parallel Lisp! :-)
Well so far Erlisp has mostly been labelled as an "Erlang in Lisp". While that isn't half bad, I'd like to go beyond that once I really get there. ;)
P.S., IMO two great background reading books are _Communicating Sequential Processes_ by Hoare (online at www.usingcsp.com) and _The Architecture of Concurrent Programs_ by Per Brinch Hansen (library, or cheap at www.bookfinder.com)
They have both books at my university's library, which is good as I don't like reading large amounts of a text of a computer screen. :) I've already read the first, I'll have to pick up the second some time. Thanks for the pointers.
Kind regards,
Dirk Gerrits