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 Switch mode

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 #1
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

Last Post!

vic

vic

Asdf Core Team

Building an awesome community is not easy, and saying no to many feature requests that would just polute the language on the long time, and explaining nicely the reasons why is a such a cool thing about Elixir core team :). <3 Elixir for that.

So I’d say, Elixir people do have brains of their own, and Elixir, their frameworks and community is a relfection of that.

Where Next?

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2976 91332 914
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
AstonJ
Just a general thread to post chat/news/info relating to AI/ML stuff that may be relevant for Nx now or in the future. Got anything to sh...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
bjorng
We want to introduce a new native datatype to Erlang: native records. Although replacing all tuple records with native records is not our...
New

We're in Beta

About us Mission Statement