TL

Language Profile

Ruby

まつもとゆきひろ(Matz) / 1995年登場

「書いて楽しい」を重視した日本生まれのオブジェクト指向言語Ruby on Rails により Web 開発で一世を風靡し、今もスタートアップで人気

TL;DR要点だけ先に
  • 1.「書いて楽しい」を重視した純 OOP 言語。
  • 2.Rails で Web 開発の生産性を一変させた。
  • 3.素早く Web を立ち上げるなら今も有力。

Specifications

基本情報

Introducing

Ruby のロゴ
Ruby「書いて楽しい」を重視した日本生まれのオブジェクト指向言語。Ruby on Rails により Web 開発で一世を風靡し、今もスタートアップで人気。
型付け
動的強い型付け
実行方式
インタプリタYARV)
パラダイム
オブジェクト指向純粋)
登場
1995年まつもとゆきひろ(Matz)
この言語の強み
人間中心で書きやすく表現力が高いRails により Web 開発が高速
活躍する領域
Web アプリRuby on Rails)スタートアップの高速開発 / スクリプト・自動化

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. 人間中心で書きやすく表現力が高い
  2. Rails により Web 開発が高速
  3. メタプログラミングが強力

Trade-offs

考慮すべき点

  1. 実行速度は速くない
  2. 並列処理は不得手(GVL)
  3. 近年は他言語に押される面

Best Fit

こんな用途に向く

Web アプリ(Ruby on Rails)スタートアップの高速開発スクリプト・自動化

Deep Dive

もっと詳しく

どんな言語か

Ruby は 1995 年にまつもとゆきひろ(通称 Matz)が公開した、日本生まれの純オブジェクト指向言語です。設計思想の中心は「プログラマが書いていて楽しいこと」。数値や nil まで含めてすべてがオブジェクトで、メソッド呼び出しの連なりとして自然にコードを書けます。

表現力とメタプログラミング

Ruby の魅力は、コードを実行時に組み立て直せる柔軟さにあります。メソッドを動的に定義したり、ブロックで処理を渡したりと、少ない記述で意図を表現できます。

# ブロックを渡して繰り返す(each が主役)
[1, 2, 3].each do |n|
  puts n * 2
end

この表現力が、ドメイン固有言語(DSL)風の読みやすい記述を可能にしています。

得意なこと・不得意なこと

  • 得意: Web アプリ開発。フレームワーク Ruby on Rails は「設定より規約」を掲げ、開発の生産性を一変させました。
  • 不得意: 実行速度は速いほうではありません。並列処理も GVL(グローバルロック)の制約で、CPU を複数コア同時に使い切る用途には向きません。

つまずきやすいところ

「書き方の自由度」は諸刃の剣です。同じ処理を何通りにも書けるため、チームでスタイルが割れがちです。メタプログラミングを多用したコードは、定義箇所が追いにくく読み解きに苦労します。

どんな場面で使うか

スタートアップや受託開発で、素早くプロダクトを立ち上げたい場面で根強い人気があります。Web サービスの土台を短期間で形にし、仮説検証を回す用途に向いています。

Language Decision

Rubyを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

Web アプリ(Ruby on Rails)

比較で見る軸

型付け: 動的・強い型付け / 実行方式: インタプリタ(YARV) / パラダイム: オブジェクト指向(純粋)

導入後に効く点

Rails により Web 開発が高速

先に潰すリスク

実行速度は速くない

数字・仕様の読み方
型付け
動的・強い型付け
実行方式
インタプリタ(YARV)
パラダイム
オブジェクト指向(純粋)
登場
1995年
まつもとゆきひろ(Matz)

判断チェックリスト

  • 自社の用途が「Web アプリ(Ruby on Rails) / スタートアップの高速開発」に近いか確認する。
  • 強みである「人間中心で書きやすく表現力が高い」が本当に評価軸になるか確認する。
  • 注意点の「実行速度は速くない」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

Web アプリ(Ruby on Rails)スタートアップの高速開発スクリプト・自動化

First Step

Hello, World!

puts "Hello, World!"
公式ドキュメント