・新スタイルクラスと旧スタイルクラスがある
 Ruby => CLOS や Smalltalk と同様な動的型付け/動的メソッド束縛方式の
  オブジェクト指向言語として設計されたRubyのクラス定義スタイルは、
  最初から(少なくとも Ruby 1.4 の時代から)変更がありません

  Python に関しては、もともと手続き型言語として設計されたものに後から
  オブジェクト指向を付け足す際、開発チームの「オブジェクト指向への理解不足」によって
  静的型付け/静的メソッド束縛言語のオブジェクト指向を導入したという「過ち」がありました
  結果として、リフレクションを多用する最近のメタプログラミング・スタイルに追従できず、
  旧スタイルを排除して新スタイルに「改めざるをえなかった」のだと思われます

・コンストラクタ(と思われるもの)が2つある
 Ruby => 最初からオブジェクト指向言語として設計された Ruby では、
  コンストラクタは Class.new、イニシャライザは Object#initialize と
  明確に区別されていますから、「可読性に劣る Python 」のような混乱はありません

・PrivateやProtectedがない
 Ruby => Ruby にはメソッドの可視性を指定する private や protected があります
  (ただし、個人的にはこれら可視性を宣言するよりも、public メソッドの名前の
   前(または前後に) '_' あるいは '__' を付けるスタイルを好みます )
  また Ruby には名前の先頭に付ける '_' や '__' について、言語としての「強制」は無く、
  命名スタイルはプログラマの判断に委ねられています

・メソッドの第一引数が予約されている
 Ruby ==> 最初からオブジェクト指向言語としている Ruby では、(コードが self だらけに
  なってしまう)「Python のような冗長で可読性に劣る規約の強制」はありません
  Smalltalk と同様に、メソッド呼び出し先として自身を「明示したい時にだけ」
  疑似変数 self を、親クラスを「明示したい時にだけ」疑似変数 super を書くだけです

(まだ続くが、次で終わる予定)