> Ruby doesn't have functions. It only has Objects, and methods on those Objects. Generally you won't run into method nuking because generally there's no need to define the same class in different files.
I was writing a rake task and all I did was write a function above the rake task definition. That function was loaded globally and conflicted with another function. If it’s in a rake file then what object is it a part of? This goes back to my main issue about how you don’t know where shit comes from in ruby and there’s too much implicit magic.
> Rails only looks like magic in this regard because it's coded around conventions so that it can abstract away all that boilerplate
This is what I’m talking about. What you call “abstract away all the boilerplate” I call magical bullshit that makes code confusing.
> Includes/Mixins are designed to encapsulate shared functionality. Like any effective shotgun if you shoot your feet off you'll be hurting, so don't shoot your feet.
Classes already do that. I’d much rather create an instance of a helper object than magically inject methods into my class. It makes the code more explicit and discoverable too.
> I've wrangled a lot of typescript and I cannot say that having types have made me feel protected in any way.
That’s strange because types tell you what a thing is and helps you find where it comes from. It offers protection if you use the type system but to each their own.
> `return unless some_condition?` is gods greatest gift to programming and I will die on that hill.
No, just no. `return if !some_condition?` is far more readable, especially if you have other lines that use `if`. Consistency makes code more understandable. And using `if` everywhere makes it so I don’t have to invert things in my head.
> Like every language you will meet your code golfers
I’ve worked with a lot of programming languages and ruby is particularly bad. Lots of people jerking themselves off about how short their functions are and you don’t see that in other communities as much.