[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
It has been a looong time since I last was able to sit down and
play around with Self 4.0 :-(
Here is what I would like to do if I get a chance (if someone else
wants to do them, be my guest! If I had written this list late
last year, I would have included a web browser and a Smalltalk
emulator as the two most desirable apps! ):
- xeyes: I did create a stupid little morph that always looks
at the first cursor, but I would redo it right this time. I
was able to learn a lot in just the half an hour it took me
to do this, but I used the mouseMoved: event rather than an
- Petri net simulator: that would be easy to do and would impress
people around here who are Petri net fans.
- CMOS simulator: it would be great to rewrite the simulator I
wrote for Self 1.0 to make it totally graphical. It would be
so much easier to do with morphs than with any other programming
system I know that it is a real shame I haven't done it yet.
- table morph: other people have suggested this. I have a simple
design for this, but it wouldn't handle cells that span several
rows or columns. It would have these slots: widths, heights and
- html 3.0 parser: it would be neat to upgrade David's web browser
to handle tables (see above), centered things and text alignment,
background images and other modern stuff.
- HotSelf: a great (but simple) addition would be to be able to
include Self code in www pages. All you would have to do is
grab the text over the net and "runscript" it. No security, of
- spreadsheet: Ole Madsen already wrote one, but I would like one
based on Improv.
- matrices: as there are many APL fans around here, I would borrow
their matrix models. The default behavior for objects would make
them act as a 1 by 1 matrix while vectors would be N by 1 matrices.
We might reserve the ";" binary message for building vectors, so
it would be easy to write "1;2;3;4;5;6 reshape: 2;3".
- better input checking: I am the worst offender regarding checking
input, but it would be neat to add some code to the dialog
boxes to handle this. When the browser asked me for my proxy
name, for example, I stupidly typed "http://www.lsi.usp.br".
Getting things working again after this was quite a challenge!
- abstract types: David Ungar mentioned at ECOOP that "Any user
could add them to Self". It would be a good idea to have some
standard, though. I would base abstract types on the Objective-C
protocols, though I don't really know too much about them. They
- a name
- a version number
- a list of message templates with documentation
- a test suite that could verify if a Self object is an
implementation of the abstract type, and might even give
a score indicating the quality of implementation
Objects could have an annotation saying which abstract types they
implement. I am not sure if abstract types should have some kind
of inheritance or not. Anyway, it would be a good idea to be able
to ask an abstract type for a prototype, rather than referring to
the prototype directly:
protocols list aPrototype copy
is better than:
if we want to allow several programmers to offer list implementations.
Please note that my list doesn't include things like "a system-wide
undo" because these things, while really needed, are best done by
enhancing the virtual machine.