Widgets and Books for Squeak
John_Gardner at dmr.ca
John_Gardner at dmr.ca
Fri Mar 24 16:17:24 UTC 2000
Thanks Bob,
I'll run with your code when I've hit the competence level on the Squeak
learning curve. I'm sure this could become the basis for a flexible,
configurable "packaging" tool.
Your response does seem to imply something. Does the entire Squeak community
believe that MVC is a waste of time and that the default UI should be Morphic?
Am I wasting my time investigating the extension of MVC to include a set of
Widgets? Should I instead focus my energies upon Morphic and collaborating on
developing the aforementioned "packaging" tool?
I apologize for sounding so Newbie-ish about all this, but time is an issue for
me. My heart wants to convert to Squeak, but my mind is cautious. I believe that
Squeak is architecturally superior and more cost effective than Java, but there
are some holes.
I sense that the Squeak community wants Squeak to become to languages what Linux
is to operating systems. To do this, packaging, Squeak-to-Squeak communication,
XML support and documentation are 4 key areas to be addressed.
We're not there yet. Unfortunately, Java still has some advantages over Squeak.
Thanks,
John.
Bob Arning <arning at charm.net> on 03/24/2000 10:44:46 AM
Please respond to squeak at cs.uiuc.edu
To: squeak at cs.uiuc.edu
cc: (bcc: John Gardner/DMR/CA)
Subject: Re: Widgets and Books for Squeak
On Fri, 24 Mar 2000 09:00:14 -0500 John_Gardner at dmr.ca wrote:
>1. I am not dissing Morphic.
>It is truly incredible and extensible. It is an excellent UI. However, it is
BIG
>and somewhat slower than MVC. While the speed issue may be resolved through
>tuning, size is still an issue. Perhaps the bytecode compiler could be extended
>to provide information to a "discard..." method which would remove all
>unnecessary classes. This would be an option, of course, and it would only work
>at the system category (application) level. The context here is creating
>applications for end users.
John,
If you are interested in exploring size reductions in Morphic for particular
applications, I have enclosed a changeset that will help. It reports the size of
Morphic divided into two groups - classes to keep and classes to delete. You can
play with the exclusion criteria to manually adjust the keep group to what your
app would need and see how much space would be saved. The output could easily be
input to a method to remove the unwanted parts of Morphic as part of a shrink
prior to deployment.
Cheers,
Bob
========================
'From Squeak2.8alpha of 13 January 2000 [latest update: #1919] on 24 March 2000
at 10:36:25 am'!
"Change Set: morphicSpace
Date: 24 March 2000
Author: Bob Arning
Evaluate
Smalltalk computeMorphicSizePartitioned
to get a report that shows the size of code of Morphic-related classes broken
down into two groups: those one might keep for a Morphic Lite application and
those one might omit. The grouping is determined by a list in the method and is
rather subjective. I removed a number of the larger classes that would still
leave a rather healthy (MVC++) UI capability. More could obviously be pruned and
some of the pruned ones might be of interest in a particular application. As it
stands, it shows the keep category at 400K and the remove at 340K. I'm sure this
could be reduced quite a bit more, depending on the type of application"!
!SystemDictionary methodsFor: 'shrinking' stamp: 'RAA 3/24/2000 10:28'!
computeMorphicSizePartitioned "Smalltalk computeMorphicSizePartitioned"
| allClasses possibleDeletes a1 a2 |
allClasses _ Morph withAllSubclasses.
#('User Objects' 'Experimental-*' 'Balloon-*' 'Morphic-*' 'TrueType-*'
'Graphics-Transformations' 'Alice2.0-*' 'MM-Flash-*') do: [
:partialCat |
(SystemOrganization categories select: [:c | partialCat match: c]) do:
[ :cat |
(SystemOrganization listAtCategoryNamed: cat) do: [ :classSymbol
|
allClasses add: (Smalltalk at: classSymbol)
].
]
].
possibleDeletes _ #(
PlayingCard FlashFileReader PostscriptCanvas StandardScriptingSystem
FlashMorphReader
FlashFileStream FlashCodec
TrashCanMorph BookMorph ScriptEditorMorph SketchEditorMorph
PaintBoxMorph
FlapTab HaloMorph EnvelopeEditorMorph TileMorph WaveEditor
PianoRollScoreMorph
FlashPlayerMorph ScorePlayerMorph TabbedPalette EventRecorderMorph
CategoryViewer FreeCell FatBitsPaint PlayingCardDeck
WonderlandWrapperMorph
PhraseTileMorph MidiInputMorph WonderlandCameraMorph ColorPickerMorph
SpectrumAnalyzerMorph WonderlandMorph FlashCharacterMorph
FreeCellBoard
LipsMorph SameGameBoard KeyboardMorphForInput FlashButtonMorph
SameGame IRCMorph FlashMorph ReferenceMorph FlashSpriteMorph PinMorph
MoviePlayerMorph GraphicalDictionaryMenu BlobMorph HeadMorph
GraphMorph StandardViewer MovieMorph TilePadMorph CompoundTileMorph
JoystickMorph ScreeningMorph RecordingControlsMorph IndexTabs
BookPageThumbnailMorph PartsWindow MagnifierMorph WiWPasteUpMorph
BooklikeMorph PianoRollNoteMorph BouncingAtomsMorph FaceMorph
KlattFrameMorph TetrisBoard FlashSorterMorph FishEyeMorph Tetris
MultiuserTinyPaint ViewerEntry RemoteHandMorph PlayingCardMorph
SoundLoopMorph FlashPlayerWindow WonderlandActorData SpeakerMorph
Viewer TabSorterMorph FunctionComponent GraphicalMenu
MIDIControllerMorph
BookPageSorterMorph HeadingMorph SoundDemoMorph LedDigitMorph EyeMorph
MIDIPianoKeyboardMorph PaintBoxColorPicker WonderlandCameraControls
ColorTileMorph
).
a1 _ self reportSizeOfClasses: (allClasses reject: [ :each |
possibleDeletes includes: each name]).
a2 _ self reportSizeOfClasses: (allClasses select: [ :each |
possibleDeletes includes: each name]).
StringHolder new
contents: 'Keep these
',a1,'
And remove these
',a2;
openLabel: 'Possible Morphic Lite Configuration'.
! !
!SystemDictionary methodsFor: 'shrinking' stamp: 'RAA 3/24/2000 10:22'!
reportSizeOfClasses: someClasses
"
Morph spaceUsedWithSubclasses
"
| data answer total |
data _ someClasses asArray collect: [ :each | {each name. each spaceUsed}].
data _ data asSortedCollection: [ :a :b | a second >= b second].
answer _ String streamContents: [ :strm |
total _ 0.
data do: [ :each |
strm nextPutAll: (each second printString padded: #left to: 8
with: $ ),' - ',
each first; cr.
total _ total + each second.
].
strm cr; nextPutAll: (total printString padded: #left to: 8 with: $
),' - TOTAL'; cr; cr.
].
^answer
! !
More information about the Squeak-dev
mailing list
|