Squeak UI and toolkit commentary: (was: Re: Who has no job? (was Re: O'Reilly Squeak book?))

Jim Benson jb at speed.net
Fri Apr 19 15:35:40 UTC 2002


Cees,



>
> Most people who are sitting behind Word and send off the end result to
someone
> else don't "want to be able to sit down and type in a letter, [...]". They
> want to communicate something to someone else, and if you ask them they
really
> don't care whether that's done by typing and mailing a letter or some
other
> convenient method (like communicating with brainwaves, etcetera).
>
> It just *happens* to be that for *some* forms of communications, firing up
a
> wordprocessor, printing and folding the result, and handing off transport
to
> your national postal service, is the most convenient way.
>
> Don't mix up end and goal. It's better for innovation :-)
>

That idea has been marketed here in the United States as "The paperless
office". After introduction of the paperless office, paper consumption in
the business community increased only 35%.

> It's called evangelism. We think we've got something worthwhile, so it is
not
> more than logical, us being the goodhearted altruists we are, that we want
to
> tell everybody about it so that they may see the errors of their ways.
>

I understand the evangelism part. My experiences with evangelists in the
technology area suggests that they have something to "sell" in the sense
that they have a unique product with obvious advantages that they want me to
adopt. OK, if I'm on the outside what do you want me to "buy" into about
Squeak? Certainly it's not centered around the windows being a different
colors or having different looks. You've already told me that I can't print
things out to show to my friends, and I have no way to really transmit
things around unless maybe it's in the form of Projects.

Note that this is different than saying, "You should look at Etoys, where
you can teach people how to program easily". Evangilism starts with having
different ideas to show and showcase applications to demonstrate. I don't
see a lot of that in Squeak at the moment.

>
> If you relegate the CoD programmers (like that term as well ;-)) to these
> corners, you might just as well replace them with automatons.
>

I think a lot of people use that concept currently with JITters and such. I
don't think we go far enough into this area. We should be able to have
agents that examine the code that is running on a machine and have them try
to optimize it, both locally and globally. As an example, if a lot of time
is being spent in a particular loop, the agent would "sense" that and try to
optimize the loop for the user. At a higher level, if a data structure is
being used inefficiently, the agent would substitute an equivalent, faster
one.

> Furthermore, the Squeak VM is written in Squeak. Various parts of the
> operating system have been written in Squeak. I even think there's a TCP
stack
> in Squeak. It seems that people are bringing the bits alive :-)
>

To me, the VM was written in Slang mostly for the bootstrapping process. But
you'll also notice that there has been quite a performance hit there as
well. It looks like some experienced code of dead can increase the
interpreters efficiency by quite a bit. Having used Slang quite a bit, I can
tell you it is much more painful to code C in Smalltalk than in the code of
dead environment.

>
> (one of the main reasons is that objects are simpler. It's just so hard to
> take them apart, store the data someplace else, retrieve it, try to make
> half-living zombies from them, and try to work with them that you actually
> need monstrosities like Word and Excel to do these tasks).
>

In the real sense, Word and Excel are what you expect to happen from both a
marketing and code of dead standpoint. They are both large and complex
programs, worked on by thousands of people. It's the 90/10 rule. It's
relatively simple to do the first 90% of the word processing without being
overwhelmed. Look at Wordpad or SimpleText. This will satisfy most tasks.
However, as soon as you get into that last 10% (which is usually the domain
of the "power user") the complexity increases exponentially. Because the
code of dead have no ways for handling these types of problems, and feature
bloat is required in product marketing, things get ugly. Do you actually
need "those monstrosities"? Most people don't, but for the minority that do
there probably are very few substitutes or alternatives. In this case, the
minority has been supported.

I don't dismiss Word or Excel summarily out of hand. A lot of smart people
have worked very hard over the years to get those products out the door.
Monopoly or not, the products seem to pretty much work, in different
environments and different languages.

>  There's
> a gigantic conceptual difference between a StackMorph and a standard
> on-screen form. If you start providing the 'easy way out' to serve
> more mainstream programmers, I'm afraid that they'll be allowed to stop
> thinking and do what they've always done, without having to reflect on
> their work and the alternatives that Squeak offers. They'll end up writing
> exactly the same software, but in shorter time. The end result will be
just
> a gain in marketshare, but not a gain in mindshare.

I'm of the opinion that simple things should be easy, hard things less so.
I'm not sure it's a good evangilism technique to say "Before you can do
things that we consider trivial (like an on-screen form), you need to learn
our religion completely". I recall a few days ago that someone asked for a
one line text edit box. Ned Konz was kind enough to provide a very scary
looking code snippet. I think a very natural reaction to that would be, "If
that's what I have to do for a one line text edit box, imagine what it's
going to be to do an entire input dialog".

I agree, there's a big difference between a StackMorph and an on-screen
form. I would also submit like the BookMorph  or StackMorph is difficult to
use coming from outside of the Squeak world. It's certainly not what one
would expect coming from the mainstream (something like Hypercard or
Director would be a parallel product).

Jim




More information about the Squeak-dev mailing list