API versus code

It may seem counterintuitive to many programmers that it is better to have poorly implemented code with a solid API design than to have well-implemented code with poor API design.

Do not doubt your code will live on, be reused in other projects, and take on a life of its own. If the API design is good, the code itself can always be refactored to improve its performance. Conversely, if the API design is poor, changes to it require cascading changes to all of the code using it.