Whats the big deal with generic programming?
C++ supports generic programming. Generic programming is a way of developing software that maximizes code reuse in a way that does not sacrifice performance. (The “performance” part isn’t strictly necessary, but it is highly desirable.) Generic components are pretty easy to use, at least if they’re designed well, and they tend to hide a lot of complexity. The other interesting feature is that they tend to make your code faster, particularly if you use them more. This creates a pleasant non-tradeoff: when you use the components to do the nasty work for you, your code gets smaller and simpler, you have less chance of introducing errors, and your code will often run faster. Most developers are not cut out to create these generic components, but most can use them. The process for creating them is a non-process. You fiddle, you scratch your head, you wake up a 3 a.m. with a great idea, you rip your code up over and over (and over and over). In short, you iterate. You’re trying to put 10 pou