Which one is better in the context of job opportunities?
Unquestionably Golang if those are the two options. It’ll give you a much more applicable base to work with if you are still earlier in your career and is much more applicable to a lot of things.
Elixir is niche, the syntax doesn’t share a lot of patterns with other languages, and no one is hiring for it. Also few people know it.
I want to caveat my answer with that I personally really like elixir, and would prefer to work with it myself over golang for some types of problems. Actor patterns are really cool.
UFODivebomb@programming.dev 11 months ago
I use Scala. Huge fan. Both for work and personal projects. Not wildly popular, so i get asked this by my team. This is what i tell them:
Focus on the patterns, design and theory. Those last longer than the language. What is enabled by language? What is difficult? What does the type system let you prove? How do you utilize the type system? How does the execution of the language work? What is the runtime like?
Language development itself has evolved. There is no longer a huge jump from one language to another because, well, we’ve figured out a lot of it. Want to learn rust? The patterns and concepts you learn with Scala will still apply. Go? Same, just a different form and you’ll probably be asking about monads in short order. :)
If i look at future trends. Real far stuff. Stuff that will only become popukar years from now. Well, some of it exists now in esoteric languages. Those languages wont be useful for jobs, but studying them now preps you for the future.
Elixer is further future than Go. Go, like Java was, is not particularly novel but a very solid implementation of what we currently know.
u_tamtam@programming.dev 11 months ago
Also mostly coding in Scala here (plus some python) and agreed with all that was said above.
Learning Scala will probably make you a better developer (much more so than learning e.g. go/swift/rust…), you will first wrap your head around functional concepts that might not feel super compelling initially (why would I want to write a recursive function instead of a while loop+mutator?), but those, and the constant exposure to type level concepts and monadic/higher-kinded constructs will slowly make you write safer and self-documenting programs.
Also, most of the intimidating language abstractions are not required to be mastered to be efficient with Scala, many of the bells and whistles serve library authors much much more than end users, so it’s important to find resources that go just “deep enough”, I think Martin Oderski’s and Li Haoyi’s books are perfect in that sense.
Finally there was this video published recently which might give an idea of where future programming languages are heading (and why it might be a good idea to keep an eye on Scala for the years to come): m.youtube.com/watch?v=7mTNZeiIK7E
khoi@slrpnk.net 11 months ago
Well said!