Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
my original polemic email (Version 3)
Last updated at 2:39 pm UTC on 16 January 2006
Hi daniel

I send it into the mailing list too becuase this is important

From a language design perspective

#()
is necessary because it is compiled statically and cannot not be
simulated by other construct. Storing #() in Stack frame is not really goo
but this is an implementation aspect.

#{}
is not necessary because this is shortcut macro-expansion for Array new
add: ....

So why having only this one. There is two ways:
or you have a way to describe macro-expansion like in Scheme where you
can define any macro in a clear way (you know the semantic of the stuff

or we remove it because why not having
{{}} for Set new add:
{#[]} for OrderedCollection new....Because I use more
OrderedCollection than array

Removing would simply the parser, compiler, Object simpler the printer
printer the VM, the bytes code emitter, then Squeak would be a bit more
standard but this is not the most important point. Why can I send the
message caseOf: to ___any Object___ berk!!!!


I'm pretty sure that I can destroy the semantics prevservation of certain
refactoring (I did it for ObjectStudio RB because OS has this &(Page 2083 - recycle me&(
construct too). The parser of Rb in Squeak has to e more complex than the
one of VW because of the expressions inside {}....

And it would avoid to have people writing,
(I saw that in indsutrial code people wrote __huge__

{
{,.n,mnm, } {knlkj lk jjkl with block everywhere}
{,.n,mnm, } {knlkj lk jjkl with block everywhere}
{,.n,mnm, } {knlkj lk jjkl with block everywhere}
{,.n,mnm, } {knlkj lk jjkl with block everywhere}
{,.n,mnm, } {knlkj lk jjkl with block everywhere}
}

So I hope that I convince you. I will try to came up with a change ste that
REMOVE this anthrax from Squeak!!!


Stef