Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

CRUDアプリは優秀なビジネスです(翻訳)

概要

原著者の許諾を得て翻訳・公開いたします。

CRUDアプリは優秀なビジネスです(翻訳)

またやってしまいました。もう二度とやるまいと思っていたのに。

参考: Why Ruby on Rails still matters

上の素晴らしい記事に対するHacker Newsのコメントで、Ruby on Railsが20年経った今でも変わらず重要であることが指摘されていたのを読んでいたところ、コメントの1つが「あまりに的外れだった」ので、つい反論してしまいました。

きっかけは、誰かが(おそらくRailsを称賛するつもりで)「自分はやっぱりCRUD形式のみのWebアプリが大好きだ」とコメントしたことでした。なお、CRUDは、作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)という4つの基本操作の頭文字で、これらの動詞(verb)を使ってコンピュータでやりたいことをほぼ表現できます。スプレッドシートは1980年代〜1990年代初頭にかけてキラーアプリでした。Rails 2はRESTによってCRUD操作をHTTP上でカプセル化する方法を確立したことで、以後ほぼすべてのWebアプリケーションの作成方法が再定義されました。

それはさておき、CRUDアプリが好きだと書いた人に、別の人がこんなレスを付けていたのです。

私も楽な問題は大好きですが、残念ながらデータベースレコードの作成はめったにビジネスにならず、純粋なCRUDシステムはExcelとほとんど変わりません。ビジネスにするのは他の誰かだし、ビジネスを推進するのはソフトウェアではなく担当者の頭の中にあるもので、それもSOP(標準作業手順書)みたいなドキュメントに運良く書いてもらえればの話です。

これにはまったく同意しかねました。お許しください、私はこんなレスを付けました。

世界で大きな成功を収めたRuby on Railsコンサルティング会社の共同創業者として申し上げますが、CRUDアプリの構築は「優秀な」ビジネスです。

世の中には、「根本的に複雑なもの」と「結果的に複雑になったもの」があります。製品に対する要求が根本的に難しければ、シンプルなCRUDアプリがうまく動かない場合もあります。しかしシンプルなCRUDアプリ(そしてアーキテクチャやエンジニアリング組織やビジネスも)に複雑なものがあれこれ乗っかってきて混乱したためにコストが嵩んでつらくなるということも、同じぐらいよくあります。

私はこれまでのキャリアで何十もの顧客にサービスを提供してきましたが、そのほとんどは程度の差こそあれ「CRUDアプリ」+「ゼロを1にする興味深い機能」で解決可能でした。これで解決できなかったケースは片手で数えられる程度しかありません。
技術者は、自分たちを素朴なCRUDアプリをひたすら構築する単純労働者だと思いたくないので、アプリを複雑にする方法をあの手この手で見つけます。
一方ビジネスマンたちも、自分たちをありきたりな企業だと思いたくないので、話を複雑にする方法をいろいろと見つけます。
投資家は投資家で、目新しさのないCRUDアプリに何度も資金を投じたくないので、これまた話を複雑にするいろんな方法を見つけてきます。

私の経験から申し上げると、90%以上のアプリケーション開発者たちが現在取り組んでいるのは、CRUDアプリを構築する作業か、さもなければ自分たちが作っているものが事実上CRUDアプリであることに気づくべきケースであるかのどちらかです。私たちのやっていることは多かれ少なかれ、インターネット上にスプレッドシートを配置しているようなものかもしれません。そして私の考えでは、このことがまさにRailsの持続力を説明していると思うのです。

以前Changelog.comのポッドキャストに出演したときのインタビューを思い出しました。ホスト役のAdamから「Next.jsはRailsにとって脅威ですか?」と質問されたのですが、2005年からその手の話をあまりにしょっちゅう耳にしていたせいか、Next.jsのことを競合相手だとは考えもしませんでした。

CRUD機能を最優先で提供しないあらゆるフレームワークは、アプリが遠回しにCRUDに戻ろうとする負担に耐えられなくなって、そのうち自滅することになるでしょう。

ともあれ、私はこれについて十分に確信しているので、読まない方がいいような深くネストしたコメントのまま終わらせずに、別の場所にきちんと書き残しておくべきだと考えました。ここにこうして記事を書いたのはそういうわけです。

参考: Hacker Newsエントリ

関連記事

Rails: Active Storageで知っておくべきアドバイス集(翻訳)

Rails: HotwireCombobox gemが素晴らしすぎるという話(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。