[squeak-dev] Re: talk on Newspeak online

Vassili Bykov smalltalkbigot at gmail.com
Sun May 11 22:52:33 UTC 2008


On Sun, May 11, 2008 at 11:26 AM, Igor Stasenko <siguctua at gmail.com> wrote:
>  Similar can be easily implemented in smalltalk.
>  As well as private/public symbol scoping.
>
>  I think more fair comparison would be not comparing
>  implementation-related concepts , but only languages.
>  Smalltalk is pretty obscure in this regard: it defines only message
>  sending syntax. blocks & methods and yes, assignment and instance
>  vars.

You are eroding abstraction level boundaries. See ANSI Smalltalk spec
for what's considered as a language-level concept. Classes are a
language-level concept. The fact that they are objects and the use of
messages to define them is implementation.

More importantly, I don't think you realize that the real issue is not
(only) providing a capability. You can layer many capabilities on top
of Smalltalk. The issue is that a capability alone assures nothing,
while it is *assurances* that make abstractions useful by making them
reliable. For example, one could argue that message-based OO
programming could be done in C, obviating the need for something like
Smalltalk. The point is that besides providing a capability to do
message sends, Smalltalk enforces it as the only means of expression.
It also eliminates boilerplate code to perform common operations, thus
streamlining your expression. Same here. Some facilities are provided
and enforced, and their expression streamlined. Whether or not they
can be done in Smalltalk is irrelevant.

Regarding programmatic class creation, it's only a matter of having
reflection facility your code is allowed to use. BTW, it's "Newspeak"
with a lowercase "s", and I thought a "SmallTalker" would notice such
things. :)

>  All you need (at least in Squeak) is to provide own implementation of
>  #bindingOf: method which sent to a class by compiler to resolve names
>  which not found in local scope, when method being compiled.

As long as that's a facility for your own corner of the image, it
won't accomplish what one would need it for. It won't allow an
application written for Foobar 3.8 to coexist with one that wants
Foobar 3.10. There can only be one Foobar in the SystemDictionary, and
that's that. Who said DLL hell was a Windows-only problem?

Cheers,

--Vassili



More information about the Squeak-dev mailing list