

What Android is - atularora
http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is

======
ajg1977
"game devs just don’t want to hear about virtual machines, so they use the
Android NDK. But game developers revel in pain."

No, we revel in portability and performance :)

Really good article though.

~~~
barrettcolin
Also, Java as a language is - unless I've missed something in my experience of
it - a very bad fit for interacting with the OpenGL API. In particular
specifying data in tightly packed or otherwise specifically arranged
(interleaved, in particular) forms is next to impossible to achieve without
making your code look like a dogs dinner (if you can do it at all). Much
easier to do in C, so that's another reason to go native on Android.

------
mahmud
Can we get more respect for "game" developers, please?

What Tim calls game developers are actually just systems programmers and
performance-conscious hackers, including people doing multimedia DSP apps
critical for making the platform a hit, along with traditional game
developers.

Tim, if you're reading this, can we please get some closure for 3434? Even
Mono has OpenTK. Just adopt more of the Khronos stuff and get out of the way.
Would be nice if you could beef up the CDD and demand just a bite more from
the telcos.

------
cpr
Given my Java hatred (perhaps irrational), and no real allegiance to iOS &
Cocoa Touch (other than it works very well, and has paid off somewhat for our
efforts), I wonder if it would make sense, long-term, to mount an OSS effort
to build a truly wonderful dynamic language environment as an alternative to
Dalvik?

E.g., something based on Javascript, with a fully dynamic remote IDE/editor
(along the lines of SLIME)?

I guess then you'd run into the problem that the whole Dalvik UI scheme is so
heavily intertwined with their Java-based toolkit (just as iOS is heavily
dependent on Obj-C) that there's no real gain in the end?

(Don't everyone hate me at once. ;-)

~~~
Tichy
Why not use HTML5+JavaScript? Remote IDE here: <http://www.cloud9ide.com/>

I wish somebody had already recreated the native widgets of Android/iOS in
HTML.

~~~
Xuzz
At least on iOS, recreating the "feel" of the scroll views is actually
impossible with reasonable performance (the CSS 2d transitions don't have the
correct interpolation options), so you can't make anything, at least there,
that "feels" native.

~~~
Tichy
So the browser doesn't scroll natively? Don't know the iOs scroll views...
Still, an approximation would be nice, it doesn't have to mimic every teeny
detail.

~~~
Xuzz
It does, but you can't scroll part of the page in the native way -- iOS users
are very accustomed to the kinetic scrolling, anything even slightly different
is enough to throw them off and make your app seem "weird".

------
nswanberg
This is the most useful short summary of Android's pieces I've read--it's part
summary and part correction.

The "How It’s Generated" section is interesting because Bray points out that
it's not important to Android how the native or Dalvik code is generated so
long as it uses the APIs. Currently it's most convenient to program in Java
but I wonder how long that will remain so.

~~~
roel_v
I wondered though how much of this recent change in emphasis is inspired by
recent, ehm, 'changes' in the Java landscape. I seem to remember that
Google/Android evangelists put much more emphasis on Java being _the_ language
to code for Android, and how the overall picture seemed to be much more Java-
centered back then (well only 2 or 3 years ago). Recently I see a bit of
'backpedaling' in that department.

I guess by now there's a team at Google working on a replacement for the Java
Android development environment, to be able to move away from what is now a
tainted platform, so it's all perfectly understandable, and I can understand
they need to phase in this transformation to not create shocks in the Android
ecosystem; but I still feel a bit manipulated, being talked to in a way that
both parties know is doublespeak but nobody being able to do anything about
it.

~~~
theBobMcCormick
There's absolutely _zero_ evidence for your assertion that Google is "moving
away" from Java for Android development. Java is _still_ the only official
route for creating Android app (I haven't looked at the NDK, but I am under
the impression it requires at least a little Java for glue code.. I could be
wrong there).

However, the _possibility_ for creating Android apps in other languages is
_not_ new. For example, the Android Scripting Environment(now called Scripting
Layer for Android) was announced on the Google Open Source blog back in June
2009 ([http://google-opensource.blogspot.com/2009/06/introducing-
an...](http://google-opensource.blogspot.com/2009/06/introducing-android-
scripting.html)), which is positively pre-historic for Android's rather short
history (for comparison, see the timeline here:
[http://en.wikipedia.org/wiki/Android_(operating_system)#Upda...](http://en.wikipedia.org/wiki/Android_\(operating_system\)#Update_history)).

There's nothing in Bray's post that would indicate anything other than a
continuation of the same public roadmap Android has had since at least v1.5
was released on the old G1 phones.

~~~
roel_v
No, of course there's no evidence, but Google would be stupid no to be
preparing for a backup route, and if there's one thing that Google isn't, it's
stupid.

And yes, of course there always was the possibility that other languages would
target Dalvik, but it was never mentioned as something Google would do, or as
something that Google would consider beneficial to anyone. That tone is
changing as of late I feel. That's what I meant - I feel that recent public
talks about Android from prominent Google evangelists is slowly preparing the
Android world for a gradual change. Not that they'll drop Java like a hot
potato next year - that'd be infanticide. It's just that the initial message
of 'Java all the way for all things Android' (which was meant to provide
developers reassurance that they wouldn't have to work with a myriad of
libraries in all sorts of languages, leading to a fragmented landscape on the
development side) is not said as loudly any more.

Then again, maybe that was the plan all the way, to provide a broader
development environment once the developer base and tools were broad and
mature enough. I mean, what do I know, right.

~~~
nswanberg
I think you're right. It seems odd that Bray would emphasize the code
generation point apropos of nothing. It'd be as if he decided now would be a
good time to point out that Android devices are in fact Turing-complete and
that the language used to program for them is not an innate part of their
nature.

It could be that he is just making an observation. But I read it as a hint of
things to come or possibly a gentle suggestion for others to follow. I think
it would be interesting to use Google's Go for the native work, for example.

------
codeape
Questions:

* Is it possible to use the Android as a Linux development platform?

* Can I compile POSIX sources on the Android?

* For instance, can I download bash, Vim and Python tarballs to an Android device and build?

~~~
theBobMcCormick
Apparently there _is_ a port of Vim to Android:
[http://credentiality2.blogspot.com/2010/08/native-vim-for-
an...](http://credentiality2.blogspot.com/2010/08/native-vim-for-android.html)

Keep in mind though that Android _isn't_ intended to be a Linux distro or even
a Posix'ish OS. It's closer to something like DD-WRT. It is it's own, non-unix
embedded OS that just happens to use the Linux kernel as it's base (because
really, where's the value in writing your own kernel these days?)

------
tocomment
What should I take away from this?

~~~
angusgr
I don't know about you personally, but I've seen a lot of people confused
about exactly this - "what Android is": its architecture, what's its
relationship to Linux is, its relationship to Java, its relationship to open
source & GPL, etc.

This seems to lay a lot of that out fairly cleanly and simply.

~~~
theBobMcCormick
Very true. There are a lot of discussions, blog posts, etc. online where
people seem to think that Android either is a Linux distribution of some sort,
or that it's a Java JVM (like J2SE, etc). In reality it's neither.

------
samstokes
I skimmed to the bottom and read this:

"But game developers revel in pain.

And that’s what Android is."

~~~
martythemaniak
Ah yes, the Gruber-style humour - snarky, idiotic and completely devoid of any
value. No wonder people are leaving HN.

~~~
dschobel
Whoa, a recursive comment. Very cool.

