News for hackers. Stuff that matters.
Re:Ruby's private keyword is weird by lloeki on Friday December 15, 2023 @07:39AM (#38653548)
> And method calls aren't magical function calls

Precisely, unlike C++/Java/Python/Go, Ruby and Smalltalk methods are invoked through message passing†; ObjC as well.

Superficially it looks the same but the farther you go into the rabbit hole, the more you see each paradigm has deep consequences that end up surfacing here or there when you compare one language to the other.

> you do have blocks, but they're invoked by calling a method on them

Again, same in Ruby: an implicit block can only be called directly by `yield` inside the binding the block is internally tied to, or if it has been reified into a Proc, to which one sends the `call` message.

† Hence `respond_to?` and `send` in Ruby, often used to circumvent privacy checks done by syntactic `.method` invocation. This is also what enables invoking methods that don't actually exist with `method_missing` (to be paired with `respond_to_missing?`).

There are no comments on this comment yet.