[Meta] Standard packages?

Andreas Raab andreas.raab at gmx.de
Sun Jul 22 23:36:13 UTC 2007


Hi -

I just spent some in 3.10 and while I felt that there wasn't much that 
personally excited me about it, there were still plenty of fixes that 
were interesting enough for me so that I'll have to spend significant 
time to integrate them into Croquet. And if you look at what has 
recently gone into Croquet [1] I'm pretty sure you'll find the same the 
other way around (for example the font caching fixes come directly from 
Croquet). After looking over 3.10 it again occurred to me how splintered 
the larger Squeak community is when it comes to some of the core parts 
of its software.

I think that at some point we'll have to admit that using individual 
images is a reality that we simply need to accept and deal with it 
accordingly. And one of the key parts is to understand how to share code 
across these different images.

The trouble with code sharing is that the most important packages are 
still completely bound to particular images. There is no "Collection" 
package that I can load in from 3.4 through 3.10 and expect it to work. 
There is no common "Numbers", no "Streams", no "Files", Sockets, Sound, 
Exceptions, anything package. While there are plenty of 
application-level packages that support a range of images, there is 
almost nothing at the core of Squeak that can be used across different 
images.

And I'm curious if there is interest in changing this. At least on the 
level where it's fairly non-controversial (e.g., I wouldn't be planning 
on starting with metclasses, m17n, or compiler) it could be a pretty 
interesting for various projects to be able to have a common code base, 
with decent tests to ensure it runs on all the the supported image 
versions etc. So that, for example, if there is an improvement to 
Dictionary you can benefit from it implicitly regardless of whether you 
are using a particular image or not.

In short, what I'm looking for is something like a set of "standard 
packages" which are supported beyond the particular image they apply to. 
In thinking about this, two questions came to my mind:

1. Is this technically feasible? I'm not certain about this given how 
tightly various of the core packages depend on the particular 
idiosyncrasies of particular images. But it'd be interesting to find out 
whether (for example) we could make up a "standard Number package" that 
can easily be installed and supported in various versions.

2. Perhaps more importantly, is there any interest in doing something 
like this? Since it would most certainly require serious work it could 
only be done if other people feel the same like I do and are willing to 
put in some time and effort. If people are happy with where they are 
today (which is quite possible) then this is a no-win situation.

*If* something like this works, it may be one step out of the image 
lock-in that we currently endure. It could also help focusing various 
(currently completely disjoint) parts of the community on help improving 
a shared base.

Comments welcome.

Cheers,
   - Andreas

[1] https://lists.duke.edu/sympa/arc/croquet-dev/2007-05/msg00035.html



More information about the Squeak-dev mailing list