|
|
|
|
|
by throwawaykf05
3694 days ago
|
|
That is what Chicken Little would like you to believe, but you always have the option of devising your own API, call it prefixWithChars. If your implementation really is that much better, people will go through the effort of migrating their software. The sky is not falling. |
|
The benefit of a library, fundamentally, is that any library with a compatible interface (described by the API) can be dropped in and used in place of another library without modification to the calling code. Cloning functionality is not the same thing if we have to put a prefix: thrawaykf05s_leftPad or Jtsummers_leftPad in front of everything.
In theory, as a developer using dynamically linked libraries, I can drop in any version of a library without recompiling. As a user that means you can drop in AMD's OpenGL implementation or a GPL implementation or Nvidia's and see no difference in how you launch your program (though you'd see a difference in performance and perhaps behavior).
(OpenGL isn't a great example because the consortium running it won't do this, but it is a great example because there are many implementations.)
Now, as a developer you have to develop 100 code paths to handle each potential OpenGL implementation. Or maybe some nice person does that for you with a wrapper library. But now that wrapper library API is also copyrighted and it's out of date. So another API comes into existence that wraps it AND adds new APIs to its backend. That'd be really fucking stupid.