On Apr 13, 8:04    宮
> So, I'm stuck re-engineering some dreadful Python library code into
> Ruby (and I mean terrible, a mish-mash of different clashing
> programming paradigms -- inheritance, delegation, etc. severely
> intertwined all over, ugghh), and I came across Python's use of these
> double underscore methods (__hook_method__.  §  
> sue me.   
>
> I'm curious as to why Ruby unintentionally keeps these type of things
> less obvious.  §     > using an object's #to_s to display itself.     
> doesn't bother me at all, but I've run across a few newbies that
> struggle with this type of "hidden" guru knowledge (It's surely not
> hidden, but not easy to discover either; sort of like a live
> Architeuthis).

Python uses __method_name to denote private methods (not enforced,
just a convention). Ruby has keywords 'private' and 'protected'.

Python uses __method_name__ with leading and trailing underscores for
special system functions with pre-defined behavior. Like __init__()
where ruby uses 'initialize'.

Python has certain underscore methods for operator overloading; you
define __add__() to overload '+'. Whereas in Ruby, you simply define
the '+' method.

I'm not sure how this equates to hidden guru knowledge. Ruby makes
more sense to me in these situations.

-- Mark.