top | item 38187676

Why Kotlin Multiplatform Won't Succeed

4 points| rvanrooy | 2 years ago |donnfelker.com | reply

9 comments

order
[+] cyberbeni|2 years ago|reply
We had a C++ framework for the 2 mobile+3 desktop platforms at my previous workplace with about 8 people working on it and on average 1 person per platform for the UI.

Based on that, I don't think it's a good idea to try to go cross-platform for the business logic if you only have 2 platforms with less than 4 devs each. It's also not a good idea to pay mobile dev salary for mobile dev quality business logic code, C++/Rust/etc. will get you better code per money spent. Not to mention the possible issues that could arise with using niche tooling, like the KMP compiler.

[+] valianteffort|2 years ago|reply
I don't really understand the point of kotlin. Why did google bother to introduce a new language that still relies on the java VM? Why didn't they just rewrite their standard libraries in C++, and build kotlin on top of that?

Do google even care about android or is it such an absurdly low revenue division that they try to spend as little as possible on it?

[+] palata|2 years ago|reply
> Why did google bother to introduce a new language that still relies on the java VM?

Kotlin was not created by Google, but JetBrains. Also there are many other JVM languages (e.g. Scala). People write new languages for many reasons, and that's probably why we are not stuck with assembly (or even binary?).

> Why didn't they just rewrite their standard libraries in C++, and build kotlin on top of that?

Not sure I understand that. You mean that the Android SDK should be using C++ at the core, and expose a Kotlin API? The user would not see a difference, and I would guess that some parts at the lower level are written in C/C++ (or even Rust nowadays).

> Do google even care about android or is it such an absurdly low revenue division that they try to spend as little as possible on it?

What would you suggest as a better design? It seems to me that you just don't like the JVM (maybe because you read somewhere that the JVM is bad and accepted it like this?) and just complain about it. Or do you have real criticism about the JVM? And since you seem to be targeting Android, do you know that Android is not actually running the JVM?

[+] mrudolph22|2 years ago|reply
Katlin isn’t developed by Google but by JetBrains. It is a multi-platform language and isn’t tied to the JVM.
[+] palata|2 years ago|reply
That read to me like a veeeeery long complaint about... not sure what. The TL;DR is: "Kotlin Multiplatform will not replace everything everywhere, because nothing does". Apparently that counts as "not succeeding" to the author.

My hope is that JVM languages will come back for Desktop apps. And if some code/libraries can be shared between e.g. Android and Desktop, then that's a win.

[+] coldtea|2 years ago|reply
>But … KMP will fail to reach mass adoption because of human nature. People resist change and anything that is unfamiliar to them.

Yeah, it's not that. That is just a big hand waving argument, which one could say for anything, including stuff that will get mass adoption.

"Humans will never use C/C++/Python/Java/C#/JS/... because something something human nature. People resist change and anything that is unfamiliar to them."

The reason is KMP is just one offering among many others in the multiplatform "shared code/UI" space.

Kotlin is already niche anyway (despite being a good language), if the bar is about it "gaining mass adoption" in any grand way (comparable to Java for example).

If we mean mass adoption in a less grandiose way, Kotlin is doing alright, as do other new languages (Rust and Go for example).

>You lost 90% of them right there. They nearly all want to run for the hills. Java and the JVM have a great reputation in JVM circles (Java, Kotlin, Groovy, Scala, etc) but outside of that world people run as far away as they can from Java. It’s sad, but true. I’ve seen it multiple times in the last 20+ years of software development and I still see it to this day.

Yeah, not everybody is going to use Java. Not because "human nature", but because there are other options out there, people have investments in code/skills/time/libraries and so on, or prefer other languages.

One could just say the same argument about you not using Haskell for example, or C#, or whatever.

>We’ve been down the multiplatform road a number of times and it’s never become the panacea of development that proponents of each technological revolution claim it will be. All for the same reason I explained above … human nature.

Nope, the reason is all multiplatform offerings are crap, and have issues. Java never had a good native UI story. QT had its licensing baggage. C# was mostly a Windows thing, and Mono wasn't that encouraging. Electron is bloated. Flutter had a lot of bugs, and the language is changing a lot with each release. And so on.

>Not once has one of these platforms has taken the software world by storm. The one that has gotten the most traction is JavaScript, but it still has not taken over the world.

Like what, everybody using that and only that?

This is not "human nature" preventing it, but Javascript being good for particular things and not others, plus huge costs of migration where it could perhaps be a match (including rewriting existing code that works just fine with some other language, retraining costs in time and money, recreating libs that exist and do particular things in the other language's ecosystem, and so on).

>I’ve been saying for a long time now that we need to use the right tool for the right job.

Strange, for the most part TFA has been lamenting how not everybody rushed to adopt one single language or another, and how "bad human nature" prevents this.

[+] palata|2 years ago|reply
> Kotlin is already niche anyway

If "most Android apps" counts as niche, yes. Still, that's a pretty big niche IMO.