[squeak-dev] The Trunk: Collections-pre.822.mcz

Eliot Miranda eliot.miranda at gmail.com
Thu Mar 21 20:13:16 UTC 2019


On Thu, Mar 21, 2019 at 1:03 PM Chris Muller <asqueaker at gmail.com> wrote:

> My main objection is about growing the "mutator" nomenclature further
> instead of trimming it back.


+1


> I'm working on a GraphQL framework.
> GraphQL has a first-class notion of "mutations".
>
>   https://graphql.org/learn/queries/
>
> Currently, we have almost zero mention of the word
> "mutator" in the image.  I would appreciate if, instead of germinating
> the overloading the word, we uproot it and keep the nomenclature for
> this Smalltalk tooling confined to "getter" and "setter" that we have
> now.
>

+1


> So, instead of #asMutator and #isMutator, how about #asSimpleSetter and
> #isSimpleSetter?
>

+1


>
> We can end up removing a method instead of adding one.  We already
> have many existing methods which are dealing with this conversion, all
> of which use the traditional Smalltalk / developer linguisitic of
> "setter".  Browsing through all the "setter" nomenclature we have in a
> message names browser, including
>
>   Utilities class>>#getterSelectorFor:
>   Utilities class>>#setterSelectorFor:
>   Utilities class>>#simpleSetterFor:
>
> which instruct Etoys users to use existing methods on String,
> #asSetterSelector or #asSimpleSetter.
>
> Of special note is SyntaxMorph>>#isStandardSetterKeyword: which, by
> its use of a utility-method implementation, acknowledges that this
> behavior is _application-specific_.
>
> I, myself, would just write:
>
>       someSelector asSimpleSetter = someSelector  "same as isMutator /
> isSimpleSetter"
>
> instead of #isSimpleSetter, but can appreciate both styles.  They both
> better avoid the awkwardness of "mutator" as a general, reliable
> behavior when:
>
>     #at: isMutator  "true"
>
> while
>
>     #at:put: isMutator   "false"
>

+1000. Chris is right.  isMutator is a mistake.


>
> Best,
>   Chris
>
>
>
> On Thu, Mar 21, 2019 at 1:16 AM <patrick.rein at hpi.uni-potsdam.de> wrote:
> >
> > Which one are you refering to? I only see Symbol>>#asMutator in
> Collections in the method category converting. It is also used in a few
> other places beyond generating instance variable accessors.
> >
> > Bests,
> > Patrick
> >
> > >#asMutator: is for "generate instVar accessors" code-generation, and
> > >that's why it's in the Tools package.
> > >
> > >IMHO, if #isMutator belongs anywhere, it isn't in Collections.
> > >
> > >Regards,
> > >  Chris
> > >
> > >
> > >
> > >On Wed, Mar 20, 2019 at 3:08 PM Chris Muller <asqueaker at gmail.com>
> wrote:
> > >>
> > >> Assuming a single-keyword is a mutator?  Object>>#at: is not a
> > >> mutator.  #indexOf: is not.  #first: is not.  Obviously many more..
> > >>
> > >> If API balance is the goal of this, perhaps #asMutator should be
> > >> removed instead.   This feels application-specific...
> > >>
> > >> On Wed, Mar 20, 2019 at 2:05 PM <commits at source.squeak.org> wrote:
> > >> >
> > >> > Patrick Rein uploaded a new version of Collections to project The
> Trunk:
> > >> > http://source.squeak.org/trunk/Collections-pre.822.mcz
> > >> >
> > >> > ==================== Summary ====================
> > >> >
> > >> > Name: Collections-pre.822
> > >> > Author: pre
> > >> > Time: 20 March 2019, 8:05:20.383677 pm
> > >> > UUID: 483c4461-cee4-4a4f-82d3-fbc03e7201cc
> > >> > Ancestors: Collections-dtl.821
> > >> >
> > >> > Adds #isMutator to Symbol which is analogous to asMutator.
> > >> >
> > >> > =============== Diff against Collections-dtl.821 ===============
> > >> >
> > >> > Item was added:
> > >> > + ----- Method: Symbol>>isMutator (in category 'testing') -----
> > >> > + isMutator
> > >> > +
> > >> > +       ^ self isKeyword and: [self numArgs = 1]!
> > >> >
> > >> >
> > >
> >
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190321/3b07398d/attachment.html>


More information about the Squeak-dev mailing list