Rails is not written in Ruby

Rails is not written in Ruby.
I’m born and raised in Kraków, a beautiful city in Poland, maybe you’ve heard about it, maybe you’ve even been here. In Poland we speak Polish, which is a really difficult language, it’s actually considered one of the top-10 most difficult languages to learn in the world. In Poland, just like in many other countries, there are regions where dialects are used rather than “the pure” form of the language, and so in my city, we have our own dialect.

Read in full here:

https://solnic.codes/2022/02/02/rails-is-not-written-in-ruby/

This thread was posted by one of our members via one of our news source trackers.

4 Likes

Corresponding tweet for this thread:

Share link for this tweet.

2 Likes

Interesting article. I wonder if at some point the ruby community became so dependant of Rails and its magic, that end up losing opportunity of growing into other areas like AI, IoT and mobile.

3 Likes

In fairness to Rails, Ruby may never have seen the kind of adoption it did had Rails not been around…

3 Likes

The writer is right. When I have to switch the rails codebase to sinatra, I just found that there were so many functions added by activesupport.
Also some use of operators, like bang function (!) is re-interpreted by rails.

Hang on, this article is promoting Hanami? :joy:

3 Likes

But Ruby is very beginner-friendly, and enforces good programming habits.

2 Likes

Monkey-patching is not a good practice.

3 Likes

The article is quite on point, I’ve noticed the same when I was a Rails dev long time ago.

But the Ruby community doesn’t mind and apparently it likes it this way so who are we to criticize? As long as people are productive and kinda sorta happy, why not?

It’s quite alright for a framework to kickstart a huge adoption of a language like @AstonJ mentioned.

I was already quite turned off by Ruby when I stopped working with it (and Rails) for 6.5 years, about 6 years ago now simply because it was encouraging bad programming habits. And the community was constantly scrambling to try and fix it with practices like a dozen variants of MVC (:man_facepalming:), strict file structure requirements (:expressionless:), less monkey patching (:+1:!), generating some code from specs (:+1::+1::+1:) etc. etc. But in the end it felt like you’re pissing against the wind.

Rails has quite a huge following and people praise its “ease of use” to this day (even though 12-year Rails veterans are not seeing it anywhere. :003:). Rails is actually too deceptively simple; you can entangle yourself in a huge spaghetti ball in a mere single month if you’re not careful. But that probably applies almost everywhere…

My take is: let people develop their ecosystem how they like. I personally disagreed with the direction so I left.

3 Likes

Uhhh? Monkey patching is not a good habit. Typeless programming is not a good habit. Lack of proper resource management is not a good habit. Just to list a few big ones out of many more…

As the old saying goes: When you remove complexity in one place, you just move it to another.

2 Likes

I do feel it’s important to make programming accessible tho… and Ruby and Rails have always been great at that :smiley: There are payoffs of course, but there will always be swings and roundabouts…

1 Like

Accessible is good, but it’s important not to confuse that with good practices, as they are often quite mutually exclusive sad is that is… :-/

2 Likes

Sadly, it’s extremely often that “accessible language / framework” is SEVERELY at odds with “write long-term maintainable software”.

It’s a Faustian deal. :slightly_frowning_face:

2 Likes

Yeah I think that’s the trade off. I often think how much I enjoy writing new apps or features in Rails… and how much of a pain it can be when maintaining or expanding something.

This is why the side of static typing that interests me is what @lpil said on the Erlang Forums:

I believe that types static analysis is a development tool, and its purpose is to lower the cost of maintenance.

3 Likes

I think Elm has done a great job with this for the frontend and Elixir’s Phoenix a good job on the backend (though in a different way). I’m hoping that with Gleam we’ll be able to build a backend web framework with the strengths of both.

Will be some time in the future though I wager!

3 Likes

I don’t disagree, there’s tech out there that manages to do it better. I can hardly call Phoenix accessible however. :smiley: Maybe for you and me but people trip up on a lot of things in Phoenix all the time (judging by ElixirForum). Although I’d write that off in the “didn’t bother to learn Elixir first” category.

2 Likes

People can’t blame Phoenix for that :upside_down_face:

I made the same mistake with Rails - dove straight into it without learning Ruby and then found I was asking really dumb questions in their IRC channel. After a couple of days of doing that Ryan Bigg said “Hey Aston, if you read this book I promise you’ll be able to do everything you’ve been asking… and more!”. He was right :003: He also hand-held me send my first PR to an OS project - he’s such a cool guy! (No surprise he is one of my dev heroes!)

Sounds really cool! I hope you’ll consider project structure to be more component based (so rather than the typical MVC folder structure, folders will be dictated by components - this just makes it easier to work on specific things imo and I wish Phoenix had an option for this to be set on project creation).

3 Likes

Yeah obviously, I am just a bit salty that people are coming entitled to forums and getting angry that the forum dwellers aren’t there to immediately do their work for free. :003:

It’s quite logical that taking the requisite time to learn pays huge dividends!

2 Likes

Generally I find that people have at least read the tutorial on the Elixir Lang site (and thanks to things like our discounts and giveaways I am pretty sure we see a larger than average number of people picking up books too) :smiley:

If you see anyone getting angry please report their posts.

1 Like

Actually not recently, no, but any example just gets imprinted in my memory, sadly.

But I don’t like how there’s periodically a wave of very low-effort posts… :frowning:

2 Likes

I think the vast majority tries to learn a language through the go to framework of their favorite language.

But it’s a very bad habit since frameworks are “usually” opinionated and they tend to bend the language to their will.

The ActiveSupport rant is legit, and we ended up with Ruby devs which “can’t” write Ruby.

Maybe it’s because of hype or promotion on some kind of courses/books. I do not go on ElixirForum this much lately.

Take a look at Commanded, it’s a CQRS/ES library, we got separation based on domain, and you can be very granular if you want to.

Maybe Phoenix is much more accessible than Rails in the sense that it’s explicit. We know that a controller is a controller because of the controller macro, etc. In Rails, it’s not the case at all.

I agree! It’s quite sad though to see, at least here in France, that Elm is not getting any traction.
Despite the bold statement made by Elm, this video explains probably why.

2 Likes