
Reason 1 -- Balance
Ruby, as a lanugae, is a delicate balance between opposing forces.
Pure vs Pratical
- Ruby is a pure object oriented language
- I.E. everything is an object, all functions are methods
- Ruby doesn't force OO on programmers
- You may safely program in a non-OO subset if you are so inclined
Simplicity vs Complexity
- Ruby syntax is (for the most part) regular and easy to learn
- Ruby syntax is irregular in some places
- Special Block syntax
- Parenthesis may be omitted where non-ambiguous
Matz likes to refer to Human Oriented Programming
- People are complicated ...
- People love simplicity and they love complexity
- People love beautiful things and love ugly things
- People love easy problems, and hate easy problems
- People make mistakes and they learn from mistakes
Ruby tries to achieve balance in this complex world of Human abilities.