News for hackers. Stuff that matters.
Re:Rails is not written in Ruby by zer0-c00l on Friday February 04, 2022 @05:34PM (#30214337)
Except here the encapsulation comes at the cost of extending a core library at runtime, which has all the tradeoffs mentioned in the article.
Re:Rails is not written in Ruby by jshen on Friday February 04, 2022 @05:39PM (#30214413)
One benefit is discoverability. I coded a ton of Ruby/rails back in the day and it was nice to be able to jump into a repl and see what methods were on an object. Also, you could often find the source of the method through the repl.

I think a lot of these debates come down to repl development versus ide development. I’ve done a lot of both, but many complaints come down to people on one side not understanding the way the other side works.

Re:Rails is not written in Ruby by dragonwriter on Friday February 04, 2022 @06:27PM (#30214984)
> Except here the encapsulation comes at the cost of extending a core library at runtime

No, it doesn't.

Pervasive OO style and monkey-patching core classes are orthogonal. Ruby favors the former strongly, and supports the latter, and Rails rather heavily leverages the latter (to the extent that it has been harshly criticized for it by much of the non-Rails Ruby community), but there is no necessary relationship between them.

Re:Rails is not written in Ruby by zer0-c00l on Friday February 04, 2022 @09:17PM (#30216385)
“Here” in my comment was referring specifically to Rails’ use of the latter method, sorry for the confusion
Re:Rails is not written in Ruby by matsemann on Friday February 04, 2022 @05:46PM (#30214513)
In other languages (like Kotlin), that extension is actually not done on the object, but is a statically imported function and it's only syntactic sugar. This avoids all the pit falls (no collision, knows where the function comes from etc)