[Q]Why 'browse' was removed?
Trygve Reenskaug
trygver at ifi.uio.no
Fri Mar 5 10:46:57 UTC 2004
This comment may be out of scope, but I believe the thread rises an
important issue.
The idea of letting a package add methods to other (base) classes reminds
me of MC Windows. When I install a SW product, the windows installer puts
some of the program in a directory of my choice. It also puts stuff into
the Registry, adds some files under C:\, and adds DLLs and other stuff all
over the shop. The uninstall feature works some of the time; it rarely
removes all that should be removed and is very sensitive to obscure errors.
And how many people know how to identify garbage in the Registry and remove
it safely?
I neither control the Registry nor the files in my Windows system. Combine
with a firewall like a sieve: Anybody can put anything into my personal
computer without me knowing anything about it.
I hate it, and suspect Squeak is heading in the roughly the same direction.
I looked at class PackageInfo, the class comment says: "Subclass this class
to create new Packages." Very instructive. I suspect PackageInfo serves the
same purpose as the install/uninstall files of Windows.
Consider Object>>'*connectors-message handling'>>withEnoughArguments:. A
convenient method that anybody might be tempted to use. Remove the
Connectors package, and where are you? (There is a subclass of PackageInfo
for Connectors). I call this an obscure dependency and suggest we prohibit
it. Either extend base classes with new and useful methods or use some
other mechanism such as subclassing or delegation.
I would like to see Squeak becoming main stream (Dynabook 20xx), may be
some of you share this vision. We need a package concept that is safe from
hackers. Safety has to be designed in right from the start, it cannot be
added as an afterthought. (You don't want to be like Windows, do you?)
Packages are about source code. Squeak is about objects. I suggest we look
for a module concept that is more object-like. A starting point could be
the UML 2.0 Component.
--Trygve
At 04.03.2004 11:38, you wrote:
>On Mar 4, 2004, at 10:44 AM, ducasse wrote:
>
>>Because it was introducing dependency between the browser and the core of
>>class. This is like having a popUp menu
>>in the middle of some deep class functionality.
>
>No, it's really not. It doesn't introduce any dependencies. It's a
>completely separate method that isn't sent by any of the "core" methods of
>Object. There's no reason to remove it. If you're concerned about
>marking it as part of the Browser package rather than the Kernel package,
>we have mechanism for doing that - put it in a method category labelled
>'*tools-browser'. But please, please, don't confuse which class a method
>is on with which package it's in. You know better than that, Stef: I
>expect that kind of argument from newbies complaining about #isMorph, not
>from a seasoned Smalltalker. And "we don't have a package system in the
>base" is both incorrect (PackageInfo is meant for exactly this purpose)
>and a poor excuse (if we start destroying the design of the system because
>we don't have a package system now, how will we fix it once we do?).
>
>I hugely appreciate the work that KCP does, but removing methods like that
>is counter productive. Let's put it back, properly categorized, and if
>there are any similar removals that KCP has done we need to know about
>them so we can reverse them too. Please.
>
>Avi
>
>
--
Trygve Reenskaug mailto: trygver at ifi.uio.no
Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway
More information about the Squeak-dev
mailing list
|