私は無能なエンジニアとして現役で働いているダメ系ITエンジニアと申します。
新卒採用されていからずっとJavaエンジニアのプログラマーとして働いていたのですが、あるときRubyの案件に参画することになりまして、一時期Rybyのエンジニアを3年ほどやっていました。
そこでJavaからRubyに転身したときに感動したコードの書き方がありましたので、4つ紹介します。
ただし、無能なエンジニアということでかなりしょーもない事だと思います。
有能で上級エンジニアであれば、クラスがどうのオブジェクト指向やスクリプト言語がどうのいった、高度な違いについて紹介されると思いますが、残念ながら私は無能なので、初級エンジニアが思った程度のことになりますので、あしからず。
JavaからRubyエンジニアに転身したときに感動したコードの書き方4選

if文が1行で書ける
Java
if (human == “〇” ){
System.out.println(“有能”);
}
if (human == “×” ){
System.out.println(“無能”);
}Ruby
puts “有能” if human == “〇”
puts “無能” if human == “×”Javaのif文はカッコの中に処理を書くので、改行した書き方が一般的になりますが、Rubyだと右に条件と左に結果として1行で書くことができます。
勿論、RubyでもJavaと同じように改行して書くことができます。
1行で書くことができるのでシンプルだ!ということになりますが、デバッグしたときに改行があった方がステップごとに処理が終えるので、どちらの書き方が良いのかは好み次第になると思います。
returnがいらない
Java
String getName() {
String name = “ダメ系ITエンジニア”;
return name;
}Ruby
def getName
name = “ダメ系ITエンジニア”
endJavaだとreturnしないと戻り値を返すことができませんが、Rubyだと例のコードのように変数に代入して終了してしまっているのに戻り値が返ります。
勿論、Rubyでもretrueを明示的に書いて変えることもできるのですが、retrunを省略して書く書き方に慣れてしまったので、例のコードで私は書いていました。
でも、RubyからJavaに戻った時に、Rubyの癖が残っていてある条件文にreturnを書き忘れてバグを出してしまったことがありましたので、気を付けるようにしましょう。
基本的には、Javaでは戻り値の型を指定した場合、コードでその型の戻り値を返却しないとエラーになるので、returnの書き忘れというのはないとは思いますが…。
型指定を省略できる
Java
int id = 1;
String name = “ダメ系ITエンジニア”;Ruby
id = 1
name = “ダメ系ITエンジニア”静的型付け言語のJavaでは型を必ず指定しないといけないので、例のコードのように数値ならint、文字列ならStringといったような型を指定します。
でもRubyだと型が不要で1なら数値型と”ダメ系ITエンジニア”なら文字型で代入されます。
誤解がないように言っておきますが、動的型付け言語のRubyでは型指定を省略できるだけで型は存在していて、「変数.class」で確認することができますので覚えておきましょう。
戻り値を2つ返却できる
Java
String getName() {
String dame1 = “ダメ系”;
String dame2 = “ITエンジニア”;
return dame1, dame2;
}Ruby
def getName ()
String dame1 = “ダメ系”;
String dame2 = “ITエンジニア”;
return dame1, dame2;
endJavaは戻り値を1つしか返却できないので、例のコードはエラーになります。
でも、Rubyだと例のコードのように2つ以上の戻り値を返却できてしまいます。
そのため、Javaだと1つの配列に複数の情報を格納して、1つの配列として返却するなどの方法で返却する工夫をしなければならないのですが、Rubyだとそんなことせずに簡単に2つ以上の戻り値を返却することができてしまうので、便利で楽でした。
まとめ
この記事では、JavaからRubyエンジニアに転身したときに感動したコードの書き方4選について紹介しました。
エンジニアになってからJava一筋だったのですが、Rubyに転身したことでこの記事で紹介したようなことを肌で感じることができましたし、何よりも新しい言語を習得するというのはエンジニアとして刺激になってとても良い経験でした。
また、新しい言語を習得することでSESエンジニアや客先常駐派遣型のエンジニアであれば、参画できる案件数を増やすことができますので、プライベートでも仕事でも新しい言語を習得してエンジニアとしてのスキルの幅を広げてみてはいかがでしょうか?

