Ah that is a good point. It's an important difference between Android on one side and Harmony, GNUStep and Wine on the other side.
However I would put Linux together with Android then: Linux was similarly replicating Unix APIs for the convenience of compatibility with existing code, and explicitely not aiming for full interoperability.
Octave is another project with an approach similar to Android: trying to provide an open-source Matlab that is mostly compatible, for convenience and to increase the appeal of the platform to Matlab developers, but they are not interested in compatibility for its own sake[1].
Mono falls in the middle, as they are not only providing an alternative runtime for .NET applications, they're also interesting in expanding the platform with new APIs such as POSIX bindings and Gtk#.
[1] At least that was the case a few years ago. It might have changed lately. And this disinterest for full compatibily was partly due there being no "Matlab standard" to implement. See this post from 2000 by the Octave maintainer (https://lists.gnu.org/archive/html/help-octave/2000-12/msg00...):
I never intended Octave to be a Matlab clone, nor am I really
interested in creating such a thing, but that seems to be what many
users of Octave want. It is not very interesting to me to simply
reimplement all the features/bugs of Matlab.
I am finding it too constraining to try to maintain almost any level
of compatibility with a proprietary product for which there is no
standard. It stifles any creativity by the threat of future
incompatibility. I see this is as a real problem, not just an
imagined one.
Free software needs a vision beyond reimplementation of existing
proprietary tools. Those of us who are interested in free software
tools must become leaders rather than followers, and I am optimistic
that this can happen for numerical software. But I don't believe it
can happen if Octave continues down its current path.
However I would put Linux together with Android then: Linux was similarly replicating Unix APIs for the convenience of compatibility with existing code, and explicitely not aiming for full interoperability.
Octave is another project with an approach similar to Android: trying to provide an open-source Matlab that is mostly compatible, for convenience and to increase the appeal of the platform to Matlab developers, but they are not interested in compatibility for its own sake[1].
Mono falls in the middle, as they are not only providing an alternative runtime for .NET applications, they're also interesting in expanding the platform with new APIs such as POSIX bindings and Gtk#.
[1] At least that was the case a few years ago. It might have changed lately. And this disinterest for full compatibily was partly due there being no "Matlab standard" to implement. See this post from 2000 by the Octave maintainer (https://lists.gnu.org/archive/html/help-octave/2000-12/msg00...):
I never intended Octave to be a Matlab clone, nor am I really interested in creating such a thing, but that seems to be what many users of Octave want. It is not very interesting to me to simply reimplement all the features/bugs of Matlab.
I am finding it too constraining to try to maintain almost any level of compatibility with a proprietary product for which there is no standard. It stifles any creativity by the threat of future incompatibility. I see this is as a real problem, not just an imagined one.
Free software needs a vision beyond reimplementation of existing proprietary tools. Those of us who are interested in free software tools must become leaders rather than followers, and I am optimistic that this can happen for numerical software. But I don't believe it can happen if Octave continues down its current path.