#【JavaからRubyへ!!】
Javaを学びつつ、Rubyを習得することが現時点の目標です。
Ruby 公式リファレンス にJavaとRubyの比較がされていました。
公式リファレンスの「JavaからRubyへ」を参照し、自分用メモとして残します。
##JavaからRubyへ
Javaは成熟は成熟しており、処理速度は高速であるが、とても冗長である。
JavaからRubyへ移行すると、コードの量を大幅に削減することが可能になる。
##Javaとの類似
メモリはGC(ガベージコレクション)によって管理される。
オブジェクトは強い型付けがされる。
メソッドにpublic、private、protectedの指定可能。
埋め込み型のドキュメントツールが用意されている。
Ruby用のツールRDocで生成されたドキュメントは、javadocで生成したドキュメントにとてもよく似ている。
※ガベージコレクションとは、コンピュータプログラムの実行環境などが備える機能の一つで、実行中のプログラムが占有していたメモリ領域のうち不要になったものを自動的に解放し、空き領域として再利用できるようにするもの。
(IT用語辞典 e-Words より)
##Javaとの相違
・コードをコンパイルする必要がなく、単に実行するだけ。
・異なったサードパーティ製のGUIツールキットがいくつか存在する。
・クラスなどの定義の最後にはendキーワードを使う。コードのまとまりを波括弧で括ることはしない。
・importの代わりにrequireを使う。
・すべてのメンバ変数はプライベート変数です。オブジェクトの外側からはメソッドを介してそれらにアクセス。
・メソッド呼び出しの括弧は基本的にオプションで、しばしば省略される。
・数値も含めて、すべてのものはオブジェクト
・静的型チェックなし
・変数名はただのラベル。変数名は関連付けられた型を持たない。
・型宣言はない。必要に応じて新しい変数名を割りあてれば、それらを利用できる。
例)int[] a = {1,2,3};ではなくa = [1,2,3]
・キャストはなく、メソッドを呼び出すだけ。例外を確認場合は、コードを実行前にUTで示す。
・コンストラクタは常に”initialize”という名前になる。(クラス名ではない)
・インターフェイスの代わりにMix-inを使う。
・XMLよりもYAMLが好まれる。
・nullはnil
・== と equals( ) の扱いが異なる。
等価かどうかを評価したい時は、== を使う。【Javaは、equals( ) 】
二つのオブジェクトが同一かどうかを確認したい時は、equal?( ) を使う。【Javaは、==】
##さいごに。
これらを参考に類似と相違についても頭の片隅に置きつつ、プログラムを理解していきたい。
自分のような人間が、技術力をあげていくには、まず量をこなすことが大事だと思う。
これからもどんどんアウトプットを増やしていきます。