Ruby (1995年)(ルビー)
Rubyは1995年12月まつもとゆきひろ (Matz) が開発した日本発のオブジェクト指向プログラミング言語で「Designed for programmer happiness」(プログラマの幸せ設計) ・全てがオブジェクト・動的型付け・Smalltalk+Perl の良い所取り採用しRuby on Rails (2004年David Heinemeier Hansson)・GitHub (2008年-)・Shopify 等で大量採用された。
Ruby (1995年)
概要
Rubyは1995年12月23日まつもとゆきひろ (Matz・1965-) が開発した日本発のオブジェクト指向プログラミング言語で「Designed for programmer happiness」(プログラマの幸せ設計) ・全てがオブジェクト (純粋OOP・Smalltalk 1972年由来) ・動的型付け・Block (クロージャ)・Mixin (Module 経由多重継承)・Smalltalk+Perl+Lisp の良い所取り採用しRuby on Rails (2004年David Heinemeier Hansson・37signals→Basecamp)/Sinatra (2007年・軽量Web)/RSpec (2007年BDD テスト)/Sass (2006年CSS プリプロセッサ・後Dart Sass)/Jekyll (2008年GitHub Pages)/Discourse (2013年フォーラム)/GitHub (2008年-Ruby on Rails で実装・後パフォーマンス問題で一部Go/Rust 移行) ・Shopify (Ruby on Rails の最大成功例) で大量採用された。Ruby 3.0 (2020年・3倍高速化目標 Ruby 3x3 Project)・Ruby 3.4 (2024年12月最新) と継続改良。
主な特徴・仕組み
- 発表: 1995年12月23日まつもとゆきひろ・島根県松江市
- 名前由来: 真珠 (Pearl・Perl の競合) と七月の誕生石ルビーから命名
- 言語パラダイム: 純粋OOP+関数型機能+メタプログラミング
- 型付け: 動的型付け
- 解釈実行: Ruby インタプリタ (MRI・YARV) ・後JIT (MJIT 2.6/YJIT 3.1)
- マスコット: なし (Diamond カット形状のロゴ・Ruby gem)
- 大きな影響: Smalltalk (純粋OOP) + Perl (テキスト処理) + Lisp (Block・関数型)
Ruby 主要バージョン (1995-2024年)
| バージョン | 年 | 主な追加機能 |
|---|---|---|
| Ruby 1.0 | 1996 | 初の安定版 |
| Ruby 1.6 | 2000 | バグ修正・パフォーマンス改善 |
| Ruby 1.8 | 2003 | 広範採用・Ruby on Rails 1.0 (2005年) 基盤 |
| Ruby 1.9 | 2007 | YARV (Yet Another Ruby VM) ・大幅高速化 |
| Ruby 2.0 | 2013 | Keyword Arguments・Refinements |
| Ruby 2.6 | 2018 | MJIT (Method-based JIT) 実験 |
| Ruby 3.0 | 2020 | Ractor (Actor 並列)・Type Profiler・Fiber Scheduler |
| Ruby 3.1 | 2021 | YJIT (新JIT・Shopify 主導)・Hash Literal Value Omission |
| Ruby 3.2 | 2022 | WASI 実験 (WebAssembly)・YJIT 改良 |
| Ruby 3.3 | 2023 | YJIT パフォーマンス向上・RJIT |
| Ruby 3.4 | 2024 | YJIT 安定化・Prism Parser 統合 |
Ruby on Rails (2004年) 革命
Ruby 主流化の起点:
- Ruby on Rails (RoR・2004年David Heinemeier Hansson): フルスタックWeb フレームワーク・MVC・Convention over Configuration
- 特徴: Active Record (ORM)・Action Pack (Controller+View)・15分でブログ作成デモ (2005年)
- 採用: Basecamp (37signals 自社)・GitHub (2008年・後一部移行)・Twitter (2008-2010年・後Scala 移行)・Shopify (2006年-現代)・Airbnb (2008年-)・Hulu・Bloomberg・SoundCloud
- 歴史的意義: 「Web 開発の急成長言語」確立・Ruby 採用爆発
- 後継: Sinatra (2007年・軽量Web)・Hanami (2016年・モダンRoR 代替)
まつもとゆきひろ (Matz) の物語
Ruby 開発者:
- 1965年生まれ: 鳥取県米子市・後島根県松江市拠点
- 大学: 筑波大学計算機科学
- キャリア: 1990年代日本企業でプログラマ・1995年Ruby 開発開始
- 動機: 「Perl は完璧でなく・Smalltalk は遅すぎる・両者の良い所取りを作りたい」
- 2007年-: Heroku Chief Architect → ngmoco → Heroku 再 → 楽天技術研究所 (2014-2018年) → クックパッド (2018年-)
- 2007年Ruby Hero Award: コミュニティ初代
- 影響: 日本のIT 界に「日本人が世界的に主流言語を作れる」自信・Ruby Kaigi (日本最大の Ruby カンファレンス・2006年-)
GitHub (2008-2014年Ruby on Rails)
Ruby の最大成功例:
- GitHub (2008年4月): Chris Wanstrath・PJ Hyett・Tom Preston-Werner・Ruby on Rails で実装
- 成長: 2008年起源→2024年1億+ ユーザー・4億+ リポジトリ
- 2018年6月Microsoft 買収 ($7.5B): 史上最大規模のソフトウェア買収
- 言語移行: 2014年以降パフォーマンス問題でメインロジック一部Go/Rust 移行・但しRuby on Rails 主体は継続
Shopify (2006年-) Ruby の現代帝国
EC プラットフォーム巨人:
- Shopify (2006年Tobias Lütke・カナダ): Ruby on Rails で実装・現代も Ruby ベース
- 規模: 2024年200万+ 加盟店・全世界EC・$200B GMV (Gross Merchandise Volume)
- YJIT (Ruby 3.1 2021年): Shopify 主導開発・本番動作でRuby 3倍高速化
- 歴史的意義: 「大規模本番システムでRuby on Rails 継続成功」の証明
採用システム (2004-2024年)
- Web フレームワーク: Ruby on Rails (Basecamp・GitHub・Shopify・Airbnb・Hulu・Bloomberg)
- EC: Shopify (世界最大Ruby アプリ)
- テスト: RSpec (BDD・現代Ruby テスト主流)・Cucumber (BDD・他言語へ移植)
- CMS: Discourse (フォーラム・Ruby on Rails)・Spree Commerce
- 静的サイト: Jekyll (GitHub Pages デフォルト・2008年-)
- CSS: Sass (Ruby Sass→Dart Sass 2019年移行)
- 設定管理: Chef (Opscode・後Progress Software)・Puppet (一部)
- DevOps: Capistrano (デプロイ)・Vagrant (HashiCorp 2010年)
関連技術との違い
| 項目 | Perl (1987) | Java (1995) | Ruby (1995) | JavaScript (1995) |
|---|---|---|---|---|
| 哲学 | TIMTOWTDI | WORA | Programmer happiness | Web 上での動作 |
| 用途 | Unix スクリプト | エンタープライズ | Web (Rails)・スクリプト | Web (Browser+Node.js) |
| OOP | あり (Perl 5) | あり (純粋でない) | **純粋OOP (Everything is an object) ** | Prototype-based |
| Web フレームワーク | Catalyst (限定) | Spring (主流) | **Ruby on Rails (主流) ** | React/Vue/Angular |
| 採用率 (2024) | 縮小 | 高 | **減少傾向 (Rails 縮小・Shopify 維持) ** | 最多 |
よくある質問 (FAQ)
Q1: なぜRuby on Rails は2010年代以降縮小傾向か? A: (1) パフォーマンス問題 (Ruby は動的型付け・GIL でマルチスレッド限定) ・(2) Twitter (2010年Scala 移行) ・GitHub (Go/Rust 一部移行) ・Airbnb (一部移行) 等の大企業が他言語移行・(3) JavaScript Node.js (V8 高速) ・Go (並行性) ・Python (AI/ML) の競合・(4) Ruby 開発者市場縮小・新卒入職率低下・但しShopify・Basecamp は2024年現在も Ruby on Rails 主体で運用継続。
Q2: Ruby 3x3 Project (2020年) とは? A: 2015年Matz 公式発表「Ruby 3.0 で Ruby 2.0 比3倍高速化」目標。2020年Ruby 3.0 リリース・YJIT (Shopify 2021年Ruby 3.1) で実現。Optcarrot ベンチマークで2.0比 3倍速達成・但し実用ワークロードでは1.5-2倍程度。
Q3: 現代でRuby 学ぶ価値は? A: 用途次第。Web 開発 (Ruby on Rails): Shopify・GitHub・Airbnb 等のレガシー保守・新規プロジェクトはJavaScript/TypeScript+Next.js or Python+Django が主流。スクリプト・DevOps: Chef/Puppet 等で限定的・現代はAnsible (Python) /Terraform (HCL) 主流。学習価値: 純粋OOP の理解・関数型機能・メタプログラミング・他言語に応用可能。
まとめ
- 1995年12月まつもとゆきひろ開発・日本発
- Designed for programmer happiness
- 純粋OOP・動的型付け
- Ruby on Rails (2004年) で大躍進
- GitHub/Shopify 等で大量採用