Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

昨今では、プログラミングなどのIT学習が注目されており、非エンジニアが論理的思考を強化するために学んだり、学校教育でもプログラミング教育が取り入れられはじめています。

一口にプログラミングといっても、世の中には多くのプログラミング言語が存在しており、軽く並べるだけでも Ruby、Python、Java、C++、C# …のように、非常に多くの言語が存在している状況です。

多くの言語が存在する中で、最初に何のプログラミング言語を学習しようか?という悩みに多くの人が遭遇したでしょう。

この記事では、注目のプログラミング言語であるRubyとPythonについて、その特徴の比較と、基本的な構文の違いについて紹介します。

RubyとPythonの特徴

最初は、RubyとPythonの特徴を比較してみましょう。

Rubyは日本人が開発したプログラミング言語です。主にWebアプリケーションを開発する時に用いられています。近年では企業の基幹システムなどの多くもWebアプリケーションで作られていることが多く、Webアプリケーションの人気上昇と共にRubyの人気も上がっています。

例えば、有名なTwitterやクックパッド、食べログもRubyを使って開発されてきました。

Rubyの求人を見ると開発案件の多くは、Ruby on Railsのフレームワークを使ったWebアプリ開発が大半をしめており、現状はRubyといえは「RailsでのWebアプリケーション開発」と言える状況です。

PythonはAI開発の人気から、近年のプログラミング言語ランキングでは常に上位にいる人気のプログラム言語です。

Pythonが生まれたのは1990年であり、元々は機械学習などのAI向けに開発された言語ではありませんでしたが、シンプルながら汎用性が高い構文が学習しやすく、「numpy」などの高度な数値計算ライブラリが豊富であることから、AIの研究者などで人気の言語となり、結果的にAI開発の多くでPythonが使用されています。

求人数を比較

フリーランスのための案件紹介を行っているレバテックフリーランスで、2021年4月時点でのRubyとPythonの求人数を比較してみました。

その結果、Rubyの求人案件数は「1588件」、Pythonの求人案件数は「1477件」でした。

当然、案件の数は時期によって変動がありますが、現状ではおおよそRubyとPythonの求人数は同じです。

ただし、今後は機械学習などの人気などにより、Pythonの求人が多くなっていくと予想されています。

スマホアプリは?

現状のスマホアプリ開発は、iOSならSwift、AndroidならJavaが用いられることが一般的ですが、RubyとPythonでもスマホアプリ開発者が可能です。

RubyでiOSやAndroidのスマホアプリの開発がする場合は、RubotoやRUBYMOTIONをというフレームワークを使用すると、RubyでもAndroidやiOSのスマホアプリを作成できます。

また、Pythonであれば「kivy-ios」を使用してiOSアプリ開発したり、Androidであれば「Buildozer」を使ってアプリ開発をすることが可能です。

とはいえ、やはり現状のアプリ開発案件の多くはSwiftやJavaで開発するものが多くを占めています。そのため、スマホアプリ開発者を目指しているのであれば、これらの言語を学習したほうがよいでしょう。

構文の違いを確認しよう

ここからは、RubyとPythonの基本的な構文の違いについて確認をしていきましょう。

変数の宣言

変数の宣言方法を見ていきます。RubyとPythonはどちらも変数の動的型付けであるため、変数の宣言時に型の指定をしません。

Rubyでの変数宣言

str = "Ruby"
i = 100
array = [1,2,3,4]

Pythonでの変数宣言

str = "Python"
i = 100
array = [1,2,3,4]

このように、基本的にRubyとPythonで変数の宣言方法は同じです。

ポテパンダの一言メモ

Rubyでは変数名の最初の一文字によって、ローカル変数・インスタンス変数・クラス変数・グローバル変数・定数のいずれかに区別されます。

  • ローカル変数:小文字から始める(例:names)
  • インスタンス変数:@から始める(例:@name
  • クラス変数:@@から始める(例:@@name
  • グローバル変数:$から始める(例:$name
  • 定数:アルファベット大文字から始める(例:NAME

関数の宣言

メソッド(関数)宣言の構文の違いについても確認しましょう。一般的に定義済の処理のことをRubyではメソッドと呼び、Pythonは関数と呼びます。

Rubyでのメソッド宣言

def メソッド名(引数1、引数2…)
  処理
end

Pythonでの関数宣言

def 関数名(引数1, 引数2, ...):
    処理
    return 戻り値

このように、defキーワードでメソッド(関数)を定義すること自体は同じですが、Rubyばdefキーワードからendまでがメソッドのブロックとなります。それに対し、Pythonはインデントがされている文を同じブロックとして扱います。

クラスの宣言

RubyとPythonは共にオブジェクト指向言語であるため、クラスが使用できます。

Rubyでのクラス宣言

#基本的なクラス
class クラス名
  def メソッド名
     処理
  end
end

#クラスの継承
class クラス名 < 継承元のクラス名
  def メソッド名
     処理
  end
end

Pythonでのクラス宣言

#基本的なクラス
class クラス名:

val = "クラス変数"

  def __init__(self):
    コンストラクタ

  def 関数名(self):
    処理


#クラスの継承
class クラス名(継承元クラス):

  def メソッド名(self):
    処理

このようにクラス宣言では、RubyとPythonでは宣言方法に多くの違いがあります。特にPythonでは、クラスのメソッドの第一引数には必ずselfを付けるのが特徴的です。

ファイルの入出力

ファイルの入出力についても比較してみましょう。コードの内容はかなり異なりますが、いずれもシンプルなコードでファイルの入出力ができます。

Rubyでのファイル書き込み

# ファイルの読み込み
File.open('test.txt') do |file|
    file.each_line do |subject|
      puts subject
    end
end

# ファイルの書き込み
File.open("test.txt", mode = "w"){|file|
  file.write("ruby file write\n")  # ファイルに書き込む
}

Pythonでのファイル書き込み

# ファイルの読み込み
file = open('test.txt', 'r') 
datalist = file.readlines()  
for data in datalist:
  print(data)

f.close()

# ファイルの書き込み
file = open('test.txt', 'w')
file.write('こんにちは\n')
file.close()

まとめ

RubyとPythonそれぞれの特徴と、構文の違いについて解説してきました。

AI開発などの人気により、徐々にPythonの人気が増していますが、Rubyもその効率的でモダンな構文や、Railsの人気によりまだまだ需要は続くでしょう。

【関連記事】
Ruby on Railsとは?概要と特徴を知ろう!【初心者向け】

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。