mackenza

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… :wink:

Most Liked

chrismccord

chrismccord

Creator of Phoenix

tldr; no. :slight_smile:

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.

13
Post #2
nathanl

nathanl

Good point. I’m glad Chris didn’t name it Elixir on Escalators. :laughing:

Hal9000

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. :slight_smile:

Hal

Where Next?

Popular in Discussions Top

andre1sk
A big advantage to Elixir is all the distributed goodness but for many applications running on multiple nodes having integrated Etcd, Zoo...
New
Jayshua
I recently came across the javascript library htmx. It reminded me a lot of liveview so I thought the community here might be interested....
New
thojanssens1
It would be nice to be able to define a redirect from one route to another from the router.ex file. E.g.: redirect "/", UserController, ...
New
ricklove
I was just introduced to Elixir and Phoenix. I was told about the 2 million websocket test that was done 2 years ago. From my research, t...
New
AstonJ
Are there any Elixir or Erlang libraries that help with this? I’ve been thinking how streaming services like twitch have exploded recentl...
New
CharlesO
Erlang :list.nth simple, but 1 - based nth(1, [H|_]) -> H; nth(N, [_|T]) when N > 1 -> nth(N - 1, T). Elixir Enum.at … coo...
New
fireproofsocks
I’ve been working on an Elixir project that has required a lot of scripting. I usually reach for Elixir because I like it more (and in th...
New
PragTob
Hey everyone, this has been brewing in my head some time and it came up again while reading Adopting Elixir. GenServers, supervisors et...
New
rms.mrcs
A couple of days ago I was discussing with a friend about different approaches to write microservices. He said that if he was going to w...
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31265 143
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement