I am working in another language, but I want to learn from the viewpoint of Self enthusiasts.
On Reddit, I said:
In object-oriented programming, for most engineering benefit, is it better for client code to have to distinguish between cloning a prototype and instantiating a class? Or should I be able to pass to the client code an object that could be either a prototype or a class, so the client code could request a same-named operation in either event, and the result would be a clone or an instance?
And if so, should the operation be called "clone", "new", "create", "make", or something else?