I'm a programmer in need of a new programming language. I've been doing full-stack Rails web dev for about 3 years and find myself increasingly bumping up against the limitations of Ruby/Rails. I won't catalog all the issues since other people have done it far better than I can, but it comes down to the same hackneyed but true complaints around Rails: trends towards poor maintainability for large projects and bad performance.
So I'm looking for something new. I've done Java development on-and-off professionally for about 4 years. While I love the static typing and simplicity of Java, it's too verbose. I always end up writing a lot of boilerplate code, and I absolutely hate Java projects' XML-centric configuration.
All this lead me to start playing around with Elixir in the last month since that seems to be the new hotness, but so far it's really chafing for me. Simple things like loops and encapsulation seem incredibly complicated. Something as simple as setting a value in a two-dimensional array becomes:
new_row = array
|> Enum.at(row)
|> List.delete_at(column)
|> List.insert_at(column, new_value)
new_array = array
|> List.delete_at(row)
|> List.insert_at(row, new_row)
I'm finding myself passing tons of variables into short methods because there aren't any objects to hold ivars. No doubt some of these difficulties are due to the fact that I don't have much FP experience, so I'm wondering if I should persevere or try something else.
On the other hand I've heard some really good things about Scala — that it offers Java's benefits around type while being more concise and readable. I've also heard that Scala has some great capabilities around FP and concurrency.
TL;DR Should I learn Scala, Elixir or some other language I haven't considered?
So I'm looking for something new. I've done Java development on-and-off professionally for about 4 years. While I love the static typing and simplicity of Java, it's too verbose. I always end up writing a lot of boilerplate code, and I absolutely hate Java projects' XML-centric configuration.
All this lead me to start playing around with Elixir in the last month since that seems to be the new hotness, but so far it's really chafing for me. Simple things like loops and encapsulation seem incredibly complicated. Something as simple as setting a value in a two-dimensional array becomes:
I'm finding myself passing tons of variables into short methods because there aren't any objects to hold ivars. No doubt some of these difficulties are due to the fact that I don't have much FP experience, so I'm wondering if I should persevere or try something else.On the other hand I've heard some really good things about Scala — that it offers Java's benefits around type while being more concise and readable. I've also heard that Scala has some great capabilities around FP and concurrency.
TL;DR Should I learn Scala, Elixir or some other language I haven't considered?