Rails is not written in Ruby

Hopefully, the author changed the article’s name. Yes, Rails is Ruby. A Ruby with a superset of capabilities. This feature is at the heart of Ruby itself.

I’m ok with this, even after a fight on a general library we developed originally outside of Rails, but have a subtle change when used inside Rails. This caused a break on our promise but we found how to deal with (related to JSON processing).

There is room to learn. Ruby can’t be compared with other technologies. We have to make effort to understand its shape and use its strength.

This is also the reason I always call a Ruby on Rails developer a Ruby on Rails developer, and never a Ruby developer until a real project was achieved outside of Rails.

2 Likes

Yep, he changed it to Rails and its Ruby dialect

1 Like

I always called myself a Rails user because Rails always felt like a really really good CMS… because it is just so easy to use :lol: but also because knowing the guts of Rails at an intimate level (and what I would call a Rails developer) isn’t really necessary in order to use it (which is both a blessing and a curse of course).

I think this led to frameworks like Phoenix not wanting to use so much magic (and something that made them appealing to many people).

2 Likes

Copy pasting my comment from the blog:

I wonder how rails would look if it used refinements.

I also would love to see something on ruby like module exports from python/javascript

My biggest pain points with rails are:

  1. the thousands of monkey patches, that could maybe be dealt with refinements
  2. the autoloader, that as far I know dont have a good language level mechanism

I think if we had a module system similar to what we have on JS/python things could be much better.

2 Likes

Wait… it doesn’t?!

1 Like

Nope.
requireing a file affects global namespace, so if any one of your classes require some gem all subsequent scopes can access that gem.

Very crappy example but I think it shows my point. We also cant require specific functions.

EDIT: There was some discussion about this on the bug tracker but I dont think anything came from it Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos - Ruby master - Ruby Issue Tracking System

2 Likes

o.O

That’s… a very odd design decision… What was the reasoning behind THAT choice of all things?!?

4 Likes

Yeah, I also have no idea why.
My first thought was that because ruby was designed as kind of a perl replacement, but I just googled it and it looks like perl has proper imports/exports

3 Likes

Yeah perl’s module system is both ancient and advanced, they definitely didn’t copy that, lol.

2 Likes