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.
[ Parent
| on HN ]
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.
“Here” in my comment was referring specifically to Rails’ use of the latter method, sorry for the confusion
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)