You’d have to ask Matz to get an authoritative answer. However,
- Ruby is an untyped programming language and a variable like
finished?would imply a specific type (boolean) which appears somewhat contradictory to me. - A question somewhat requires a receiver (who can answer the question). A method must have a receiver (the object the method is called on), so a question mark makes sense. A variable on the other hand has no receiver, it’s a mere container.