Using Squeak for general desktop development

Ben Schroeder bschroeder at procro.com
Tue Feb 10 14:44:42 UTC 2004


Mike Flippin wrote:

> Hi, I'm a Computer Science major having to prepare a presentation on 
> Smalltalk for a programming language class and need a Smalltalk VM for 
> that. I haven't been able to find any documentation on Squeak that shows 
> how to use it to make desktop software that uses native GUI toolkits 
> like QT, GTK+, Carbon and MFC.

Hi Mike,

It sounds like you're using Mac OS X, but I thought I would mention
that there is a bridge from Squeak to .NET available for Windows.
Its homepage is at

	http://www.saltypickle.com/squeakdotnet

It works by communicating with a .NET VM over sockets.  We have a plugin-based
version working here that we haven't quite polished up for release yet.  There
are loose ends, but maybe it will be interesting to your class.  You can use
the bridge to write GUI programs or just to use other .NET libraries.

(VisualWorks Smalltalk, which has a non-commercial version available, has something
similar, in beta.)

Squeak also has an FFI (Foreign Function Interface) that lets you call out to C APIs.
It might be possible to write at least part of a GUI program this way - callbacks
could still be difficult.

Regarding running a "regular" GUI program using Squeak, I would guess that it
would be possible using a startup script and a "headless" VM, in conjunction with
a bridge, but I haven't tried it.

I do want to echo what other posters have said - in my experience, a lot of the
power of Squeak is in its own environment.  Things like the Morphic GUI are a bit
different, but are powerful and flexible.  Here is a goofy anecdote from last night:
one of my coworkers and I were pair programming, and were worn out enough to stop for
the evening.  We wanted to leave ourselves a reminder for the next day about where
we had left off - so we just got an arrow morph, and a text morph, and left a big
"start here!!!" pointer, right in the middle of all the browser windows we had open.

Like I said, it's a goofy example, but even this goofy example is still just outside
the capabilities of many GUI systems.  The more I learn about Squeak, the more I
appreciate its environment and philosophy.

I do still like many things about the Windows "native" UI, and certainly the Macintosh's,
though, so am also very interested in bridges and the like.  I hope you are able to find some
interesting pointers for your classmates.

Hope this helps -

Regards,
Ben Schroeder





More information about the Squeak-dev mailing list