"If they're not verbatim then they don't work" but
only
if the code
is meant to work identically to Java
(ie a clone).
Google
could have chosen different different
packages, different method names,
and different arguments
(in number, class and name) and return value types.
They
could have chosen a different way to allocate methods
across
packages.
Google could have had a totally different look to the
APIs
and still retained the syntax of the Java language. OK,
the JLS does indeed
place a limit on a very few classes &
methods (66, wasn't it) - but G could
have made an ALS, and
defined their own restrictions.
All-in-all, you can't
get away from the fact that Google
made the choices they did because they
wanted the Android
programming environment to be as close to a Java programming
environment as they possibly could make it. They didn't have
to, but they
chose to.
If they had chosen to make their API's independently,
then
this "Android" language would have looked like
Java notionally, but
would not been so intuitively
accessible to existing Java programmers, using
their (our)
geeky memories to just know what the API methods
were. This
would have split the Java world if Android had
taken off subsequently - the
kind of split Sun say they
fought to avoid, and may have fought to avoid here
too.
But would Android have taken off with a language that was
Java in
syntax only?
As a Java programmer myself, coming from the C world before
that (with only a fleeting glance at C++), I believe
Schwartz's answers in
this - that the API was key to take-up
of the language, and key to they
usefulness of Java, but
inherently impossible to protect. The same points were
true
of C.
A lot of the supposedly "difficult thinking" behind the APIs
(to me) wasn't exclusive to Sun & Java - Java was merely the
pinnacle of
development work that went into both C and C++
and probably many other
object-oriented languages and
toolkits.
I semi-agree with Gosling that
Google slimed Sun over the
API, but you have to admit that they put a lot of
manpower
into it. Failure to licence the code from Sun meant they had
to do
their own full implementation of *whatever* API was
chosen - and that resulted
in the investment of a lot of
time & money.
But while I think Google
could have acted better, I do
actually believe that Google did the right thing
- that they
stuck to the APIs but with their own implementation. It
feels
right that the law should allow the APIs to be a
"compatability" item and
allowed through the copyright laws
- and would class as unproctectable,
functional *and* de-
minimis.
Overall, it seems that turning a computer
language into a
successful worldwide phenomenon is a hard task, and not
necessarily commercially viable. Getting volumes of
programmers really
requires you to either open everything up
with limit-free licencing (like C or
Java) - especially into
educational arenas - or by already having a near
monopoly on
a whole branch of computers (like M$ and the desktop). [ Reply to This | Parent | # ]
|