Did you already work with any another programming language (are you beginner)? And which problems do you want to solve? Without answering these questions, there's no chance that you get a helpful answer.
Sorry for the late reply. My work has been mostly business applications and web site backend stuff, and I am happy to continue doing it. But I also like to learn native mobile app development (bothe iOS and Android) to expand my skillset.
If you want to go mobile, then golang is obviously out. If you choose between iOS and Android, then I suggest to start with iOS first. It's much easier to learn because it's not fragmented and thus results in a simpler platform API. This said, go with Swift for iOS. It's great and also very similar to Kotlin. I have programmed years with both besides many other languages. I however believe that platform independent programming tools such as React Native will become more important in the future. Still it helps a lot knowing native programming itself. I personally enjoy developing for devices the users can touch. If that's the case for you, too, get involved with iOS programming next.
Or dart and flutter - all 4 being supposed first class citizens at Google.
My personal philosophy has been to solve/implement the issue at hand using a language that I consider to have "native" proficiency. Because, the list of languages propping up claiming to be the next best thing is large:
1. Kotlin
2. Go
3. Dart/flutter
4. Rust
5. Swift
6. Scala
7. Haskell
8. F#
The advent of llvm has drastically cut down the time to market for new languages. I'm certain a few more will get added to this list soon, so just get the job done following best practices and without incurring technical debt. This will make your work language proof
I do recommend you should learn both to help you gain experience to tackle different problems, many workplaces lack programmers of those experiences. It's like a triathlon that we aren't made to learn only one language.
Likewise, I like the concept to encourage learning 8 languages rather than 2.
RE Java/JVM just try Clojure for a bit... it's really rather good.
Otherwise, do Go. Really useful for high performance. Channels are easy as pie for concurrency. Web services, command line tools, etc; lovely. Downside is that it's verbose and if you hate loops then there's no salvation for you.
16 comments
[ 2.6 ms ] story [ 50.7 ms ] threadAre you actually engaging with the users who reply to your question?
[1]: https://www.scientificamerican.com/article/the-interleaving-...
My personal philosophy has been to solve/implement the issue at hand using a language that I consider to have "native" proficiency. Because, the list of languages propping up claiming to be the next best thing is large: 1. Kotlin 2. Go 3. Dart/flutter 4. Rust 5. Swift 6. Scala 7. Haskell 8. F#
The advent of llvm has drastically cut down the time to market for new languages. I'm certain a few more will get added to this list soon, so just get the job done following best practices and without incurring technical debt. This will make your work language proof
Likewise, I like the concept to encourage learning 8 languages rather than 2.
https://www.kickstarter.com/projects/834569564/codescontext-...
Otherwise, do Go. Really useful for high performance. Channels are easy as pie for concurrency. Web services, command line tools, etc; lovely. Downside is that it's verbose and if you hate loops then there's no salvation for you.