Some programmers avoid "new" as a constructor name. What are some examples of how this can improve code? * iterator := Iterator traversing: anArray. : This one's not bad, though some would still consider naming it "newTraversing" to make it a bit more consistent. * ... What are some examples of how this can worsen code? * user := User instantiate: 214. : Why throw away the existing habits of object-oriented programmers if you don't get any clear benefit? I've heard it argued that you're not creating a "new" user, only "instantiating" one. However, in this case, the one-line description of the "User" class would be something like, "Represents a user of the system". So, you actually are creating a "new" representation of a user of the system. ---- See also FactoryMethodPattern, NamedConstructor