Dan,
Your first post started with 'Not so fast', then mentioned referenced objects, 'really ticked off people', and a few other interesting phrases like 'Ruby does exactly what you ask it to do (unless you ask incorrectly.)'
Now you've taken a different tack.
Your subsequent posts state –
My quick reply is that Ruby does NOT have "properties".
Why don't you see any change?
Because this proves my point that there are no properties in Ruby.
If this seems weird, then it's just the way Ruby is.
Regarding properties, methods, etc, I suggest you Google “properties vs methods”, as the distinction you're making is pointless and in error. Also, 'by reference' and 'by value' can apply to properties or methods.
You're mixing together the Ruby programming language and the SU API. Much of what you've said about Ruby is incorrect (or really applies only to the SU API), and your programming terminology is, at a minimum, odd. If you feel I'm mistaken, I'd suggest you read a few books on API / class design and OOP programming. You might also study other API's like the javascript DOM API, or the .NET API.
As an example, you've mentioned 'instance.' 'Instance' is applicable to programmers and designers of classes and API's, as is the term class (or static.) Users of API's rarely would use the term, as they are restricted to whatever the API allows, and aren't concerned with its internal implementation.
Regarding all of your 'ideas' about the color object (especially 'amMats["Audience"].color!.blue= 255'), they are strange. Plain and simple, color is a property of the material object, and AFAIK, no ruby properties use the “!” symbol, which is always used with methods that change an object. Big difference. The “!” symbol is used as a shortcut to self re-assignment, which is common in many languages, and can also be used in Ruby. IOW, the following are identical –
someArray.sort!
someArray = someArray.sort
It can also used when 'method chaining', but many programmers would prefer separate statements.
You've contributed a lot to this forum, but IMHO, many of your posts are argumentative, condescending and off topic. Please try to improve your signal to noise ratio...
Finally, API's are messy. Once something is added to one, it needs to be supported essentially forever. There have been many times where I wish the SU API was laid out differently (more like the DOM or .NET API's), but we and the SU dev team are stuck with it. Additionally, the SU API is designed with an eye towards being used by people who are not hardcore programmers. That shouldn't prevent discussions about how it might change or be improved. Let's just try to have good, on topic discussions.
Greg