Hacker News new | ask | show | jobs
by Jtsummers 3694 days ago
But it's not a compatible API. At that point, I have a second library and everyone has to rewrite their code to use it. This defeats one of the main benefits of having libraries in the first place.

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.

1 comments

As a consumer of APIs I agree that having drop-in replacements for APIs is the ideal state. However, as a producer of APIs, I also appreciate the efforts required to design a good API. There's some value in that. This translates to any product other than an API, of course, but in general if somebody creates something of value, I believe people who derive value from it should respect the creators' wishes.

This case is not, of course, about APIs. It's because Sun created this enormously valuable Java developer base, and Google totally free-loaded on that to bootstrap Android. The API just happens to be the means, and hence the crux of the lawsuit.