I often offer aliases, especially where it may make code easier to read. For example, in
Tree, there's an add_child(). I haven't done it yet, but add_children() could very easily be a synonym for add_child() because add_child() takes any number of children as arguments. Same with remove_child (remove_children), has_child (has_children), and find_index_for (find_indices_for).
One of the weaker criticisms of Ruby is that it offers too many aliases, making it harder to read someone else's code. I actually find that there aren't enough aliases, but that's just me.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?