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.
That's not true -- PyPy had an experimental JVM backend early-in, but the first and flagship backend has always been the RPython one.
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?
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.
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.
Jailbroken iPhones have had this capability for years...not to say iOS is better, just that I'd expected this would happen...sooner?
That said, the Python distro on iOS is only 2.6-ish, not even 2.7, and there's no 3.x release there. It's not very useful but I guess I did use it a lot for learning back then.
Kivy for Android has been around awhile as well.
It remains to be seen if we can adopt a concurrent model for some aspects of the main application thread(s). Going concurrent almost surely means more Cython and more speed. I'm interested if anyone has any ideas about using CPython to reduce the cost of certain nearly-always-performed functions to grease the event system. Not that it's slow, but fast is always better =)
Honestly, I have no idea. But I'm aware that there are multiple efforts to bring "sane" languages (such as C#, by Xamarin) to Android, others than Java.
> Jailbroken iPhones have had this capability for years
I had no idea about this one, but I don't follow iOS development either.
> I'd expected this would happen...sooner?
I agree with you, but I believe this sort of thing should be backed by Apple (iOS) or Google (Android) themselves.
[EDIT]: formatting
On the other hand, if Google or Apple backed a high-level scripting language like Python, that could also lead to security concerns, but I would feel safer with that than something like C on my mobile device.
As have non-jailbroken ones. I have Python for iOS and Pythonista (my preferred favorite) from the App Store. Python for iOS even comes in a 3.2 flavor.
In fact, you don't even need a Java decompiler to do this. All you need is a backwords Java compiler. That is, one that treats bytecode as a source languages and compiles down to Java. This is a much easier process because (ignoring things like Enums) you don't need to try and figure out what the original code is, and instead can just do a naive decompile with optimization passes.
I'm interested in creating daemons that, for example, forwards SMSes to my email and records made voice calls. Is API good enough to do that?
Another options for this kind of app is SL4A. They have a very complete Android API, but it's a bit harder to hack and not as well documented.
If you want to package an APK, I think this project (Kivy's Python for Android) is probably a slightly better option. You can package APKs with SL4A, but it's a bit trickier. Python for Android even provides a virtual box image of Ubuntu (or Debian, I don't remember) for building APKs, with all the dependencies included, ready to go.
I've never used it to build big apps, only toyed around with examples, but then again, it wasn't made for the big applications, rather for small ad-hoc scripts.
Kind of Eclipse plugins vs Emacs scripts.