RubyとJava
RubyとJavaで、public,private,protectedの意味が微妙に違ってて混乱する。なにか違和感があると思ったら、Rubyにはインスタンス変数へのアクセス修飾子がそもそも存在しなくて、他のインスタンスからは直接参照できないからか。対して、javaはインスタンス変数にprivateを指定しても同一クラスから作られたインスタンスなら参照できる。
class H def initialize(foo) @foo = foo end def huga(h2) h2.foo # 同じクラスのインスタンスを渡してもエラー end end
class Hoge { private int foo; Hoge(int foo) {this.foo = foo} int huga(Hoge h) {return h.foo; /* できちゃう! */} }
eclipseが補完してくれなかったら気づかなかったと思う。
というわけで、最近はjavaに首ったけなのです。上記みたいな不満はありますが、基本的にはいい言語だと思います。
その他不満点