Paul D. Fernhout wrote:
Jecel Assumpcao Jr wrote:
[Us paper] http://citeseer.ist.psu.edu/5049.html
Thanks for the link. I'm not sure how this differs from regular Self? And the paper is not online that I could find.
Clicking on the "PDF" link in the upper right corner of that page worked for me just now. Self is an objective language, which means that the code to be executed depends on the type of the receiver and on the message selector. Us is a subjective language where the code to be executed also depends on the context from which the message was sent. This is an extension of the work on "layers" done in Smalltalk in the PIE project.
An idea closely related to the "viewpoints" introduced in Us is "roles" where the code also depends on the context. The difference is that when you change viewpoints all objects change at the same time (like moving your head in a 3D environment) while when you change a role only a single object is affected (like rotating an object in a 3D environment). Both of these features address some of your complaints about using objects exclusively for everything.
[patapata and documenting intent]
I think the issue is unrelated to class vs prototypes and is actually about having a global catalog vs allowing loose objects. Even in Smalltalk-80 you have loose objects (like "Set class"), of course, by they are so closely coupled with cataloged objects that they don't matter. As always, there are tradeoffs. Doing things one way will make some stuff easier and others worse (without loose objects there is a strong temptation to use block where you should really be defining new objects, for example). We have a lot to learn about how to best organize systems, specially when they are modular.
[Squeak-on-JVM and licenses]
I think the extra step of getting Squeak 1.1 relicensed as Apache after Apple had already agreed to relicense it as APSL 2 was more than we could have hoped for. All code written after that is in the process of being relicensed using the old X11 (often called "MIT") license. The latter is GPL compatible, so as long as you are willing to do your own replacement for Squeak 1.1 your legal needs would be met.
Note that some people were interested in getting Squeak to run on top of Strongtalk's VM and that would match your request for a non Smalltalk syntax (it is written in C++).
Again, I don't care if the VM is written in Smalltalk. I think it is clever to make a VM in an abstract way, especially as it is already done (even though there are some disadvantages). I'd much rather work in Smalltalk syntax than other syntaxes (even Python). I was using it more as an example of Squeak applying a design principle which may be obsolete in the internet and free software age.
The whole point of the Slang trick was to be able to debug using all the nice Squeak tools instead of gdb. Some people don't want that while for others it makes all the difference in the world.
-- Jecel