It's like the difference between thinking in objects vs thinking in procedures.
Smalltalk is an example of a language which DOESN'T allow you to think non-oop-ly... because if you do, your programs will be more hard to understand and work out than if you programmed them in a procedural language.
Ruby is very flexible, and so it allows you to program however you like, and still maintains its understandability. Using blocks and yield statements are very object-oriented ways of dealing with things and make for efficient and wonderful code if you understand it.
From experience, ruby lets you write crappy code, then refactor it very easily and efficiently. It also lets you compact the code, and make beautiful code that sometimes take a bit longer to think through, but you come to have a greater understanding of how to write better code for the future as a result - in short, it helps you to fix up at the core of your code-writing - to write better code in general and therefore (here) to think better.
On 17/08/2005, at 11:05 PM, tony summerfelt wrote:
Martin Elzen wrote on 8/16/2005 3:46 PM:
Ruby has enough
easyness built into it that I'm sure just about anyone who's into it can
come up with more correct programs faster than in just about any other
unfortunately, ruby has enough 'hardness' built into too. at this
point in my ruby education i'm obviously not 'thinking in ruby'.
i'm working on a module i'm going to be using in just about every
other program i write in ruby. currently it's about 500 lines of code
but likely won't exceed 1000. i can't help thinking i should be using
'yield' (not using it more, using it period). there's not one line
where i use yield. i think it might save me a lot of code but i get
the feeling that i'd have to rethink each method in the module class.
what i have now is working and doing exactly what i want...when i
started i wasn't too worried about how the code looked.