Hacker News new | ask | show | jobs
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.

2 comments

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.

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.

Why on Earth would this be better than just letting people copy APIs? Ignore whatever theoretical arguments: are you actually arguing in favor of a better world?
Yes, in my view people should not get to free ride on the labors of others. The ease of copying information belies the efforts required to produce quality information that is valuable, and so people think they have a right to freely copy whatever they can get. But there was a period in recent history when people thought this kind of thing was ok for physical labor, and the world largely agrees that was a bad time. I don't see why things should be any different for mental labor.