As a full time Elixir dev now, I would say that overall I prefer Elixir. Toward the end of my Ruby career I was writing more functionally anyway, so a lot of dependency injection and as little implicit state as possible in classes. I was actually writing many, many function modules by the end. I still find working with dates and times in Elixir to be extremely cumbersome compared to Ruby.
Things like date + 1.days are amazing. The DSLs around dates were just cool. I know there are tradeoffs and such, but sometimes in the Elixir world there’s an immediate mentality that “clarity” is objective. It’s really not. Someone who is not a programmer can read that and grok it.
And I just don’t love Decimal as it is. I get why a line was drawn in the sand, but working with a value that is clearly and conceptually a number and not being able to arithmetic operators on it is—call it what you want, a trade off or a wart—to me it makes even less sense in a language that doesn’t have a concept of primitives like Java or Objective-C.
The problem is, of course, there isn’t a way I can think of to reasonably restrict overloading to just that. (I’ve always found operators to be weird anyway. In these higher level languages, they’re just functions with a special form.)
Anyway, just griping. There’s no such thing as the perfect language for my tastes! (Or anyone else’s, lol.)
Thanks for all this info. I really appreciate the sources. I’ll read through this in depth later.


















