主な違い
今までrubyを学習してきて、仕事でjavaを使うことになりました。
rubyと違うところがあったので、自分なりにまとめてみたいと思います。
Java
コンパイラによってコンパイルされる静的型付け言語
Ruby
インタプリタによって解釈されるスクリプト言語で、動的型付け言語
上記が一般的に説明されている説明となります。
自分の言葉で説明すると、
Java
は型を宣言するのでコードが長くなるが、大規模開発などたくさんの人が関わる開発に向いている。習得の難易度はRuby
よりも高め。Ruby
は、型を宣言する必要がなく短くて直感的にコードを書ける。アジャイル開発に向いている。習得の難易度が低いことや、日本語のドキュメントが充実しているので、プログラム初心者に向いている。
システムの違い
サーバーやデータベースの違いについて、表を作りました。(下記)
Ruby | Java | |
---|---|---|
Railsサーバー | Tomcat | |
Controller | Controller, Service(ビジネスロジック) | |
Model | DAO,DTO | |
ERB | Thymeleaf |
**ServiceやDTO,DAOに関しては勉強中のため、認識に誤りがありましたらご指摘くださいませ。
二つの言語に違いがありますが、大まかな
「ユーザーから受けたリクエストをHTTPメソッドでサーバーに送ってデータベースと情報をやりとりしてレスポンスを返す」
という流れは同じでした。
大きく違いを感じたところとしては
- Rubyではクエリの発行はActiveRecordで自動的にやってくれていたが(Post.allと書くだけでできるみたいな感じ)、JavaではSQLを自分で書かないといけない
- HTMLを書いているときに、eclipseで書いていたのですが、毎回ビルドしないとブラウザに反映されない。
- Javaはとにかく記述量が多い!
具体的な書き方の違い
Javaは事前に型宣言が不要
number = 1000
name = "Qiita"
int number = 1000;
String name = "Qiita";
変数展開
"私の名前は#{name}です"
"私の名前は" + name + "です"
if文
if A > B
#処理A
elsif B == c
#処理B
else
#処理C
end
if (A > B){
//処理A
} else if (B == C){
//処理B
} else {
//処理C
}
配列
nums = [1, 2, 3]
nums[0]
int nums[] = {1, 2, 3};
nums[0];
メソッド
def sum(a, b)
return a + b
end
num = sum(1, 2)
public static int sum(int a, int b){
return a + b;
}
int num = sum(1, 2);
クラス
class Car
#処理
end
police_car = Car.new
class Menu{
//処理
}
Car police_car = new Car();
まとめ
RubyからJavaに切り替えて本当に思ったのは、
「Rubyってめっちゃ簡単なんだな!」ということ。
Rubyで考えていなかったこと(考えなくても良かったこと)をJavaではすごく考えないといけないので、
処理の流れだったり、型がどうなっているのか意識するようになりました。
これからはJavaで学んだこと、気づき、大変だったことなど投稿していこうと思います。