mackenza
Is the Elixir ecosystem being shaped (too much) by Ruby?
I don’t mean this as a click-bait flame war post… I really don’t.
I really want to love Elixir, and in most ways I do. However, in checking out several projects over the last year or so, I have run into a way of thinking that I find puzzling and I wonder sometimes if I really belong in the Elixir community with my lack of interest, knowledge or experience with Ruby/Rails.
Just the other day, I asked a library author how to use something and was told “it’s like how you do it in Rails”. OK… so if I have never used Rails, what is my frame of reference then? Also, it was on a project that is a re-write of a Ruby project. So I guess that’s another trend I am not keen on, unless there is substantial benefit from having it written in Elixir.
How do you feel about this? I feel like if I went to Github and asked a question about a project written in, say, Scala, I wouldn’t get told “do it like you do in…” what? Java? I feel like this Ruby-backed basis of understanding in Elixir is somewhat unique due to the history of Elixir.
Again, not that it’s a necessarily bad thing… I just feel somewhat “out of touch” on some Elixir topics and conversations due to not having any background in Ruby/Rails.
Or I could be totally inventing this… ![]()
Most Liked
chrismccord
tldr; no. ![]()
Slightly longer answer; a lot of folks enter the Elixir community from Ruby, so it’s natural for people to try to bring the same hammers they used from what they know. The semantics are entirely different, so most times trying to build “Ruby lib X, but for Elixir” ends up being a poor approach that we see often. This can frustrate seasoned Elixir programmers, but the key thing to realize is these newcomers are just tinkering with the only tools they know. Phoenix also borrows some ideas and conventions from Rails, so we see the same thing for Phoenix related libraries. So it’s partly on the community at large to help level-up folks and open their minds to everything the ecosystem has to offer. This goes for probably the majority of newcomers since Elixir is their first functional language. Initial efforts are doing with an OO/mutation mindset until they level-up. So Ruby isn’t shaping the ecosystem anymore than OO is.
The community’s proximity to Ruby is self evident, but we are treading our own path.
nathanl
Good point. I’m glad Chris didn’t name it Elixir on Escalators. ![]()
Hal9000
I’m glad to see this thread here. I’m speaking here as one of the first ten Americans to learn Ruby.
At that time, many things in Ruby were explained to newbies “in terms of” Perl or Python (neither
of which I have ever learned, even today).
Certainly parts of Ruby are similar to those languages (probably even “inspired” or “borrowed”).
But Ruby needed to be its own language with its own culture.
Likewise, Elixir needs to be its own language.
I think it’s acceptable to describe Elixir in terms of Ruby… IF the speaker and the listener are
both Rubyists. That doesn’t bother me.
I even think it’s OK to use Rails as an analogy for Phoenix, so long as (again) the speaker and
listener are on the same page.
What does bother me more (and has been an annoyance for a decade) is the conflation of
Ruby with Ruby on Rails. The language isn’t the framework, and the framework isn’t the
language. I have wasted countless hours explaining to recruiters (and sometimes even people
who should know better) that while I am an expert in Ruby, I don’t know Ruby on Rails.
Naming, of course, is a big part of the issue. No one confuses Django with Python. And no one
will confuse Elixir with Phoenix. Though in a larger sense, Phoenix is “just more Elixir code”,
far more faithful (as I understand it) to Elixir than Rails is to Ruby.
In short: Comparing Elixir to Ruby is not so bad, depending on audience.
Comparing Phoenix to Rails is not so bad, depending on audience.
Comparing Elixir to Rails… Please don’t. I won’t flame you, and we can still be friends, but
please don’t. ![]()
Hal
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance










