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.

Julian.

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
>> language
>>
>
> 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.
>
>
>
>
> -- 
> http://home.cogeco.ca/~tsummerfelt1
> telnet://ventedspleen.dyndns.org
>
>
>