It's true that a blueprint acts as an interface between design and construction
but this doesn't make it like an API, not by a long shot.
If you give the
same blueprint to different constructions companies, you will get the same house
built. Sure, the construction quality may vary but the houses that are built
will be the same (like in the song Little Boxes). OTOH, if you give
different design teams the same API to implement, even though the
functionality will be the same, the implementation code (for non-trivial
functions) will vary greatly. That's why Oracle is not suing Google over their
implementation of the Java APIs. Even though the functionality is identical,
the implementation is not similar enough to rise to the level of copyright
infringement. It's not even close.
PJ's new article is about the
president's attempt to get rid of the intellectual monopoly of functionality in
patents, particularly in software patents. Yet here we have Oracle trying to
flim-flam their way into gaining an intellectual monopoly on functionality by
copyrighting APIs. Much of PJ's new article pertains directly to what you are
talking about bugstomper: the evils of an intellectual monopoly on
functionality.
If we want to make an analogy between APIs and the business
of architecture and construction then a much better analogy would be that an API
is like a detailed specification of what a building must do without
saying exactly how to fulfill that specification. Different architects will
come up with vastly different blueprints to fulfill the same functional
specification. A blueprint OTOH tells you in excruciating detail where every
little piece is supposed to go. Or, to go in the other direction, a blueprint
is far more than an API. It's at least like detailed pseudo-code telling you
how to write the actually code. If you give the same pseudo-code to different
developers and they are working in the same language then the code they come up
with will be very similar, just like those little boxes on the hillside.
To
put it more bluntly, if you gave people in a white room pseudo-code derived from
an implementation of an API that you want to clone then I think (IANAL) you
would still be liable for copyright infringement. OTOH, for the last 30 years
or so, ever since the BIOS wars, it has been accepted by the software industry
that if you give engineers in a white room just the detailed specification of an
API without any pseudo-code then you will not be liable for copyright
infringement. In fact, this is the whole point of white room reverse
engineering.
--- Our job is to remind ourselves that there are
more contexts
than the one we’re in now — the one that we think is reality.
-- Alan Kay [ Reply to This | Parent | # ]
|