Skip to content

Instantly share code, notes, and snippets.

@brohenry
Created September 24, 2014 01:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brohenry/e20e996b111dee256bef to your computer and use it in GitHub Desktop.
Save brohenry/e20e996b111dee256bef to your computer and use it in GitHub Desktop.
Sometimes it takes us days to come up with the right name for a function. But usually one knows when it’s right. It somehow just fits. And one can immediately remember it.
In Mathematica 6, a typical case of function naming was Manipulate.
It took quite a while to come up with that name.
We created this great function. But what should it be called? Interface? Activate? Dynamic? Live?
What?
Interface might seem good, because, after all, it creates an interface. But it’s a particular kind of interface, not a generic one.
Activate might be good, because it makes things active. But again it’s too generic.
Dynamic: again it sounds too general, and also a bit too technical. And anyway we wanted to use that name for something else.
Live… that’s a very confusing word. It’s even hard to parse when one reads it. Does it say “make it alive”, or “here’s something that is alive”, or what?
Well, after a while one realizes that one has to understand with more clarity just what it is that this great new function is doing.
Yes, it’s creating an interface. Yes, it’s making things active, dynamic, alive. But really, first and foremost, what it’s doing is to provide a way to control something. It’s attaching knobs and switches and so on to let one control almost anything.
So what about a word like Control? Again, very hard to understand. Is the thing itself a control? Or is it exerting control?
Handle? Again, too hard to understand.
Harness? A little better. But again, some ambiguity. And definitely too much of a “horse” motif.
Yoke? That one survived for several days. But finally the oxen jokes overwhelmed it.
And then came Manipulate.
At first, it was, “Oh, that’s too long a word for such a great and important function.”
But in my experience it often “feels right” to have a fairly long word for a function that does so much. Of course there were jokes about it sounding “manipulative”.
But as we went on talking about the function, we started just calling it Manipulate among ourselves. And everyone who joined the conversation just knew what it meant. And as we went on developing all its detailed capabilities, it still seemed to fit. It gave the right sense of controlling something, and making something happen.
So that’s how Manipulate got its name. It’s worked well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment