The future of SM...

goran.krampe at bluefish.se goran.krampe at bluefish.se
Fri Jul 16 13:29:18 UTC 2004


Hi all!

Craig Latta <craig at netjam.org> wrote:
> Hi all--
> 
> 	I've spoken with Göran individually, and it seems there are no hard
> feelings (certainly not on my part). However, for the record, I do think

Right, no hard feelings here either.

> it was inappropriate of him to excerpt our IRC conversation here (he has
> since apologized). I think this because he left out a bunch of important
> context, and (in my opinion) misrepresented my position. In particular,

Yes, it was dumb. I thought it was a good thing at the time, so that I
wouldn't "misquote" - but in retrospect it's not something one should
do. IRC is IRC, my bad.

> he omitted my statements regarding the vitality of SqueakMap for our
> current efforts, and what I meant by "transitional". I encourage people
> to read the actual transcript, despite its length.

Such omitting on my part was not intentional.

> 	When I say "transitional", I mean that, in my view, SqueakMap's main
> value is in helping us discover how to group the content of the system
> into packages, but there are better ways to represent and distribute
> those packages. In the IRC conversation, I describe SqueakMap as a
> vehicle, which helps us get from the traditional chaotic and intertwined
> "kitchen sink" to a state where we have a better idea of what the
> logical component groupings are. That we reach our destination does not
> mean that the vehicle is worthless, just that it has served its purpose.

This is where we clearly are of different opinions.

SqueakMap is primarily a Smalltalk domain object model - yes, *objects*,
not a "file" in sight - describing knowledge that we want all Squeakers
to share. Yes, *that* is IMHO what it is primarily. It is a part of the
image that is kept in synch with the rest of all the Squeakers in the
world, so that we all have the same picture of this model.

My ultimate goal is to make that model shared in "real time" like an
object model is shared in GemStone/Magma or Croquet with it being
writeable using transactions. Currently it is only a crude approximation
with two major problems (and some smaller ones too):

1. You need to "synch" it manually.
2. It is readonly.

But this has nothing to do with the model itself.

Now, what is the information that Squeakers want to share with each
other? We have currently the names, emails and developer initials of
developers. We also have the names, descriptions, owners,
co-maintainers, creation dates etc of packages. And lately we have added
all the known releases of those packages with release notes, version
number, creation date, update date and an "address" of where to get the
actual release. All of these things that are in SM are also
categorizable - yes, even the accounts can be categorized.

Now, this release "address" can be whatever we like. And how to get the
release can be whatever we like. And the format of the release can be
whatever we like. Currently it has sufficed with an address that is a
URL because to this day we have only written installers for such
"files", but it doesn't have to be! For example, there is nothing
stopping us from adding a StORE installer so that SM could install a
release straight from StORE. God knows what protocol it uses.

Currently these are the formats that SM can handle:

.st
.cs
.mcz
.sar
.pr
.tra (yes, translation files)

And most of those with an optional .gz suffix too. Different installer
classes are used and they polymorphically implement #install and
#upgrade, even though only .mcz handles #upgrade properly. #uninstall
should be added.

Now, I think Squat also deals with releases (=snapshots in time of
something that can be installed into an image and which has a version
name) so I see no problem with adding support to SM so that Squat
modules can be cataloged, found and installed into a Squat enabled
system.

Ok, now I am possibly rambling - but ignoring the synch mechanism which
is crude - what is it in SM that is so "outdated"? It is a pure object
model IMHO which is fairly advanced and which I intend to evolve even
further.

I can't see what would be the replacement that makes this model so
obsolete it has "served its purpose".

> Indeed, I think that without SqueakMap, we almost certainly would not
> have made the considerable progress we have since OOPSLA 2002. I think
> Göran's work is very important, and have never thought otherwise.

I hope I haven't made it sound otherwise.

> 	Another important omission: I explained that reflection upon elements
> of the packaging domain model (e.g., authors), by expressing those
> elements entirely as live objects, is crucial in conducting the two-way
> negotiation underlying Squat module synchronization. Also, I emphasized
> that the embodiment of these concepts in the 1 alpha 8 Squat release is
> indeed unfinished, but is (I think) an important illustration of the
> possibilities nevertheless.

This part is not clear to me. For example, what does "expressing those
elements as live objects" mean more exactly? That there is one and only
one instance of Author (representing Göran Krampe) living in one image
on a single computer on the Internet that you can talk to? Is that
"live"? Or do you mean that it is an object that you can send messages
to? Like an instance of SMAccount is today?

The current SM model is replicated from the server to all clients. At a
single point in time these instances may differ depending on when the
local copy was synched since it currently is a very simple manual "load
updates from the net" driving it.

But the model locally is a true Smalltalk model with instances with
behaviours that you can send messages to. Does that mean it is "live"?

> 	I would also like to make it clear that I never suggested Göran stop
> working on SqueakMap. Also, last night's conversation was solicited by
> Göran. He asked my opinion and I gave it.

Yes, the discussion was started by me. No, you never suggested that - I
suggested that. ;)

In other words - if the community is building something that is indeed
intended to replace SM in its entirety without involving me in that
project, then my motivation for continuing my efforts on SM are
drastically diminished, if not even totally lost. That is why I need to
know that I either a) am involved or b) the community isn't doing that.

Since this is very important *to me* - I asked the community. The answer
is still "forming" AFAICT.

Now, one could legitimately ask - what is the problem if people want to
build alternatives? I am all pro-choice :) but there has to be some kind
of meaning behind us "being a community". Some stuff we do together and
form concensus around. IMHO SM is one of those things. It has a lot to
do with motivation - as I said, SM is 100% for the community - then I,
as the lead developer, also want to feel that I have the community
behind me. Simple as that. Btw, it is unfortunate that it is still
largely a Goran-Krampe-show. Again, if anyone is interested in working
on SM in any way - talk to me. And that includes you Craig. :)

> 	Phil Hargett writes:
> 
> > ...to anyone who wishes to criticize SqueakMap and / or Goran's 
> > contributions, I say to you: bring it on.
> 
> 	This seems needlessly confrontational to me. If, after reviewing what
> I've said (and not just a partial secondhand account), you think my
> criticisms have been unconstructive, please say so.
>
> > Feel free to contribute in just the same fashion: that is,
> > delivering good code, developing a consensus around a vision, and
> > coaching others how to move Squeak forward in a coordinated fashion.
> 
> 	The implication here seems to be that I am not contributing in the same
> fashion. I can only point out that my code has been available since the
> first release in February 2004, there has been a public project mailing
> list since February 2003, I have made myself available on the Squeak
> channel for at least that long, and I have invited discussion about
> future directions and desires (in the aforementioned venues as well as
> this list) for over a year. Perhaps most importantly, there is a very
> large amount to design and write, and some conversations need working
> software in order to be meaningful. I don't think characterizing my
> activity as "writing code in a corner" is fair.

Squat is clearly published, definitely so.

> 	Come on over to the Squeak channel. :)

Yes, given the size of this list the attendance on the channel is very
low.
I also think much more people should give it a shot. It's fun and you
learn stuff. :)

> 	thanks,
> 
> -C

Well, that turned into another long post. :) If you read this far I can
at least mention that I have finally hooked up the server side cache in
SM, just about to test it.

regards, Göran



More information about the Squeak-dev mailing list