There are a number of interested parties- my own approach, evolving as we speak, is partially described at:
http://www.canis.uiuc.edu/~tyrrell/Squeak/Personal/Oasis/index.html
The description is actually very sparse, I really need to update this. Oasis, like most of what I do, is written for VisualWorks. However, it is not UI-dependent so I don't anticipate much difficulty in porting it to Squeak. I'm close to finishing up one of the analysis tools in Oasis, so perhaps I can get something decent written about it in the near future- the current description of Oasis is very inadequate. Basically, given some arbitrarily huge chunk of code, Oasis tears it apart and builds a number of useful analytical models that I can then browse ( but without a UI at this time ).
One of the coolest things about COM and Java Beans are the ability to plug modules into an application or an enviroment.
What is the Squeak approach for this?
Is anybody working on a "Squeak Droplets" or some such component architecture?
One of the nicer features of QKS SmalltalkAgents, which could serve as a model for work in Squeak, was the Namespace class. This class allowed for the creation of isolated classes and even the overriding of methods in basic classes (like Object!) without causing disastrous side effects in the overall system. Only projects defined in a given Namespace would see the classes or methods defined in the Namespace. I am not sure whether the mechanism was general enough to permit moving an existing class into a different part of the class hierarchy, but I would not be surprised if that were part of the deal. The overall goal, I think, was to create compatibility zones for ParcPlace, IBM and even Digitalk fileins - I am not sure how much of this was ever implemented. There was also a facility for constructing loadable/unloadable bytecode modules, and for shipping standalone applications by pruning off every class other than those needed by the app and compiling the bytecodes into native machine code (the virtual machine would therefore not have to be shipped with the app).
Hmm. This is at least the second time I mentioned this Smalltalk implementation in this group. The reason is that it was the only commercial Smalltalk I ever bought, not that I have any particular bias one way or the other. At the time, it was the only product that 1) Ran on my Mac; 2) Had a complete set of classes (Squeak didn't exist; gnu had incomplete GUI support); 3) I could afford (I bought it cheap at Macworld, but free would have been better). All in all, though, it had a lot of good features I have never seen anywhere else. I don't even know if it still exists.
Ed
Les Tyrrell wrote:
There are a number of interested parties- my own approach, evolving as we speak, is partially described at:
http://www.canis.uiuc.edu/~tyrrell/Squeak/Personal/Oasis/index.html
The description is actually very sparse, I really need to update this. Oasis, like most of what I do, is written for VisualWorks. However, it is not UI-dependent so I don't anticipate much difficulty in porting it to Squeak. I'm close to finishing up one of the analysis tools in Oasis, so perhaps I can get something decent written about it in the near future- the current description of Oasis is very inadequate. Basically, given some arbitrarily huge chunk of code, Oasis tears it apart and builds a number of useful analytical models that I can then browse ( but without a UI at this time ).
visit http:/www.qks.com/ for news of their upcoming release
beta 3.0 is for Windows only. Mac version seems stuck at 2.2 :-(
--************************************************** Jeff Szuhay mailto:jeffs@pstnet.com Lead Macintosh Engineer voice: 412/271-5040 x227 Psychology Software Tools http://www.pstnet.com/
Howdy,
ok, the screenshots are really neat. so how do i go about getting my squeak to look like custom squeak #2??
\//_
I just noticed that it's my screenshot (I didn't know it had been linked)...anyway, I just played around a little bit with SystemWindow...added an icon method that answers the Squeak logo by default, re-positioned the buttons (and added maximize) and drew the bitmaps for those buttons. I also created a modified button (subclassed SimpleButtonMorph) that would draw a raised border on a #mouseEnter: event and then draw an inset border when pressed (shifting the submorph for the button down and to the right).
There are a few problems with shifting the title bar around...mostly having to do with subclasses that throw additional morphs up there (like the notifier and parts bins).
I was interested in the following things that I saw:
1. Syntax highlighting 2. Function plotter 3. Whisker
Anyone know if these are available?
- Stephen
-----Original Message----- From: Montgomery F. Tidwell [mailto:mtidwell@mail.com] Sent: Thursday, June 24, 1999 5:06 PM To: squeak@cs.uiuc.edu Subject: Re: Screenshots
Howdy,
ok, the screenshots are really neat. so how do i go about getting my squeak to look like custom squeak #2??
\\//_
Regarding namespaces: this seems like a GREAT idea.
A) As a newbie I was often been puzzled by the amount of baggage Object carried around: stuff to do with URL's, whether or not the object was a Color, etc. If that baggage could be moved to whatever project actually required the code (e.g., Scamper, etc.) it would make browsing the system easier (and less intimidating).
B) I've wanted to make a change to a built-in class method but resisted because there didn't seem to be any way to fileout that change in a single file with the rest of the code comprising my project. Namespaces would allow you to gather ALL of the changes you've made to the system into a single fileout. (Though at first glance this doesn't seem all that critical, I for one like having an ASCII record of my project: this allows me to download the latest Squeak then filein my project).
Sorry I can't yet do the work myself -- mabey with a little more familiarity!
"Erik R. Knowles" wrote:
B) I've wanted to make a change to a built-in class method but resisted because there didn't seem to be any way to fileout that change in a single file with the rest of the code comprising my project.
Repeat after me: "change sorters are our friends". ;-) Just open up a simple change sorter or a dual change sorter - now create your own change set or select one already existing, then pop up the menu and select "make changes go to me". You can then move or copy any other methods in other change sets to yours, or filein your code, or make a change in your method and accept, or whatever. When you fileout your change set it will contain all the methods you changed or added -- you can also browse the change set, add preambles or a postscript, ....
-- Dwight
OK, guess I know about change sorters now. My main point is still: Squeak code seems to violate the basic tenant of object-oriented programming, namely, encapsulation. Going back to my Object discussion, if Object MUST be loaded with methods like "playSoundNamed" then would it make sense to at least semi-encapsulate these methods by making them only viewable inside the project where they're used?
squeak-dev@lists.squeakfoundation.org