this post was submitted on 19 Nov 2023
19 points (88.0% liked)
Programming
17309 readers
254 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
Elixir is further future than Go. Go, like Java was, is not particularly novel but a very solid implementation of what we currently know.
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): https://m.youtube.com/watch?v=7mTNZeiIK7E
Well said!