
On Dec 4, 2009, at 12:20 AM, Andrew Venikov wrote:
David Bergman wrote: <snip>
But the choices are usually, well, *different* ways (different notions or at least highly different interfaces) of accomplishing the same thing.
What about map and hash_map? They try to accomplish the same thing and the interfaces are almost identical?
Or even std::vector and std::list for a lot of operations :-) Yes, if the runtime characteristics is highly distinct, preferably complexity-theoretically so, there can be a use of multiple implementations. Although: even the notions at a *semi*-abstract level are different between map (tree) and hash_map (); so, I do not even think about hash_map and map the same when diving an inch below the most abstract level. So, I would venture to say that the notions are distinct at that semi-abstract level.
I say make the user aware of different options and what the differences mean in terms of performance/scalability/usability and so on and let her decide what to use.
Makes sense. This will become quite important, as some other guys have pointed out. /David