this post was submitted on 19 Nov 2023
19 points (88.0% liked)

Programming

17308 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
 

Which one is better in the context of job opportunities?

top 14 comments
sorted by: hot top controversial new old
[–] [email protected] 11 points 11 months ago* (last edited 11 months ago) (1 children)

Unquestionably Golang if those are the two options. It'll give you a much better 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.

[–] [email protected] 1 points 11 months ago

Having tasted the syntax from both, I’d say Elixir is awesome. But it’s true that Elixir is niche.

[–] UFODivebomb 10 points 11 months ago* (last edited 11 months ago) (2 children)

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 4 points 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): https://m.youtube.com/watch?v=7mTNZeiIK7E

[–] [email protected] 1 points 11 months ago
[–] [email protected] 10 points 11 months ago (1 children)

Jobs? Probably Go.

But really what's most important is learning portable skills, which amounts to learning about different approaches. In that case, I'd say learn both.

There are a lot of interesting ideas in both languages.

(I learned a lot of great ideas from Go, especially about concurrency. I think it's great for writing the kind of frameworks where that matters. But in terms of "normal" business logic programming, I think it's trash. It not ergonomic at all.)

[–] [email protected] 1 points 11 months ago (2 children)

What lang would be ergonomic you’d say?

[–] [email protected] 2 points 11 months ago

Python is ergonomic. It's very expressive without the language feeling too magical.

If you are comfortable "programming with types" then Rust is a very ergonomic language. But it does take a while to get your brain thinking in Rust.

It's also useful to have counter examples.

C is not ergonomic. You basically have to reimplement collections for different applications.

[–] FunctionalOpossum 1 points 11 months ago (1 children)

What's your background? I've mainly used language with huge standard libraries and Go's intentionally small standard library feels very unergonomic sometimes (I miss sets).

Elixir feels very ergonomic to me, but a lot of programmers struggle with the lack of typing.

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

I came from JavaScript NodeJS and Python.

I’ve learnt Elixir and it seems like it’s packed with lots of features/patterns.

[–] [email protected] 4 points 11 months ago

My go-to language for everything is elixir and has been since 2018

[–] [email protected] 3 points 11 months ago (1 children)

rust will soon explode for jobs

[–] ericjmorey 2 points 11 months ago

What makes you think so?

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)
  1. I use go pretty regularly, because I like it, but it's not what I get paid to use.

  2. I'm only about 70% sure that Elixir is a programming language and not a typo or something you made up. (I'm kidding... But only just barely kidding...)

  3. If you're concerned with employability, neither language would be in my top 3. (Python, JavaScript, SQL)

Source: I pick up new languages for the lols, and have coded professionally, for money, in about a dozen languages.

More relevant: I hire developers. Some of my team want to write new code in go, but I've instructed them not to, for now. They've never asked about Elixir.