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

Donovan
Hello everyone, I’m so glad to have discovered this awesome community. Thanks for creating it! This is my second post, and apologies for...
New
mikl
I wanted to capitalize a string, and tried using String.capitalize(). That generally works well, until you try to capitalize a word like...
New
sashaafm
I’m trying to evaluate the best combo/stack for a BEAM Web app. Right now I’m exploring Yaws a bit, after having dealt with Phoenix for a...
New
AstonJ
I’ve just started the Phoenix part of the utterly brilliant online course by @pragdave. On generating the Phoenix app he uses the --no-ec...
New
IVR
Hi all, I’ve seen a number of related threads in the past, but I’d still be very curious to hear an up-to-date opinion on this topic. I...
New
eteeselink
Hi all, In the last days, two things happened: A blog post titled “They might never tell you it’s broken” made the rounds. It’s about ...
New
pdgonzalez872
If this has been asked here before, please point me to where it was asked as I didn’t find it when I searched the forum. Maybe a mailing ...
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
sashaafm
Piggy backing a bit on @dvcrn topic BEAM optimization for functions with static return type?, I’ve been trying to understand in a deeper ...
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
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
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
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
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36352 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 127089 1222
New

We're in Beta

About us Mission Statement