What I'd love to see in Squeak

Aaron Lanterman lanterma at ece.gatech.edu
Sun Feb 1 06:41:31 UTC 2004


> I think that you may find Squeak to be an ideal medium for exploring,
> analyzing, and simulating electrical engineering ideas. It is fully
> capable as a computational tool, but is also highly interactive, visual,

Speaking from the ECE angle (maybe some of these already exist as a
Goodie somewhere, in which case pointers to them are appreciated):

1) I'd love a read-eval-print-loop that acts like all the other
read-eval-print-loops I'm used to. This business of selecting text and
hitting alt-P or ctrl-P or whatever is driving both me and Sarah (the
student I have working with me) nuts for some reason. I want to type a
line, hit return, and have the result print on a new line. I want to be
able to hit the up arrow to select previous inputs, and use some sort of
completion to refine that, like in MATLAB.

2) A standard multidimensional array class, built into the image, that
everyone can depend on and use in a consistent way. Squeak arrays as far
as I can tell are 1-D. (Maybe I'm confused on that and someone can help
me.)

If you want Squeak to win the Hearts and Minds of ECEs, or engineers in
general, having a built-in suite of linear algebra operations would be a
good thing. I'd love to see MATLAB type functionality in Squeak, where I
could do something like, say,

(((a square) + (b sqrt)) inv) matrixMult: c

to square all the elements of a, take the square root of all the elements
of b, and then invert that matrix and then multiply it by another matrix
c, all in one line. (I'm not really comfortable with mentally parsing a
complicated set of message send yet, so my Squeak code tends to have a ton
of parens, or else I get horribly confused.)

I've read that you folks are worried about "image bloat" - rightfully so -
but I'm concerned that if everyone has their own various different
packages for doing linear algebra, that would lead to a Tower of Babel
situation.

3) As an aside, I've sometimes wondered if it might be a good idea to give
options for alternate syntaxes, which could be translated on the fly to
standard Smalltalk syntax - people could type code in a form they're more
accustomed to, and see it translated into standard Squeak code. Then
after they get comfortable seeing that, they may start typing more and
more in standard Squeak right away. Squeak with syntactic sugar - maybe
call them "SugarSqueaks." There could be "SugarSqueakFortranStyle,"
"SugarSqueakCStyle," etc. or something like that.

Basically, the shock of the initial appearance of Smalltalk has prevented
me from seriously exploring it for over a decade. (Well, that and you
could get Turbo Pascal for the IBM PC for $99, and who knows how much a
commercial Smalltalk from ParcPlace cost back them). Of course, Scheme
looked freaky the first time I saw it too, but I got over that.  (It's
probably an experience issue, but it takes me a _long_ time to read a
piece of Squeak code and figure out what it does, relative to, say, Python
or Pascal or whatever. I will probably get faster at it.)

So, I'm wondering how to help others get over that initial shock, so they
don't just say "what the hell is this, this looks very cryptic" and not
dig further to find the good stuff.

- Aaron

-----------------------------------------------------------------------------

Dr. Aaron Lanterman, Asst. Prof.       Voice:  404-385-2548
School of Electrical and Comp. Eng.    Fax:    404-894-8363
Georgia Institute of Technology        E-mail: lanterma at ece.gatech.edu
Mail Code 0250                         Web:    users.ece.gatech.edu/~lanterma
Atlanta, GA 30332                      Office: GCATT 334B




More information about the Squeak-dev mailing list