Ruby公式サイトの他言語とRubyの違いを眺めてみて

Ruby公式サイトの他の言語とRubyの違いを眺めてみて

www.ruby-lang.orgの多言語からのRuby入門が面白かった。
他の言語と同じところ、違うところがまとめられている。
個人的にPythonとJavaが得意で、そこを眺めてみたが、こういう風にまとめられていると導入しやすいと思う。
気になったところを書き出してみる。

irbと言われる対話型の実行環境がある

この環境はとても便利。使ったことのないクラスを使う必要がある場合や、普段から使っているけどなかなか覚えられないsubstringの区切り位置を確認するときに重宝する。
文字列の2バイト目から5バイト欲しいときはどう指定するのか。対話画面があるとすぐに試せる。

今でこそ、Javaにもjshellができたが、それまでは小さなプログラムを作って、コンパイルして実行する必要があった。Eclipse 2の頃はスクラッチパットがあったが、今はどうなのだろう。
irbでいろいろ試しながら、スクリプトを作ることにしよう。

三重引用符で複数行リテラル

これは、Pythonでも好きなところ。Rubyでも使えるのは良いことだ。
Javaだったら、StringBuilder使うのも面倒なので、Propertiesにでも書き出しておくだろうか。

リストは[]、辞書は{}

PythonのTupleは無いようだ。あまり使わないから、どっちらでもよいが。

メソッド呼び出しの括弧はオプション

さすがPerlの次の言語だ。メソッドの呼び出しに括弧がいらない。Perlもそうであった。
昔のVBの様に戻り値の無いときの利用なら許容範囲かと思う。

True、Falseはtrueとfalse。Noneの変わりはnil。

PythonもTrue、Falseはtrueとfalseになってくれれば良いのに。
Noneとnilはnullになってしまえば良いのに。

importの代わりにrequireを使う

JRubyから始めたので、requireとimportの違いがいまだによくわからない。

MyClass.new()

インスタンスの作成が独特。new()もメソッドの扱いなのだろうか。
PythonならMyClass()。Javaならnew MyClass()。知ってしまえば、どれでも大した差はないか。

==とequals()

Rubyで文字列の比較は==。Javaならequals。
Rubyにはequalsは無く、equal?がある。しかしRubyのequal?はオブジェクトの比較用。Javaとは逆の動きだ。

まとめ

RubyもPythonもJavaも違いがあって面白い。
本当は何か1つの言語を極めるべきなのかもしれないけど、同じ言語ばかりだと飽きてしまうので、あれもこれも使っていきたいと思っている。

同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA