|
Authored by: Anonymous on Thursday, April 19 2012 @ 11:46 PM EDT |
I should add that, for performance reasons, sometimes the APIs might be written
in another language entirely (such as C++) and shipped as libraries containing
directly executable machine code.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, April 20 2012 @ 12:27 AM EDT |
As far as I know, only the API source code can be subject to
copyright. I can't imagine that the API libraries output from the Java compiler
can also be subject.
Binaries of computer programs are indeed
subject to copyright. When the (aspiring) copyright holder registers the binary
with the Copyright Office, he asserts in writing that it contains copyrightable
authorship. The Copyright Office takes it on faith ("rule of doubt") that such
copyrightable content is present (and leaves proof to be handled during
litigation, if necessary) and if the source code qualifies for copyright
protection then so does the corresponding object code.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, April 20 2012 @ 01:11 AM EDT |
Yes and no. An API is a collection of contract descriptions.
The function Swap takes two objects o1 and o2 and swaps
their values such that o1 possesses the original value of o2
and o2 possesses the original value of o1
void Swap(byref object o1, byref object o2);
Function Swap(o1, o2 : Object);
function Swap(o1, o2);
All four of these are APIs, including the plain english
text. The API tells you what data is needed, what process
occurs, and what the results are.
I can implement an API
public void Swap(byref object o1, byref object o2)
{
object temp = o1;
o1 = o2;
o2 = temp;
}
and I can also call an API
public void DoSomeSwapping()
{
object dataobject1 = new object {};
object dataobject2 = new object {};
Swap(dataobject1, dataobject2);
}
By by itself an API is nothing more than a collection of
contract definitions that tell me how to do something should
I want to do it.
[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, April 20 2012 @ 03:50 AM EDT |
You're talking about an implementation of the API, which of course contains all
the stuff necessary to provide the things offered by the API. The API itself is
purely abstract. It's nothing more than how you structure your communications
between different programs or parts thereof. The API provides a list of
services and directions for how a program can get those services. In that way,
you know to feed the averaging function a list of numbers and that you expect to
get one number, the average, back. Obviously, the implementation provides the
code that actually does all that for you.
The classes and other stuff come in because some things are compound. You can
combine different types of data and methods that operate on that data into
something called a class. So if you have a Window object that represents a
program's window, it might contain a function called Draw() that would draw it
on the screen as well as data containing where it's located on the screen, etc.
And you can feed particular instances of a class that have been filled with data
to other functions to make them do things and even compose classes out of other
classes. So you might make a program's Window out of a bunch of widgets like
Buttons and ListBoxes and TextAreas and whatever else that each contain their
own functions and allow people to click on them or type things into them.
Honestly, though? If anyone wants to know what an API is, they're best off just
learning to program a little. All these things are hard to reason about until
you see them in action.[ Reply to This | Parent | # ]
|
- That's an implementation of an API, actually... - Authored by: PJ on Friday, April 20 2012 @ 10:26 AM EDT
- That's an implementation of an API, actually... - Authored by: Anonymous on Friday, April 20 2012 @ 12:11 PM EDT
- That's an implementation of an API, actually... - Authored by: rcsteiner on Friday, April 20 2012 @ 05:30 PM EDT
- That's an implementation of an API, actually... - Authored by: Anonymous on Saturday, April 21 2012 @ 02:40 AM EDT
- That's an implementation of an API, actually... - Authored by: rhdunn on Saturday, April 21 2012 @ 06:53 AM EDT
- That's an implementation of an API, actually... - Authored by: Anonymous on Saturday, April 21 2012 @ 08:48 PM EDT
|
Authored by: Anonymous on Friday, April 20 2012 @ 05:40 AM EDT |
If you want a nice, simple way to understand what APIs are, learn C++.
Header files (except for the private sections, and the source for inline
function definitions) are the API.
The rest of the headers, in addition to the source files, are the
implementation.
Simple.[ Reply to This | Parent | # ]
|
|
Authored by: Steve Martin on Friday, April 20 2012 @ 06:57 AM EDT |
I can't imagine that the API libraries output from the Java
compiler can also be subject.
If the binary versions of
API libraries output from the compiler are not subject to copyright, then how
are binaries output from a C compiler and the ld linker subject to copyright?
IANAL, but I'd say they'd have to be. Otherwise, the provisions in the GPL
regarding distribution of binary code would be meaningless (and, as a side
argument, no commercially-distributed binaries such as Windows or Office would
be protected under copyright law).
--- "When I say something, I put my
name next to it." -- Isaac Jaffe, "Sports Night" [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, April 20 2012 @ 09:34 AM EDT |
An "API" is just a fancy new name for the list of functions contained
in a subroutine library. Microsoft programmers started calling the description
of a subroutine library an "API" to make it sound like something
magical that Microsoft had invented. Its just technobabble.[ Reply to This | Parent | # ]
|
|
Authored by: Ian Al on Friday, April 20 2012 @ 10:07 AM EDT |
Both Microsoft and the GPL depend on that. I have always been a little anxious
because the obvious first point of call for creative expression in source code
is the comments. They might get autodoc-ed into a document of prose, but they
are not used to derive the binaries.
rangeCheck clearly has no creative expression. However, larger works like the
Linux kernel and BusyBox, do. However, how the lawyers actually do the
abstraction, filtration and the other thing (comparison?) to get at the
protectable creative expression is a mystery to me.
---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid![ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, April 20 2012 @ 10:12 AM EDT |
An Application Programming Interface (API) has to be in 'source code' i.e. human
readable language, because it has to be read by the programmer (presumed to be
human).
Before you say API, you have to say 'Library', because all an API is, is a
description of how to use the things contained in a Library.
THATS WHAT THE WORD >interface< MEANS.
Think of a Library as a tool box.
A math tool box could have a Add tool, a SqrRt tool, a Power tool etc.
All the API for that tool box is, is a list of the names of the tools in the
box, what input you have to give to the tool, and what output you will get from
the tool.
The API for an Add tool in a Math tool box could be
PROCEDURE Add(
InputA: INTEGER,
InputB: INTEGER) :
(*Output *) INTEGER;
The Library that contains the actual Add function may be distributed as binary,
but the >INTERFACE< has to be readable by people.
PS: I have yet to see any understandable explanation of what an 'API
Specification' is. Logically it should be a description of what a Application
Programming Interface is. But how is that different from the programming
language's syntax description, which, in theory, completely describes the
calling convention (the interface) for procedures in the library.
Not a programmer either
JG
[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Saturday, April 21 2012 @ 01:30 AM EDT |
API's, it seems to me are colors, red, blue, green, intermixed and with varying
shades of dark and light - placed carefully on artist's palate. A mobile brush
dips delicately into Sun yellow and Oracle blue to create Android green. The
programmer then places their chosen hue on an algorithm sketch and with each
brush stroke hopes to create a masterpiece. Open colors cannot be owned, are
free in Harmony and there is never any stolen gold at rainbows end.
from under the bridge
stage_v[ Reply to This | Parent | # ]
|
|
|
|
|