SystemDictionary>>imageImports -> XXX>>imageImports

Russell Penney russell.penney at tincanct.com
Wed May 14 01:16:35 UTC 2003


I think that for people new to the system an Import class would be
easier than the existing system. I remember spending WAY too much time
trying to track down where the images lived.
I, personally, would rather have a single class "Imports" which is a
dictionary of dictionaries. So I can say:

image := ( Imports bundle: 'RussellsImports' ) at: 'MyImage'.
movie := ( Imports bundle: 'RussellsImports' ) at: 'MyMovie'.
font := ( Imports bundle: 'RussellsImports' ) at: 'MyFont' ifAbsent: [ (
Imports bundle: 'SystemDefaults' ) at: 'DefaultFont' ].

Where my particular bundle (or package or whatever it gets called) is
loaded by:

Imports loadBundle: 'RussellsImports' from: 'c:\russells_media\*.*'

The file names without extensions become the keys to my dictionary and
each recognised filetype gets instanced as the appropriate class.

The main thing is that Imports not be limited to images but to all media
types including Mpeg, MP3, wav, images, fonts, etc.

There would be system objects loaded in the base image and modules can
load their own bundle so they are not/less dependent on the minimal
image.

And for something like a headless system, just empty (most of) it to
save space!

Russell
-----Original Message-----
From: squeak-dev-bounces at lists.squeakfoundation.org
[mailto:squeak-dev-bounces at lists.squeakfoundation.org] On Behalf Of
Martin Wirblat
Sent: Wednesday, 14 May 2003 3:11 AM
To: Squeak
Subject: Re: SystemDictionary>>imageImports -> XXX>>imageImports

Hi Julian,
the specific method I had in mind is #imageImports. It is a method, 
but it is about data, it looks up images. I can't think of the 
existence of this method, without first thinking about this data. 

Classes and methods are nicely i.e. hierarchial ordered in Squeak. But 
if I want to see e.g. what icons are available, or what urls or texts 
the system knows, what pictures and sound it has, it turns out, that 
these non-code-objects are somewhat scattered around the system. They 
may be hardcoded as literals, they may be accessible via Smalltalk the 
SysDic. If there are now new classes introduced to take away this data 
from Smalltalk ( as I understand Stephane ) I fear the access to these 
objects gets even more dissipated. 

But I think you are right regarding that if one has this in mind, it 
should be possible to even structure these non-code-objects better 
than they are today. If this is done with more than one new class, 
these classes should belong together in some way, so that they make 
something whole. 

Regards, Martin

Julian Fitzell <julian at beta4.com> wrote on 13.05.2003 16:44:50:
>
>Martin Wirblat wrote:
>> Hi Stephane,
>> 
>> thank you for replying to me. I think I should have left out the 
>> middle part of my post regarding references to Smalltalk, I just 
>> thought that there has to be access to it, maybe it would be better 
>> to replace all hardwired refs to it with something like 'Smalltalk 
>> default' in order to prepare Squeak for multiple environments, 
>> maybe something else, I don't know. 
>> 
>> However, you don't convince me really on finding things in 
>> additional classes. 
>> 
>> 
>>>In Imports I have a better chance to find stuff related to imported 
>>>objects
>>>than to namespace whose the only responsibility should be dealing 
>>>with class names.
>> 
>> 
>> At first you have to find Imports. Probably you need some more 
>> dictionaries holding data, if you don't want to have this data in 
>> Smalltalk. Isn't this more complicated than to have one single 
>> place where to look for this? Wasn't Smalltalk meant to be the 
>> single place for this? 
>
>Hrm... well... I mean by that logic, by extension, why have classes 
>at all?  If we just put all the methods in one place then we'd know 
>where to find them all.  But it isn't very logically divided.  This 
>seems like unclean design, not to mention causing problems for 
>eSqueak, etc. 
> I don't think that what we have now is exactly the same problem, 
> just to a 
>lesser degree.
>
>I'd actually argue it makes it harder to find stuff because while you 
>know where to look it would take you hours to look through all the 
>methods.  And if you're working with a certain set of functionality 
>(ie a bunch of clases in the system) then presumably you will look 
>for any methods having to do with that functionality there.
>
>You don't mention specific methods and I assume that there is a small 
>subset of methods that should be on SystemDictionary.  But most of 
>the methods there, imo, belong on more appropriate classes.
>
>Julian







More information about the Squeak-dev mailing list