Squeak as middleware (Was Re: [OT] RE: Microsoft removes Netscape support from IE)

Paul Fernhout pdfernhout at kurtz-fernhout.com
Sat Jul 28 14:47:45 UTC 2001


Hannes -

Thanks for the comments. Some replies below.

Hannes Hirzel wrote:
> 
> Hi Paul
> 
> Paul Fernhout wrote:
> >.... but has not had Squeak's elegance at the lowest layer of
> >simply putting bitmaps on the screen with a mouse keyboard event loop
> >(instead relying on large bodies of C code for the GUI like TK or
> >wxWindows).
> 
> Yes this is the thing I like about Squeak: Bypass a lot of bulky code
> and work more or less directly with hardware drivers. Even if the
> class library is sometimes a bit rough, but on *can* change things given
> one has the time. Some things are even easy to fix. This is extraordinary.

Agreed. At least as an option. Even wxWindows is going that way with a
wxWindows universal version (along with versions using native widgets).

> >With Squeak as a ubiquitous middleware layer, one's application becomes
> >to a large extent (not 100% but good enough) independent from the
> >underlying system -- by the VM+plugins isolating those dependencies.
> 
> Squeak as hardware isolation middleware. Yes.
> 
> >since quoting Alan Kay, "any written
> >standard with more than five lines is ambiguous" which is why Java is
> >write once, debug everywhere.
> 
> I agree that most standards have often ambiguous points. But what does
> that mean in this context? (Just a question of understanding the point)

What this means is that if a group works with a codebase it is the
standard. This is the ideal situation. Squeak and Python both have this.
However there remains the issue of multiple versions -- however each
version is effectively a version of the standard. There is very little
room for ambiguity in standards defined by code -- basically ambiguity
exists at the level of whether the C (or whatever) compilers on various
platforms agree -- or how lower level support APIs responded. 

When you have a document defining APIs or behavior then there is more
human interpretation needed. Everyone makes their own implementation
which may deviate from the standard for numerous reasons -- including a
choice of how to interpret some part. For example, if one had a written
"standard" defining Squeak, perhaps the behavior of setting Smalltalk to
nil might not be defined, leading to ambiguity (a topic of discussion
across Smaltlalks a long while back). Perhaps a better example would be
ambiguity on how an interrupted exception should resume or some more
such thing that might have a pervasive effect.

In this context, Java is not a good middleware layer because it is a
standard Sun controls and promotes. Because of this, Java VMs will never
be stable because the Java standard will not be uniformly implemented to
a high enough degree. Yes, Java programs and VMs may have a
certification process. But that is not good enough. Another point Alan
Kay made was that people think a test suite will be adequate to validate
a standard and remove ambiguities. His point is it is not enough. 

So, the communities and technologies that form around written standards
(like Java) will not be as successful in terms of compatibility and
reliability as those that form around common implementations (like
Squeak or Python). Naturally this is a complex issue and I am not making
all the appropriate hedges here, but in general I think Alan Kay is
right.

> >Unfortunately, right now, today, when I think of a stable cross-platform
> >system (Mac, Windows, Linux), the only mostly polished solution is
> >VisualWorks, and then I'm still dependent on one company. Python (with
> >TCL/TK, wxWindows, or SDL), DrScheme, and Squeak which are all
> >(primarily) single codebase standards all come close to being cross
> >platform middleware, but all have serious rough edges or weak support on
> >a specific platform when one looks at them from a broad deployment
> >perspective (good as they are for other situations). There are a couple
> >of the choices if one is willing to work mostly in C or Basic or a few
> >other languages.
> 
> I'm interested in writing software (multimedia apps and CBT) in a system
> with broad deployment possiblities and which is open source and which has
> the chance to run still in 10 years time without too many porting efforts.

Me too. That's why I like Squeak.
 
> Is there an open source Basic system which works on Windows, Mac and Linux
> with putting bitmaps on the screen and a mouse keyboard event loop similar
> to Squeak? I'm not aware of one.

Not that I know of. The one I was referring to is proprietary for Mac
and Windows.

> The 'basic' Basic has been around since about 35 years and
> the descendants of it have the largest user community of the
> world. But platform independence? I'm aware of the fact that it lacks
> much of the elegance of Smalltalk but for many things it is
> straightforward
> to get a job done in a much more practical way.

Ideally, we would have a middleware platform that supports multiple
languages.

> >So Squeak is definitely getting there if the loose edges can be resolved
> >(which is just a lot of work on issues [some of which are controversial]
> >I won't rehash here).
> 
> But it would be helpful if you could post a link to a short summary what
> are the weak points of Squeak from your point of view ("critique"). This
> would help to see better what Squeak is and what it's not.

For a start see these related threads:

  Belling the cat of complexity (was: Ship it with Squeak) 
  Thu, 29 Jun 2000
  http://squeak.cs.uiuc.edu/mail/squeak/msg04416.html

  Ship it with Squeak
  Sun, 25 Jun 2000
  http://squeak.cs.uiuc.edu/mail/squeak/msg04178.html

  Many of the issues raised still remain practical problems. Although
many also have been or are being addressed, as with Stable Squeak.

> Thanks for your interesting contribution
> 
> Hannes Hirzel

Thanks for your comments.

-Paul Fernhout
Kurtz-Fernhout Software 
=========================================================
Developers of custom software and educational simulations
Creators of the Garden with Insight(TM) garden simulator
http://www.kurtz-fernhout.com




More information about the Squeak-dev mailing list