Java also allowed them to leverage a mature and highly optimized frontend. Back in 2008, Psyco/PyPy was there... but fairly wet. Until recently(?) the primary JIT back-end for PyPy was, in fact, still the JVM.
This sounds false. The PyPy Features page does mention that PyPy will run on the JVM, but that it is incomplete there, and in particular they don't have their JIT ported to it yet. Do you have any source on that?
As someone developing on Android, I so wish that Google had opted for native code on Android, and a native toolchain SDK, which would have allowed people to use almost whatever language they wanted: C, C++, Python, Lua, Ruby, etc. If that had been the case, I suspect most people would opt to use C or C++ for the backend, and code the frontend GUI in Python, Lua, or Ruby.
And yes, you can use the NDK now, but everything visual has to pass through Java.
100X this. Android's platform APIs are now trapped in Javaland. That is just totally inexcusable.
I sort of imagine the decision to use Java was a conservative one. "No one gets fired for choosing Java". But they forgot the memo that Java is for applications, not systems programming.
Microsoft seemed to be going down the same road some years ago with .Net, only to back out and realize the same thing. Now it's back on C++.
That's not true -- PyPy had an experimental JVM backend early-in, but the first and flagship backend has always been the RPython one.
I thought RPython was only translated to C and compiled ahead-of-time.
Moreover it wasn't just that he answered but also how he answered. One could tell he was upset by it, you could hear it in his voice.
Source: http://www.youtube.com/watch?feature=player_detailpage&v=A5O...
http://www.youtube.com/watch?feature=player_detailpage&v=A5O...
As a python-aficionado, I stopped kidding myself a few years ago: Python will never be mainstream in the way Java or C# are, the number of people working with it will always be small, unless something dramatic happens at the commercial level. It's like Linux on the desktop: the masses are simply elsewhere.
https://us.pycon.org/2013/schedule/presentation/155/
http://careers.bankofamerica.com/JobDetails.aspx?SearchPage=...
I can imagine how slow Python on ARM Android is.... and people complain about Java code being slow on Android... I would put money on JS/V8 being faster than Python on Android too.
The following comparison is JVM vs Python, so its really pretty far off the scenario we are discussing, but consider it shows almost up to two orders of magnitude difference..
http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t...
http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t...
You can already use all of these on Android, but any kind of visual programming is a pain in the ass since you have to do Java interop, and start-up is slow because of the apk unpackaging requirements.
It's Go & PHP that are in "Experimental" mode. (per https://developers.google.com/appengine/)
I guess because Python is not statically typed. Most of the efforts they have been supporting (golang, dartlang...) are evidence of they prefer to have Static type-checking around.
But for the future? Yeah, I can only hope Google is working on switching Android to Go in a few years. It doesn't even have to be an abrupt change - which definitely won't be - they're not insane. But they can add the language in the NDK or something, and then just promote it to developers as the main language they should be using when making new Android apps.
It is true, of course, that they chose Java as the default language for Android development. I imagine this is because dynamic languages were not always practical on early smartphone hardware, and because there was already a large ecosystem around Java from which they could draw.
You can't have backwards compatibility and your progressive "keep language simple and clean by dropping features" at the same time.