6 ms·
I've made this comment before. I'm wondering if there are plans to replace Java with Dart or Go on the Android platform. This because of the continuing threat o
by Yuioup 11y ago
I've made this comment before. I'm wondering if there are plans to replace Java with Dart or Go on the Android platform. This because of the continuing threat of lawsuits from Oracle.
It's probably impossible to replace Dalvik because you need the bytcode but maybe replacing the language might shield Google from Oracle.
- _pmf_ 11y ago> I'm wondering if there are plans to replace Java with Dart or Go on the Android platform. There are very few languages choices where I prefer to keep using Java. Go and Dart are two of these. I'm a dedicated Apple skeptic, but Swift is nicer than both of these trainwrecks. If what the article claims is true (that Dart can be used to target µCs), which I highly doubt, it might become interesting for me. My doubts arise from the fact that the standard library for a language makes some opinionated design choices, and in my opinion it's impossible to make an idiomatic library that works the same (and is usable!) in a GC context (existing deployment) and a non-GC context (embedded). It's sad that of the dynamic languages, Python and Ruby are performance deadends, and LuaJIT is too obscure for most people.
- kelseydh 11y agoElixir (and the Phoenix web framework) is getting a lot of attention these days from Rubyists who are looking for something that speaks their language that is also fast in realtime distributed environments.
- rdtsc 11y ago+1 for Elixir and Erlang VM.
- coldtea 11y ago>My doubts arise from the fact that the standard library for a language makes some opinionated design choices, and in my opinion it's impossible to make an idiomatic library that works the same (and is usable!) in a GC context (existing deployment) and a non-GC context (embedded). What microcontrollers you have in mind? He mentioned Arduino in the post. It's not like we need Dart for extremely low spec-ed mCs, and we could run GC just fine in higher level mCs for ages...
- _pmf_ 11y ago> What microcontrollers you have in mind? He mentioned Arduino in the post. It's not like we need Dart for extremely low spec-ed mCs The article mentions the Arduino, which in its original incarnation is an extremely tiny AVR. Maybe the author has a more powerful Arduino variant in mind, but I'm pretty sure you cannot run a GC runtime on the AVR Arduino. The only language that runs on such tiny devices is probably eLua. > , and we could run GC just fine in higher level mCs for ages... Yes, RPi/BBB won't have a problem.
- xxgreg 11y ago> What microcontrollers STM32F7 * high-performance MCU with ARM Cortex-M7 core * 32-bit ARM CPU @ 216 MHz * 320 KB of RAM * 512-1024 KB of Flash * Single precision FPU and no fancy MMU https://github.com/dart-lang/fletch https://github.com/dart-lang/fletch https://www.youtube.com/watch?v=Hx2iGEAvZRk https://www.youtube.com/watch?v=Hx2iGEAvZRk http://gotocon.com/dl/goto-cph-2015/slides/KasperLund_InternetOfProgrammableThings.pdf http://gotocon.com/dl/goto-cph-2015/slides/KasperLund_Intern... Edit: Sounds like they plan to support the Arduino Due, but this is not implemented yet. They do not intend to support 8bit or 16bit MCUs.
- danieldk 11y agoThey'd still need to ship the class library (with 'infringing' API copyrights) for many years for backwards compatibility. Their current strategy of replacing Apache Harmony classes with OpenJDK seems like a good shot to get rid of Oracle's claims for future versions. My guess is that they'll wait and see how that move pans out first.
- on_and_off 11y agoThe Dart & Go teams have projects to target Android but AFAIK these are independent projects with no relation with the Android team. Dalvik -> it is already replaced by ART, but it is still a VM (for ART the bytecode is compiled AOT though). AFAIK, there is no public plan to replace java, neither are there any public commit on AOSP indicating a move in that direction. Many Android devs are following Kotlin very closely (it is a boon for Android app development) but again there is no known plan from the Android frameworks team to switch to it.
- V-2 11y agoWhich is a pity. With Google's backing (and they already collaborate with JetBrains, as Android Studio is forked IntelliJ Idea) Kotlin could really grow.
- on_and_off 11y agoit is :( . I hope that Google will reconsider. Being stuck with Java 6.5 is more and more of an issue. You can use ThreeTenABP, Retrolambda and some other libs to get past some of the languages limitations but that's far from ideal. Even if Google switches to OpenJdk 8 (or even 9 or 10), if the adoption times stay consistent, we will have to wait 3 years before being able to use their new features in mature apps. I do hope that either the android team is working on a new language (along with a framework revamp) or will reconsider its position on Kotlin and starts adopting it.
- izacus 11y agoWhy do you expect any other language would have a lower adoption time? Kotlin has to pay the same performance penalties RetroLambda and others do until the device runtime itself is updated.
- on_and_off 11y agobecause kotlin can target devices already in the wild (albeit with a perf cost indeed) whereas languages features added by a new jdk will only be useable with terminals sporting a new version of Android. Just like right now most of us can't use try with resources.
- pornel 11y agoIt would be fantastic if Swift was adopted as the language for Android. It's a very well-designed language (with non-nullable types and immutability!). It's now open-source, and development model is even more open than Android's throw-over-the-wall. Swift's type inference and ARC makes it feel very script-like, but it supports AOT compilation and tighter control over memory usage. While Cocoa won't be available on Android, having a single language that's usable on iOS, Android and server-side would be great for reusing as much as possible.
- V-2 11y agoAndroid already has Kotlin. It's kind of similar to Swift. You're quoting non-nullable types, immutability, open-source, well it has it all.
- voider1 11y agoHow well does Kotlin perform on Android? Can you use all the native stuff? Are there some successful apps written in Kotlin?
- V-2 11y agoYeah you've got full interop with Java. There is some overhead in terms of executable size, but not significant. As for commercial apps written in Kotlin, I have no way of knowing, but there's a lot of open-source projects. It wasn't long ago that Kotlin reached 1.0, and prior to that I would myself err on the safe side not recommending it for production yet. It's been improving very fast though.
- pjmlp 11y agoThe Android team has publicly stated that only Java matters on Android and the NDK is only a means for games and code from other platforms. Anything else isn't related to Android's roadmap, at least from their public statements.
- _pmf_ 11y ago> The Android team has publicly stated that only Java matters on Android and the NDK is only a means for games and code from other platforms. The NDK isn't going anywhere, of course, and the recent switch from a GCC based toolchain to a LLVM based toolchain is an indicator that a lot of things are going on in native land.
- pjmlp 11y agoI don't mean it is going away. What I mean is this attitude: "The NDK is not appropriate for most novice Android programmers, and has little value for many types of Android apps." "Squeeze extra performance out of a device for computationally intensive applications like games or physics simulations." "Reuse your own or other developers' C or C++ libraries." Versus the Windows Phone and iOS that allow full use of the OS APIs via their Objective-C++ and C++/CX, instead of a thin set of libraries + JNI boilerplate. Then we have the way the whole Eclipse CDT -> Android Studio process has been handled and Gradle still cannot handle the majority of ndk builds.
- pron 11y agoNow that Google has decided to comply with the OpenJDK license (as they should have done years ago, IMO), this should not be a problem. They will now be using a license officially granted to them (and anyone else) by Oracle, a completely free license, with no restrictions (Oracle are prohibited to place further restrictions by their own license).