[self-interest] Assignement return value

Marko Mikulicic mmikulicic at full-moon.com
Tue Sep 12 22:31:36 UTC 2000

David Ungar wrote:

> Why did we specify Self this way?
> The idea is that anything that does not return a particular,
> interesting value, just returns the receiver and we wanted to be
> consistent.

The fact that in Self a method returns the last value without an explicit
return made me think that the situation with the assignment primitive is
also different that from smalltalk's accessors...

> Was it the best choice?

It's ok because it's consistent. It works well in this situations
" (foo a: 1) b: 2 " where receiver based cascading is implemented without
But  the  pseudo code " foo a: (b := c)" must be written as " b: c . foo a:
b" wich means that
the compiler must be smarter to not duplicate code that re-reads the slot
(not an big execution problem since the value of "b" is on the processor
cache", but it increases the code size
and the pipelines could be longer :-).

Does the Self 4.0 compiler optimizer handle this situation ?

> Beats me, but I still like it.
> BTW, all this interest is really gratifying.

Self is THE language. This research for simplicity but power makes it great.

I can't judge the framework build upon it since I haven't a running system
to explore,
but you can build infinite frameworks on top of a language. But a flexibile
language structure
behind the scene makes the real power go out.
Some people criticise C because of his standard library and search for new
language changing a little bit of
syntax, build a new framework and voila', you got a new language that
inherits all the great mistakes of the past.
I didn't have the time to check out, but I have an opinion that this extreme
situation is happening with the ms's  language C#
(and previously, but less extreme, by Java).

> Anyone coming to OOPSLA?

I'm really sad, but I can't.


More information about the Self-interest mailing list