BradA (wouldn't it be cool to just write “Brabrams“?:) posts about Describing and evaluating API usability at Microsoft . It's a power point presentation that describes just what you should be thinking about when designing a programing API. I'm still a little unclear about some of the terms in there, but overall it's an enlightening experience. I like the idea of using “personas” to describe the 3 general types of programmers out there. I was wondering whether I'm considered a “systematic” or a “pragmatic” programmer. Having read “The Pragmatic Programmer” I'd assume to be the latter, but I'm not sure according to the descriptions in the ppt. One thing I liked is how each programmer type likes to use their APIs. I can definitely see these in real-life.
An “Opportunistic” programmer will usually grab what they can from an API to just “get this task done” and not try to learn anything new in the process, how this API affects other system code, or just this Application's code. Although I'm sure I used to do stuff like this, for the life of me I think it would be down right impossible to do now. For better or worse, I can't help learning new APIs and getting "deep" inside them to understand their full impact on lots of other stuff.
I *have* seen a lot of other developers(or should I say "programmers") do this. It usually leads to code that sometimes looks ridiculous; something like some of the visual basic examples you find on MSDN , that show you how to do simple tasks using cut-n-paste from VB Script examples(late binding ,variants and all that). It's also usually hard to maintain such code.