Lambda the Ultimate

inactiveTopic Squeak: a Language for Communicating with Mice
started 1/24/2004; 2:17:03 PM - last post 1/29/2004; 5:14:20 AM
Luke Gorrie - Squeak: a Language for Communicating with Mice  blueArrow
1/24/2004; 2:17:03 PM (reads: 13330, responses: 13)
Squeak: a Language for Communicating with Mice
by way of the illustrious (and typecast?) Tom Duff in the discussion group.

Graphical user interfaces are difficult to implement because of the essential concurrency among multiple interaction devices, such as mice, buttons, and keyboards. Squeak is a user interface implementation language that exploits this concurrency rather than hiding it, helping the programmer to express interactions using multiple devices.

A 1985 paper by Rob Pike and Luca Cardelli. Squeak looks interesting in many ways. It's especially faithful to CSP, embeds C within itself (yacc-style), and compiles an entire system of processes into a C procedure to be called with primitive events (e.g. mouse clicks).

I would be interested to see more source code of programs written in Squeak or its successor Newsqueak if anybody has a reference.

Did you know that Plan9 can be downloaded as a premade VMware image? I just downloaded and fired it up in a matter of minutes.
Posted to general by Luke Gorrie on 1/24/04; 2:22:21 PM

Manuel Simoni - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/24/2004; 8:19:19 PM (reads: 557, responses: 0)
Rob Pike has this Newsqueak distribution on his homepage, which contains a folder of sample programs.

Manuel Simoni - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/24/2004; 8:57:08 PM (reads: 547, responses: 0)
Another very cool piece of work related to Plan 9 is the Es shell (available on Debian.)

Ehud Lamm - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/25/2004; 3:18:34 AM (reads: 503, responses: 0)
Is this really the same Tom Duff?

What an honor!

Ehud Lamm - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/25/2004; 8:29:56 AM (reads: 448, responses: 0)
I can understand the appeal of using concurrency to handle GUI programming. But as far as I could tell the language itself is rather mundane. Am I missing something?

Luke Gorrie - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/25/2004; 9:07:55 AM (reads: 442, responses: 0)
If you find that mundane then I think you've been holding back on some good concurrent programming language links. Cough 'em up! :-)

I've been idly wondering for years whether one can really construct programs in "pure" CSP, and Squeak is the nearest thing I've seen. It's interesting that it seemingly didn't scale, as Newsqueak added things like a conventional stack and generally looks more like a "normal programming language" than one of Hoare's processes.

I also wonder if synchronous communication becomes a scalability problem. Intuitively it seems to require tighter integration of the parts. Any especially good pointers? How's Ada concurrency work?

Olivier Lefevre - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/27/2004; 11:03:11 AM (reads: 261, responses: 2)
Wasn't Occam a rather "pure" implementation of CSP concepts?

gnuvince - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/27/2004; 1:12:45 PM (reads: 245, responses: 1)
We're not talking about the latest Smalltalk implementation (www.squeak.org), right?

Ehud Lamm - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/27/2004; 1:30:43 PM (reads: 238, responses: 0)
Right. Same name, different languages.

Isaac Gouy - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/27/2004; 2:02:25 PM (reads: 245, responses: 1)
Occam a rather "pure" implementation
LtU has some interesting links on Concurrency, although maybe we should just look at "Introduction to the Programming Language Occam"

The recent Scala release has some interesting libraries for concurrency - Erlang style, Pi Calculus, Channels

Luke Gorrie - Re: Squeak: a Language for Communicating with Mice  blueArrow
1/29/2004; 5:14:20 AM (reads: 171, responses: 0)
Thanks for the prod towards Occam. I had been meaning to read about that for ages.

My (quite superficial) impression of Occam from the tutorial is:

  • It seems geared towards parallel (do this many times in parallel) rather than concurrent (coordinate these autonomous things). It looks more like it's intended for scientific applications rather than (say) structuring an operating system.
  • Occam processes look very unlike Hoare's CSP processes. Most strikingly, Hoare's processes usually have beautiful recursive definitions, but Occam does not support recursion! In this respect Squeak feels much closer to CSP. Likewise Erlang and CML.
  • For a 1985 language it looks ugly!.
Like I said, only superficial. Quite possibly Occam supports the CSP methodology/model brilliantly, but it doesn't look like CSP to me. It looks more like I'd expect a "Connection Machine Pascal" would.

Isaac Gouy - Re: Squeak: a Language for Communicating with Mice  blueArrow
2/7/2004; 6:31:03 AM (reads: 90, responses: 0)
looks more like... a "Connection Machine Pascal"
Interesting comment considering occam was so closely associated with the INMOS Transputer.

In any case, Kent Retargetable occam Compiler