Fear and loathing of the "perification" of Smalltalk
damien.pollet at gmail.com
Fri Sep 14 15:12:46 UTC 2007
> > but you can also do that with a declarative syntax as is implemented
> > in Stef's Sapphire or in GST 3.0 betas.
> ALL META OPERATIONS CAN BE DONE WITH STANDARD SMALLTALK SYNTAX
> Adding the variables to the class in my examples is a declarative
> statement! It's just expressed in the language of messaging itself! Why
Then it's a different language that happens to use the same grammar. Confusing.
To be declarative, your language for "changesets" should only accept
messages like #addInstanceVariable: you mention. I suppose it would
have messages for declaring packages , protocols etc. But since the
grammar is the same, users will be tempted to insert chunks of
imperative Smalltalk in places. What do you do then? ignore them and
only consider the declarative messages you know about? then you're not
using the semantics of Smalltalk.
> All meta operations can be done with standard Smalltalk syntax of unary,
> binary and keyword syntax messages!
Sure, they are. But those messages exist to implement tools like the
compiler, not to declaratively describe code.
> There is almost zero need to use any
> new syntaxes to do the job when Smalltalk style messaging syntax is the
> most potent syntax.
I don't get why you're so obsessed with reusing (abusing?) the
existing textual grammar of Smalltalk, which is incomplete since it
only covers method patterns and bodies.
We do currently have a "syntax" for declaring packages and classes and
protocols, in the form of the Browser's graphical interface, but it's
obviously not practical to scan screenshots of the browser to file-in
code. So we're searching for a textual, declarative alternative.
type less, do more [ | ] http://typo.cdlm.fasmz.org
More information about the Squeak-dev