Which one is better in the context of job opportunities?

  • UFO@programming.dev
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    8 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.

    Elixir 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
      link
      fedilink
      arrow-up
      3
      ·
      8 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): https://m.youtube.com/watch?v=7mTNZeiIK7E