Nowadays JS is widely used and preferred over many languages. JS can built apps that can work on both web and phone, so can this be a reason that, IN future JS or python will take over android ?? Joe Clark Jan Vladimir Mostert
Python doesn't feature anywhere for Android Dev, your options are Java, Kotlin and C++. Kotlin is meant to replace Java on Android in the same way that Swift is replacing Objective C on IOS, it's a really nice language.
Things like Phonegap, Flutter, Xamerin, React will give you a native-like feel, but never the same kind of performance. Then you also get containers where you run your code on top of a container that interfaces native android code.
Kotlin makes writing native Android apps much easier and cleaner, so for native Android dev, Kotlin is definitely the future. For non-native, React Native is very nice, but it's hard to pick just one solution out there that's a clear winner.
I've seen someone mention Kivy for Python (kivy.org), I've not used it myself, but unless Google gives it the green light and backing, it will remain an outsider for Android dev.
While I'm a big fan of being able to write mobile applications in JS, the reality is that it still has to be transpiled into Java and compiled into native code. At least that's my understanding, which I'll admit may be out of date... I haven't done this in a while. I don't really see JS taking over, though it would be nice if Google would let JS apps run natively, especially since they have their own fast JS engine. To my knowledge, this isn't supported quite yet.
As for Python, it's fine for a back-end, but as others mentioned, doesn't do anything on the device itself. There are a couple of solutions out there that let you do Python development for Android, such as Kivy, but since Android doesn't include a Python interpreter, you'd have to bundle one with your app, and that will both inflate the size of your app and slow it down.
Joe Clark
Full-stack developer specializing in healthcare IT
While I don't see Python in the picture at all, I think, web-tech really is the way to go cross-platform at the moment. Especially all the additions, like WebGL, make it versatile and usable for all kinds of applications.
However, web-tech has at least two fatal flaws. It is slooooooowwwww. In addition to that, especially in older versions of webviews, a lot of the app APIs do not exist, so JS has no access to certain features. Those two combined might, depending on your app, make usage impossible, so Java and Kotlin are still the way to go if you want to have an awesome app with good performance, low battery drain and everything the Android API has to offer.
In the future, I see another language, which might fight for its place in the world of cross-platform development, but which, in contrast to web-tech, can deliver high performance and low battery drain, while still having access to all of the Android APIs and more! The language I am talking about is Rust. Rust already is very cross-platform and has tier-2 support for Android. It uses the NDK internally, and compiles to very fast and optimized machine code, leveraging the power of LLVM, which is a proven, battle-tested compiler suite most famous for the Clang compiler. That means, there is no VM or single-threaded logic in between. Today, we have phones with many CPU cores, so Rust can go wild.
But what about WASM? Well, let's forget about the fact that you would have to use Rust (or C/C++) either way for a moment. Not even WASM can live up to that, because WASM also is still in a managed VM environment and has the problem of having to rely on Web APIs. To be honest, if you write your code in Rust either way, why not go native? The only reason I could think of is the power of HTML and CSS, and the lack of a good GUI library in Rust. However, I am pretty sure, that something like that will emerge one day. We are talking about the future, after all :)