>>> I'd be interested to know *why* it is a language convention, and more >>> important why it is a lanaguage convention that from this thread it >>> seems rubyists vigorously insist upon? For those of us who were >>> "raised" with a language like Java (or as some on this list may say, >>> brain damaged ;-), lowerCamelCase seems more pleasing to the eye than >>> identifiers_with_underscores. raise BrainDamagedException(Java) We like UpperCamelCase, but don't like the lowerCamelCaseCompromise. Part of it is just getting used to, but ... >> We feel exactly the opposite. That's your *why*. ;) >> >> The human eye picks out words by shape. We use spaces between words to >> separate those shapes into easily digested chunks. OneLongWord is not >> a shape we are use to, so we have to stop and think. Unfortunately, >> spaces aren't allowed in programming variables. The _ character is >> allowed though and the next best thing, so we go with that. >> >> This is all my opinion, of course. > > I share this, and I think ruby capable editors could be told to gray out > underscores within variable and method names. (so that they are visible > but can be easily ignored while reading). Gray out? No way. Have you ever printed var_with_underscore on a printer that places your underscore lower than you want? Absolutely unreadable. I think that the underscore is *not* a space and *not* a dot, but clearly, visibly connects the words. Especially in Ruby where "method param" is perfectly valid, but totally different from the equally valid "method_param". When I tried SciTe (I think it was scite) recently, some folding striked the this-is-folded-line right through the underscores. That was an immediate turn-off for me. Bye, Kero. PS: old habits die hard. Accidentally, I came from Java to Ruby, too. Yes, I frowned upon the underscores when I started (at the time, we had the printer mentioned above at work; a2ps helps). Right now, I think it is 'just a convention' and should be followed. For completeness, when I started with Java, I frowned upon lowerCamelCase. I still do.