this post was submitted on 19 Jan 2021
11 points (78.9% liked)

Rust Programming

8847 readers
8 users here now

founded 6 years ago
MODERATORS
 

Apologies if this question isn't really appropriate for this community, but Rust and Kotlin are my two favorite programming languages, and currently, I use both for different projects. However, I'm curious as to if people here think Kotlin still has a place when Rust exists? I'm specifically speaking architecturally: disregarding existing legacy code or support, do you think in the future, the Rust platform should replace the Kotlin platforms (JVM, LLVM Native, Android, Web) for everything Kotlin can do, or do you think Kotlin can do some things better than Rust?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 18 points 4 years ago (5 children)

I'm more experienced with java, but have used kotlin a bit too. The JVM languages are extremely versatile and capable of doing anything, but kotlin is probably the best of them in terms of syntax.

That said, after dealing with java's garbage collector, I don't think garbage-collected languages have a place in the future. Rust showed me that despite claims of garbage collected languages being easier, simple scoping and borrowing don't really add any complication, and are better in terms of memory in the long run, and a better choice for pretty much every type of application.

But practically of course browsers aren't going anywhere (so we'll still need to learn javascript / typescript), and neither is android (so we'll still need to learn a jvm language). I'll still use kotlin, but only for android. Rust already has functioning web servers, UI toolkits, CLI toolkits, and everything you need for desktop or server apps.

[–] [email protected] 10 points 2 years ago* (last edited 2 years ago) (2 children)

Circular references and objects shared by multiple scopes (e.g. a lambda that uses the value of an UI element) are still quite annoying to work with and require a lot of boilerplate code because it requires wrapping it with a Rc and RefCell. None of this requires any additional effort when using a GC language like Kotlin or C#.

I have used Rust to write GTK applications but it wasn’t pretty and I ended up using GTKSharp in the end.

[–] [email protected] 3 points 2 years ago

True, but I also find that when you are dealing with circular reference and shared object scopes a bit of extra syntax and wrapping is the least of your problems.

In this case the garbage collector handles the memory for you, but for every other complication arising from these patterns you are still on your own. Keeping track of updates, locks, non-memory resource.

load more comments (1 replies)
load more comments (3 replies)