Symbol>>capitalized?

Ralph Johnson johnson at cs.uiuc.edu
Tue Jan 2 10:13:07 UTC 2007


> I generally figure any string manipulation on a symbol results in a
> string but Symbol>>capitalized is implemented as
>
> capitalized
>
>         ^self asString capitalized asSymbol
>
> I found this while watching the process browser running a lengthy
> script in the background and found about 80% of time was spent in
> WeakSet scanFor:
>
> I did a search of the image and couldn't find a single instance of
> sending capitalized to a symbol where the caller was going to use it
> as a symbol rather than a string.
>
> So, in the name of performance, I vote to nuke this method or change
> it to just return a string.

I would be much more convinced if you had said "I've been making this
change to all my programs for the past year and have never ran into
any difficulty because of it."

There isn't much risk if you make that change to your image because
you will remember that you made the change and if you run into a
problem because of it, you'll probably catch it right away.  However,
if we make the change to the standard image then it might change the
behavior of someone's application who doesn't know the change was made
and so will have a hard time figuring out what happened.

I suggest you make that change in all your programs and report back
next year.  In fact, I encourage lots of people to make that change.
Then, when we have a debate in a year we can have testimonials like "I
tried it and everything was fine" or "I tried it and it broke XXX".
That would be the right time to make the change.  Or not.

Performance improvements are good, and we want to be continually
making them.  Hoever, they are rarely critical, and it is better to
check them out carefully before making them.

-Ralph Johnson



More information about the Squeak-dev mailing list