- 最近、筆者は祖父の古いビニールレコードを見つけ、この以前の時代のメディアが今でも問題なく再生できることに驚いた
- ビニールは音楽配信に大きな変化をもたらし、複製と共有を可能にして、現在に至るまで標準として残っている
- オーディオ共有の方法は進化したが、初期の方式も今なお機能している
- 複雑化する世界の中で、多くの人がシンプルさ、安定性、持続性をもたらすビニールへと回帰している
- Web技術が絶えず変化するなか、古いWebサイトも今なお十分に動作することを忘れがちだ
- 1990年代のシンプルなテキストWebサイトでさえ、当時と同じように現代のブラウザで読み込まれる
- Webサイトは時が経つにつれて、CSSによるスタイリング、JavaScriptによるインタラクション、WebSocketによるリアルタイム更新などの追加機能を得てきた
- しかしその基盤は、今なおページ、フォーム、セッションに置かれている
- Ruby on Railsは20年前、インタラクティブでデータベース駆動のWebアプリケーションを構築するための統合的なアプローチとして登場した
- Airbnb、Shopify、GitHub、Instacart、Gusto、Squareなど数多くの成功企業の基盤となり、現在では数兆ドル規模のビジネスがRuby on Rails上で動いている
- 効果的なツールは、抽象化によって複雑な作業を単純化する
- 自動車を例にすると、運転にはかつて燃料システム、タイミング、クラッチ機構への理解が必要だったが、今ではほとんどのドライバーは自分の車にギアがいくつあるかさえ知らない
- Ruby on Railsは、ログインセッション、CSRF保護、データベースORMなど、Web開発のベストプラクティスを使いやすいツール群としてパッケージ化した
- こうした抽象化により、開発者は技術的な細部よりもプロダクト構築に集中できる
- 今日ではほとんどの開発者はログインCookieの中身を知らないが、それでもそれがアプリケーションを動かしている
- RailsはWebの基本要素に忠実であることで成功した
- ページ、入力フィールド、フォームといったHTMLの基本要素を使う
- バックエンド中心のフレームワークとして、データの検証、処理、保存に集中するため、フォーム生成が簡単である
- JavaScriptはRailsの初期の成功以後に台頭した
- この10年間のWeb開発の進化によって、WebサイトはiPhoneアプリのような機能を持ちながら、依然としてWebサイトのままでいられるようになった
- Next.jsは今やスタートアップ構築のための最も一般的なツールとして使われている
- フロントエンド中心のフレームワークとして、動的なローディング状態、サーバーサイドレンダリング、複雑なコンポーネント構築を可能にする
- さらに別の数兆ドル規模の企業群がNext.js上で構築されており、こうしたWebアプリはRuby on Railsで構築されたものより高速で洗練されている
- Next.jsとその基盤技術であるReactは、現代のWebイノベーションの多くを牽引している
- 実際、Spotify、Netflix、Facebook、Stripeのような主流の消費者向けプロダクトは基本的にすべてこのスタック上で動作している
- これにより開発者は、Web標準の限界を超えて、高速でカスタマイズされたインタラクティブな製品を作れるようになる
- Next.jsが急速に普及するなかでも、Railsは依然として関連性を保っている
- 個人プロジェクトからAI企業に至るまで、新しいプロジェクトが今なおRailsを選んでいる
- 実際、Next.jsのような新しいJavaScript Webフレームワークの波は、Webアプリ構築をより難しくした
- こうしたツールは、動的データレンダリングやリアルタイムインタラクションといったより多くの機能を開発者に与える一方で、その代償として抽象化のレベルは下がっている
- Next.jsは実際にはネイティブiPhoneアプリと競合している
- 以前は、洗練されたユーザー体験のためにスタートアップはiPhoneアプリを必要としており、iPhoneアプリ開発はしばしば複数の専門開発者を要する複雑な工程だった
- Next.jsは、WebサイトがiPhoneアプリ品質に近づけるようにした
- 今日の最も洗練されたプロダクトの一部であるLinearやChatGPTは、Next.jsアプリケーションとしてリリースされ、モバイルアプリは副次的な優先事項として扱われた
- Railsはリリースから20年の間に進化し、JavaScriptインタラクション、バックエンド作業の管理、ローディング状態、リアルタイムアプリケーション向けツールなどを追加してきた
- モバイルアプリ開発も支援する。アプリケーションのパターンが進化するにつれ、RailsはHTMLベースの土台を保ちながら、こうしたパターンをフレームワーク機能として統合してきた
- ほとんどのWebアプリケーションは、今なおページ上のフォームで構成されている
- 求人掲示板、ベンダーシステム、ECストアなどがこれに当たる
- Next.jsでもこれらは構築できるが、Railsと比べると追加の開発時間が必要になる
- 最先端フレームワークを使うことは、頻繁なアップデート、新しいライブラリ、予期しない問題を通じて不安定さをもたらす
- Next.jsアプリケーションはしばしばVercel、Resend、Temporalのような複数のサードパーティサービスに依存し、プラットフォームリスクを高める
- 開発者が今なおRailsを選ぶのは、それが20年経った今でもWebアプリケーションを構築する最もシンプルで抽象化された方法だからだ
- 個人開発者は独力で動的かつリアルタイムなWebアプリケーションを作ることができ、エンタープライズチームは厳密なテストを支える複数のモデルとアクセス制御を備えたアプリケーションを構築できる
- Railsは小規模チームがより速く作業しつつ、開発・保守コストを削減できるよう支援する
- 筆者には両方のフレームワークを使った経験がある
- ベンチャー資金を受けたAIスタートアップFind AIをRailsで構築した
- 検索エンジンとして、複雑なバックエンド処理をシンプルなフロントエンド要件と組み合わせて扱えるRailsの能力から恩恵を受けた
- 現在は大規模データセットを探索・管理するためのChroma Cloudに取り組んでおり、Next.jsは高度なインタラクションとデータ読み込み要件を満たしている
- Railsは、現在のAI駆動アプリケーションの波の中で、古さの兆候を見せ始めている
- LLM(大規模言語モデル)のテキストストリーミング、Rubyの並列処理、AIコーディングツール向けの強力な型サポートといった領域で苦戦している
- それでもなお、依然として有効なツールである
- ビニールは音楽へのアクセスを広げ、産業を変えた
- 時間とともに音質は向上したが、初期の形式にも今なお価値がある
- The Köln Concertはビットレートに関係なく今なお人気がある
- 技術の世界でも同様で、Linearのような洗練されたプロダクトを楽しめる一方で、Craigslistの90年代風Webサイトのほうが今なおより多くの収益を生み出せるかもしれない
- 結局のところ、ユーザーが気にするのはプロダクトがどう実装されているかより、その有用性である
7件のコメント
Airbnb、Shopify、GitHub、思ったよりRuby on Railsを使っている企業が多いですね!! 😊
GitHub が Rails で開発されたというのは初耳です。GitLab が Rails で開発されたのは事実ですが……GitLab は Rails をうまく活用していて、長く記憶に残っていますね。
GitHubは初期にRailsコミュニティを中心にネットワークを築いていました。
https://read.first1000.co/p/-github
少し別件ですが、Ruby on Railsのセキュリティ問題であるMass Assignment VulnerabilityをEgor Homakovが指摘した件がありました。これは開発者が注意すれば避けられる問題だったため、これをパッチすべきかどうかという議論がありました。(RTFMと言えてしまうので)
これを報告したEgor Homakovが選んだ方法は、当時すでにRailsで運用され、しかもRailsがホスティングされていたGitHubを攻撃することでした。実際に成功しました。
そのため、最大級のRailsアプリであってもこの事例から自由ではないことを示しました。
開発者を信頼するか(手動メモリ管理)vs 信頼しないか(GCなど)という選択だったのだと思いますが、私はRTFMのような返答や、セキュリティで「分かったうえでうまくやること」を前提にするときに、しばしばこれを思い出します。
https://news.ycombinator.com/item?id=3666564
ありがとうございます。 :)
https://github.blog/engineering/building-github-with-ruby-and-rails/
ありがとうございます。
Hacker Newsの意見