From: Gavin Kistner Date: 2005-02-01T00:05:19+09:00 Subject: Strong/Loose Typing [was Re: Ten Things Every Java Programmer Should Know About Ruby] > Florian Gross wrote: >> Not having your Objects changing types all the time without you >> noticing. If you forget to initialize a field in PHP it will be >> converted to zero or an empty String if necessary thus shadowing your >> bug. Strong typing usually is a requirement for languages where OOP >> works well. > > In Ruby, objects pass for different types all the time. In my own > recent Ruby code I've mistakenly passed in the wrong types but didn't > notice because the types responded to the same methods. Ob Javascript reference: In Javascript, the same sort of thing happens. Take a JS-HTML example: myObject.background = 'red'; myObject.style.background_color = 'red'; Both will 'work' (not throw an error), but not do what you wanted. JS silently creates a new property on the fly, all helpful-like. JS is loosely typed. With ruby, you get a convenient blend of dynamism with strong typing. Not as ridiculously rigid as a strongly-typed language, not as loose as something like JS.