Big Bang [Re: Proposal for Squeak 3.8 release schedule]

Andreas Raab andreas.raab at gmx.de
Thu Oct 14 05:58:31 UTC 2004


Hi Goran,

Let me try to answer your questions:

> 1. Is Tweak meant to replace Morphic alltogether in the long run? Or is
> it only replacing parts of Morphic?

It is clearly intended to be a replacement of Morphic. Replacing "parts" 
makes little or no sense as it would break too many things that need fixing. 
However, we realize and acknowledge the fact that Morphic will stick around 
for a long time (similar to MVC which is still in Squeak) and the only thing 
we am working on is the ability to get rid of both MVC and Morphic if that 
is desirable (which it will for packaging purposes but not for a long time 
as most of the tools are available for Morphic).

Meaning that although Tweak is intended to be a Morphic replacement it 
*will* work in parallel to and together with Morphic (not necessarily vice 
versa since that again would mean fixing many different things in Morphic 
that I cannot possibly be bothered to fix). I should also mention that the 
Tk4 efforts play an important role here as they are intended to hammer out 
some of the issues for integrating Tweak into "different window managers" - 
e.g., you can expect that once this works you might have "native Morphic 
windows" which host Tweak environments similar to any other kind of window.

> 2. Is Tweak meant to be something that can work on top of official
> Squeak, or is it only targeted at Croquet? Croquet is currently not a
> "fork" of Squeak, but it may very well turn out to become one. And if
> the principal developers behind Tweak are the Croqueteers, it may
> perhaps turn into something Croquet specific.

That depends on your definition of "Squeak" and "Croquet". Some people take 
the (overly simplified) point of view that Croquet is ultimately about 3D 
environments but let me tell you: It is not. It is ultimately about 
collaboration and communcation and there are many different ways of doing 
this, some of which imply a 3D space (having the vast advantage of providing 
context for the collaboration and a natural model for navigating large 
spaces) and some of which don't. *All* of them, however will require a 
distributed, loosely coupled, secure messaging model of replicated 
computation between (mutually distrusting) objects and peers. Which is what 
we internally understand as "Croquet"; a much broader, much wider ranging 
collaboration architecture that includes many different areas of 
communication, many different classes of devices, many different user 
interfaces. (and yes, we really aren't there by a long shot but then again I 
will want to have something to work on five years from now ;-)

Given that definition I can say with utter certainty that Tweak is meant to 
run on top of Croquet, with "collaboration builtin". Whether that can run on 
"top of official Squeak" depends on whether Croquet can run "on top of 
official Squeak" and that largely depends on how drastic the required 
changes from the research to the engineering track are, i.e., I do not have 
a good answer. Personally, I would be surprised if the changes were too 
drastic to make it work at all but then again you never know - we certainly 
have been talking about some quite orthogonal directions to using Squeak.

But does that matter? Practically speaking, no. All it means is that an 
infrastructure is in place which enables you to do tight collaboration using 
these objects. That - for example - the objects have builtin policies to be 
able to interact with multiple users (what is a double-click in a 
collaboration environment?) that they know about replication strategies etc. 
OTOH, if you are interested in building "smart clients" (this is a term that 
I have lately heard to distinguish apps from "thin but dumb" clients) it 
actually gives you ways to move the boundary between client and server in a 
way that has been impossible before - starting from a really, really dumb 
client (which would resemble something like VNC or the X-Windows protocol) 
up to a really, really smart client (which would effectively be a P2P 
network with no server other than for getting some code). So there are 
certainly opportunities in the areas of distributed computation - even for 
"boring old business apps" which suddenly might become just a little 
smarter, and just a little more usable than before.

But I disgress ;-)

> Well, as I said - I am not sure yet how Tweak (or Croquet for that
> matter) really relates to Squeak. And since I guess the Croqueteers
> aren't sure themselves :) it is all a bit foggy right now. To me at
> least. :)

I think the best way to describe the *current* relation between Squeak, 
Croquet and Tweak is to say: Squeak is being used by both. Both systems have 
a set of requirements which are met by Squeak - mostly that of having a 
fairly simple late-bound object system with good programming tools and -most 
importantly- the ability to change everything top-to-bottom. I fully expect 
to port both forward to the next Squeak release which contains m17n (again 
"using" Squeak) but whether that's going to stay that way is a different 
question.

Okay, I know I shouldn't do it but I am going to hint a little bit at the 
future: Personally, one of my major goals is to -oh my god- get rid of the 
current Squeak VM and replace it with something infinitely more flexible, 
elegant, and fast. That would be a major step away from what we currently 
have under the name of "official Squeak" but it seems to me that we have 
both the technology and the people to make this happen and I will be damned 
if I miss that chance.

Secondly, security is going to be one of the major thrusts of our efforts 
which (not surprisingly) will address the issue of modularity - by the end 
of the day, in order to be successful we must be able to replicate code on 
arbitrary machines of the internet, run it securely, and get rid of it with 
(literally) no traces left. I believe that's absolutely doable and, again, 
we have the technology and the people to do it (shameless plug on "how to do 
security right": http://www.erights.org and 
https://www.cypherpunks.to/erights/talks/uni-tea/uni-tea.ppt for how this 
might work in the context of Croquet).

Thirdly, the time is ripe for some REAL progress on the front of end-user 
programming, towards a system that is able to speak to the user in the form 
that the user knows about or wishes to use, to have a system that is capable 
of explaining itself to the user, that tells you where to start, what to 
look for, who to ask. A system that includes lots of exemplary programming 
styles, varieties on the languages you use all of which brings security and 
distributed computing to the end-user.

Cheers,
  - Andreas




More information about the Squeak-dev mailing list