Ruby発の文化が、今のReact/Next/TypeScript界隈にまで影響を与えている話
Rubyが流行した時期(特に2000年代後半から2010年代前半)は、技術的にも文化的にも多くの革新がありました。
しかし、私はちょうどその頃育休中で、2008年から2018年くらいの間、全くキャッチアップをしていませんでした。
少しずつ復帰したときに、あまりの浦島太郎状態で驚いたことを覚えています。
Rubyそのものだけでなく、Ruby on Railsのエコシステムやコミュニティが育んだ考え方・文化が、Ruby以外の言語やフレームワークでも「あたりまえ」として受け入れられていたのです。
今でも受け継がれている思想として、以下に代表的なものを挙げます。
1. 開発者体験(DX)重視の文化
RubyやRailsは、開発者が「楽しく、直感的に」開発できることを重視しました。
たとえば:
- DSL(ドメイン固有言語)の多用(例:
routes.rb
,Capistrano
,RSpec
など) - コマンド一発で環境構築やスキャフォールディング(例:
rails new
,rails generate scaffold
)
→ 今では多くのフレームワーク(Django, Laravel, Next.jsなど)でも、「開発者の幸福度」が重要なKPIになっています。
用語補足:
- DX(Developer Experience):開発者体験。開発が快適かどうかという観点。
- DSL(Domain Specific Language):特定の目的のために設計された専用言語。Railsの設定やRSpecの記法がこれ。
- スキャフォールディング(Scaffolding):ソフトウェア開発においてプロジェクトの骨組みやテンプレートを自動生成する手法
- KPI:中間目標(を表す指標)
2. Convention over Configuration(設定より規約)
Railsで有名になったこの考え方。
-
app/models
,app/controllers
のようなお決まりの構造 - ファイル名やクラス名で、ある程度の動作が決まる(= 設定しなくていい)
用語補足:
- Convention over Configuration:「設定より規約」。設定を書かなくても、ルール(規約)に従えばうまく動く思想。
→ この考えは、今の多くのフレームワーク、ツール(例:Next.js, Spring Boot)に影響を与えています。
3. テスト文化(特にBDD)
RSpecの登場により、「人間の言葉に近いテストを書く」という流れが生まれました。
-
describe
,it
,context
などを使って、仕様のようにテストを書く - Red → Green → Refactor のTDDが流行
-
FactoryBot
やFaker
のような便利ツールの普及
用語補足:
- BDD(Behavior Driven Development):振る舞い駆動開発。「こう動くべき」という仕様をそのままテストにする手法。
- TDD(Test Driven Development):テスト駆動開発。テストを書いてから実装する流れ。
- FactoryBot:テスト用のダミーデータを簡単に作れるツール。
- Faker:名前や住所など、ランダムなデータを生成するライブラリ。
→ 今ではJavaScriptやPythonなど、他の言語にもRSpec風のライブラリ(Jest, Pytestなど)が影響を受けています。
4. コミュニティ主導の開発文化
Rubyのコミュニティは非常にオープンでフレンドリー。
- オープンソースに貢献しやすい空気
- Kaigi文化(RubyKaigiのような、開かれた技術イベント)
- コミュニティドリブンなGem(ライブラリ)エコシステム
用語補足:
- Kaigi文化:「○○Kaigi」という名前で開催されるエンジニア主導の技術カンファレンス(例:RubyKaigi, ReactKaigiなど)。
- Gem:Rubyのパッケージ。npmでいうところのパッケージに相当。
→ OSS文化や、エンジニア同士の協力・共有を当たり前とする価値観の広まりに貢献しました。
5. CLIツール文化
RailsやBundlerなど、Ruby由来のツールはCLI(コマンドラインインターフェース)がよく設計されており、CLI操作を自然なものとして普及させました。
-
rails console
,bundle install
,rake
など - 開発に必要なことがCLIから完結する
用語補足:
- CLI(Command Line Interface):コマンドライン上で操作するUIのこと。GUIよりもスピーディかつ柔軟。
→ 今の多くのモダンツール(npm
, yarn
, docker
, terraform
など)も、CLIベースでの統一感を持っています。
6. シンプルで読みやすいコードの美学
Rubyは「人が読むための言語」と言われることもあります。
-
unless
,until
,:symbol
,do...end
など、文芸的なコード表現 - メタプログラミングの力を「読みやすさ」に生かす文化
→ 可読性の重視や、コードレビュー文化の重要性にもつながっています。
まとめ
Rubyそのものを使っていなくても、私たちは今、Rubyが作った文化の上で開発しているとも言えます。
- 「開発しやすい」が重視されること
- テストが自然に書けること
- CLIツールを使いこなすこと
- OSSやコミュニティに貢献すること
こういった考え方は、React / Next.js / TypeScript界隈にも色濃く影響を与えていると感じます。
私のようにRubyに触れたことがない方も、少しその文化に目を向けてみると、今の開発がもっと楽しくなるかもしれません。