#Elixer? or stick to Go(lang)? [backend] (both are new to me)

47 messages · Page 1 of 1 (latest)

bitter token
#

Hey, I’ve recently gotten interested in learning Elixir, but I’m also currently learning Go. I haven’t invested too much time in Go yet, and now I’m having second thoughts about whether I should continue with Go or switch to Elixir. I’m mainly focused on learning backend development as of now. Do you think Elixir would be a good choice for backend development, or should I stick with Go for now?

tough plume
#

Hi, @bitter token! It really depends on what you're looking to make, I think. I don't know a lot about Go, but I know a bunch of people here are quite familiar with it. When you say backend, do you mean.. Backend (Applications), Backend (Web), Backend (Mobile Apps), Backend (Video Games), Backend (Servers) or all the other flavours

bitter token
tough plume
#

No worries. So Elixir's biggest draw is it's concurrency model which has spawned heaps of valuable libraries like Phoenix and tools for database management like Ecto. As a not-very-experienced web developer, backend or otherwise, I can whole-heartedly say that Elixir made this incredibly simple. I came from an OO background, stumbled hard with a lack of return function and a simple for loop, but eventually it just clicked. If you want a language that you can run when you start coding, recompile as you are developing and won't hard crash when you give it bad data (you have to REALLY try to make it crash), Elixir is absolutely 💪.

With how you write your code, you'll have so many ways to improve as you look back with more knowledge. Frankly, the dev experience is fantastic. The one piece of advice I'd give is "Learn to read the docs". Not skim, not copy paste, comprehend and understand the docs; because they are, in most cases, documentation-as-code through @spec (typespec).

Again, I don't know much about Go but I read it was made by Google so it's likely not a syntax I would enjoy; that and it'd be bloated and scale poorly. These are assumptions with bias, of course.

If you're familiar with Python or Lua, Elixir is kinda like.. A step below that, where Lua's socket library you need to include or Python's requests module are just there, part of what you write. Enough rambling though; I recommend even if you don't end up using Elixir, you will certainly find value in the way you write code using practical functional programming. It's not Haskell tier "Need a doctorate in mathematics and computer studies" to do stuff, this is difficult until you get over the initial syntactic wall; then it's easier than most languages out there ever written.

native sun
#

Plenty of people here do not like Go, and obviously people here are gonna be biased towards Elixir 😅 but practically speaking, if you care more about getting a job, it'll probably be easier with Go than with Elixir.... But learning Elixir is still a really good idea, it will teach you ways of thinking that other languages won't necessarily

wooden rapids
#

#off-topic message
if this doesn't bother you and you don't crave elegancy, laconic and fancy, then Go might be just alright for you, and also Go is easier to distribute

verbal wyvern
#

Go compile targets with x64 and ARM is definitely better than Elixir's (although not be much in terms of a pratical standpoint). However, while Go looks initially easy to use, especially with its C like syntax, it is completely rife with a lot of gotchas that you have to embrace before you get confident with it. Because Go allows you "do whatever the hell you want" with its ergonomics, you can quite easily overlook the assortment of mistakes you'll make:, see https://100go.co/

Summary of the mistakes in the 100 Go Mistakes book.

#

I've done Go and Elixir professionally, and I really dislike Go's ergonomics. Go saps the fun of programming and provides you sharp razors to cut yourself with, but at least the razors are simple and not lawnmowers.

wooden rapids
#

oh, right
try out Elixir track on Exercism and see how it tastes for you syntax wise

#

one of biggest problem you might encounter in Elixir is that it insists on you to think quite different on the problems that Go solves with blatancy, especially since Go often doesn't have prefire (standard library) solution, and Elixir often might

bitter token
#

I’m trying to ditch js, every other guy I talk to is using js and I have tried js obvious for front end, I didn’t like it much. For backend I do have good choices so I’m trying to figure out which one should I go for all in.

bitter token
#

So prolly stick to golang for now and visit elixir (just noticed I wrote elixer) later, though I want to try it but it would be time consuming for me to do both, is what I think.

verbal wyvern
#

There is no such thing as a small amount of Go

bitter token
verbal wyvern
#

For example, you go into a startup and you're expected to just code without people helping you

#

That is not a place you want to be to begin your career

bitter token
verbal wyvern
#

Then, simply put, don't do startups

bitter token
verbal wyvern
#

You don't.

bitter token
verbal wyvern
#

Then you hope that you're good enough and that the place you are at knows what to expect from you

bitter token
verbal wyvern
#

Do I know your life situation?

#

Do I know where you live, your circumstances and everything that lead you to this point? If I was completely irresponsible, I would tell you do to some crypto gig and (maybe) get paid

#

Just do things earnestly, be honest, try not to panic

#

Everyone does that.

#

And people who have it together sometimes don't, or know where they sit

bitter token
#

Started from Elixir or golang to now me thinking about getting career advice from someone on what to do and how to do…

tough plume
torn pawn
#

Regarding the original question:
I don't think it has to be an either or, it's good to know several different tools and getting a bit into functional programming if you haven't done it before can be really enlightening in some ways and might help you in other languages you are working in, it was like that for me.
Elixir is a pretty nice intro to that, and the concurrency stuff is great.
Lack of static types is a big problem for me in Elixir and would make me reconsider starting a new project with it, so if that's something important to you, it might be worth considering before you start working on larger scale things.

wooden rapids
torn pawn
wooden rapids
#

I realized this discussion falls outside of post's topic, so whatever

bitter token
bitter token
wooden rapids
native sun
bitter token
native sun
wooden rapids
torn pawn