プログラム言語による書き方の違い
変数 i について、0から9まで繰り返し、奇数・偶数の判断をします。
同じ処理を、Python、Java、C#、Ruby、JavaScriptで書くとどうなるかを示します。
Python
i = 0
while i < 10:
if i % 2 == 1: #iを2で割った余りが1
print(str(i) + "は奇数です")
else:
print(str(i) + "は偶数です")
i += 1
print("end")
Java
public class Sample{
public static void main(String[] args) {
int i = 0;
while (i < 10) {
if (i % 2 == 1) //iを2で割った余りが1
{
System.out.println(i + "は奇数です");
}
else
{
System.out.println(i + "は偶数です");
}
i++;
}
System.out.println("end");
}
}
C#
namespace Sample
{
class Program
{
int i = 0;
while (i < 10) {
if (i % 2 == 1) //iを2で割った余りが1
{
Console.WriteLine(i + "は奇数です");
}
else
{
Console.WriteLine(i + "は偶数です");
}
i++;
}
Console.WriteLine("end");
}
}
Ruby
i = 0
while i < 10 do
if i % 2 == 1 #iを2で割った余りが1
puts i.to_s + "は奇数です"
else
puts i.to_s + "は偶数です"
end
i += 1
end
puts "end"
JavaScript
var i = 0;
while (i < 10)
{
if (i % 2 == 1) //iを2で割った余りが1
{
console.log(i+ "は奇数です");
}
else
{
console.log(i+ "は偶数です");
}
i++;
}
console.log("end");
各言語での違い
ごく単純なプログラムですが、
- Python:8行
- Ruby:10行
- JavaScript:14行
- Java:17行
- C#:19行
となります。
考察
私自身はRubyのみ開発経験がありません。今回比較するにあたり、本(たのしいRuby)で学習しました。
- JavaとC#はクラスが必須ですが、Python・Ruby・JavaScriptは必須ではありません。
- While文やIF文など制御ブロックを表すのに、Java・C#・JavaScriptは{}(中括弧)を用います。
Rubyは end でブロックの終了を表します。
Pythonはインデント(字下げ)でブロックを表します。 - Java、C#、JavaScriptは行末に ;(セミコロン)が必要です。
- Python、Ruby、JavaScriptは変数の型指定が不要です。
代わりにPython、Rubyでは出力時に数値から文字に変換する必要があります。
こうしてみるとJavaScriptも悪くないように思いますが、JavaScriptでSeleniumを使う場合はNode.jsという、実行環境をインストールする必要があり、そちらの学習も必要になります。非同期処理やコールバック関数といった概念を理解する必要があり、初心者にはハードルが高いです。
PythonとRubyの比較は悩むところです。メジャー度合いではPythonですが、Rubyは愛好家も多く、かなり使いやすそうです。私も普通にWebアプリを作るならPytonよりRubyを採用する気がします。
ただSeleniumに限れば、メジャーで情報量も多いPythonの方が取り掛かりやすいのではないでしょうか?