3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rubyは何が違う? TypeScript・Python・PHPとコードで比較してみた

3
Last updated at Posted at 2026-03-13

最近Rubyを触る機会があり、普段使っているTypeScriptやPythonと何が違うのか気になったので整理してみました。
この記事では同じ処理をそれぞれの言語で書いて比較してみます。


Rubyの特徴

Rubyは「開発者が書きやすいこと」を重視して設計された言語です。
作者のまつもとゆきひろ(Matz)は「プログラマの幸福度」を重視してRubyを設計しました。

そのためRubyは

  • コードがシンプル
  • 柔軟な書き方ができる
  • メタプログラミングが強い

といった特徴があります。


1. すべてがオブジェクト

Rubyの大きな特徴はほぼすべてがオブジェクトであることです。

例えば数値でもメソッドを呼び出せます。

5.times do
  puts "Hello"
end

5という数値に対してtimesというメソッドを呼んでいます。

一方、Pythonでも数値はオブジェクトですが、このような書き方はできません。

for i in range(5):
    print("Hello")

Rubyでは「すべてがオブジェクト」という思想が強く、オブジェクト指向が言語全体に深く組み込まれているのが特徴です。


2. ブロック構文

Rubyにはブロックという仕組みがあります。

[1,2,3].each do |n|
  puts n
end

これは処理のまとまりをメソッドに渡す仕組みです。

同じ処理を
TypeScriptでは関数で書くことが多いです。

[1,2,3].forEach(n => {
  console.log(n)
})

Pythonでは通常のループになります。

for n in [1,2,3]:
    print(n)

Rubyではこのブロック構文が非常に多く使われます。


3. メタプログラミング

Rubyはメタプログラミングが非常に強い言語です。

例えば実行中にメソッドを追加することもできます。

class User
end

User.define_method(:hello) do
  "Hello"
end

このような柔軟な仕組みは

  • TypeScript
  • PHP

ではあまり一般的ではありません。

Rubyのフレームワーク
Ruby on Rails
が「少ないコードで書ける」のは、このメタプログラミングを多く使っているためです。


4. コードの書き方の自由度

Rubyは書き方の自由度が高い言語です。

例えば条件式でもこのように書けます。

puts "Hello" if true

一方で
TypeScriptでは通常こう書きます。

if (true) {
  console.log("Hello")
}

Rubyはコードを短く書ける表現が多いのも特徴です。


5. シンボル(Symbol)

Rubyにはシンボルというデータ型があります。

Ruby

user = { name: "Taro", age: 20 }

これは次のような書き方と同じ意味になります。

user = { :name => "Taro", :age => 20 }

シンボルは主に

  • ハッシュのキー
  • メソッド名

などで使われます。

他の言語では似た概念として

  • TypeScript → オブジェクトキー
  • Python → 辞書キー
  • PHP → 連想配列キー

がありますが、Rubyのシンボルは軽量で再利用されるオブジェクトという特徴があります。


6. 関数定義の比較

次に「2つの数値を足す関数」を書いてみます。

Ruby

def add(a, b)
  a + b
end

TypeScript

function add(a: number, b: number): number {
  return a + b
}

Python

def add(a, b):
    return a + b

PHP

function add($a, $b) {
    return $a + $b;
}

ここで大きく違うのが型システムです。

  • TypeScript → 静的型付け
  • Ruby / Python / PHP → 動的型付け

TypeScriptでは型を書く必要がありますが、他の3つの言語では型を書かなくても動作します。


動的型付けでも型を扱う方法

最近では動的型付けの言語でも型サポートが追加されています。

例えばPythonでは型ヒントを書くことができます。

def add(a: int, b: int) -> int:
    return a + b

Rubyでも

  • Sorbet
  • Steep

などのツールを使うことで型チェックが可能です。


まとめ

Ruby、TypeScript、Python、PHPを比較すると、それぞれ重視しているポイントが違うことが分かります。

  • Ruby → 書きやすさ・柔軟性
  • TypeScript → 型による安全性
  • Python → シンプルで読みやすい
  • PHP → Web開発の手軽さ

同じ処理を書いて比較してみると、言語ごとの設計思想の違いが分かって面白いと感じました。


3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?