In my view, all functions are verbs.
Calling a function is always "doing something", even if all you are getting is a value.
When they are needed, the work a getter function does is to shield the value from changing, outside of the setter. If you don't care about such protections or protocols, then just read/set the object property directly and don't call a function.
The verb convention also helps make code more self-documenting. Likewise, the available get/set methods also self-document the API by showing which properties are externally relevant.
The "no side effects" rule is very arbitrary and not a worthwhile distinction in either what is or should be a function, or in how to name functions.
In terms of naming conventions, in object-oriented languages, the getFoo/setFoo or get_foo/set_foo convention is about as standard a convention as any naming convention I've run across.
HTH,
Elaine Alt
415 . 341 .4954 "Confusion is highly underrated"
elaine@flaminghakama.com-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-