C. I’ve been programming for over 30 years and it’s the only language to survive. Imagine if I was asked this question 30 years ago and picked perl or Pascal, I’d be screwed today.
Likely either C or C++, both languages have been around for a long time and both are still used in huge projects
Assembly, so I can shorten my lifetime quite a lot
Rust, easily.
Kotlin without a doubt.
Gives you more flexibility and freedom that most scripting languages. The syntax is clean and concise, the tooling is amazing and can compile to JVM, JS, Native and WASM.
I have used Kotlin a bit for a hobby project and it felt like they were 95% done with a 1.0 version. I love the promise of a single code base that can run on the JVM and browser, but it is not all there. Until recently, the API was not guaranteed to be stable. Every one in a while, I hit a feature that is JVM only or does work right in JavaScript. The JS compiler will “helpfully” remove uncalled public functions unless you explicitly mark them with JsExport.
Also, from what I can tell, only InteliJ is the only supported IDE (which makes sense, since they are the language developers). There is an official Eclipse Plugin, but the last time I tried it, it did not work and tried to take the entire IDE down with it.
Having said that, it was very close to complete and I have not worked on that project for a few months, so it could all be perfect now.
Kotlin jvm is extremely stable, not sure what issues you could be encountering there. The API has been guaranteed to be stable for years and years now. And sure, the other stuff has experimental functions, but they’re clearly marked.
Kotlin jvm is extremely stable
I don’t want to use Kotlin on (just) JVM. The reason I am working with Kotlin is Kotlin Multiplatform (so JVM and JavaScript). The JavaScript side is where all of my frustrations have come from.
Rust:
- It covers all bases, from embedded to backend to webdev to gamedev.
- I could create libraries with it, which can be called from other languages.
- It’s good.
JavaScript
DNA
Ideally I’d choose Rust because I enjoy working with it, but don’t have enough time to commit to it at the moment. But being Practical I’d probably say Java, its easy to get stuff going and has been around forever so it’s easy to find solutions etc.
I would be torn between Python and Rust.
The case for Python is that I’m already very experienced in it (nearly 20 years), there’s a good job market out there for it, and the ecosystem is one of the best in existence. It’s like a comfortable well made jacket, maybe a tad worn in some areas but very functional. And it’s not standing still, with a community that’s committed to constant improvement.
Rust is more fun. I like the way it’s been put together. It can also be used in more areas. There are some niches (wasm, low level, kernel) where Python just doesn’t work. It has been able to benefit from the years of mistakes from Python and other languages on things like how it handles Unicode strings. I don’t know it as well as Python, but I barely get a chance to work with it so that could change quickly in time.
Clojure. Simple language for complex things. It also has java interop and Javascript interop and c# interop. So I will be fine.
Rust, hands down.
C
Go or Rust
I’d probably pick something esoteric and then just stop programming, tbh. I enjoy being a polyglot programmer, and learning many languages and learning from many ecosystems is incredibly interesting to me, far more than hyper-specializing in a single language would be.