「Ruby はスクリプト言語だけど、遅くないですか」という質問にどう答えるか
プログラミング言語 Ruby は、スクリプト言語に分類されます。
実は、スクリプト言語という用語の厳密な定義はありません。
型宣言がないとか、インタプリタ方式で実行されるとか、幾つかの特徴を捉えた大雑把な用語です。
型宣言を持ち、コンパイルできる「本物のプログラミング言語」と比較して、簡易なプログラミング言語という、やや侮蔑的なニュアンスもあります。
スクリプト言語で書かれたプログラムの実行速度が、コンパイルされたプログラムよりも遅いのは事実です。
ですから、「Ruby はスクリプト言語だけど、遅くないですか」という質問への短い答えは、「はい、遅いです」となります。
しかし、あなたがビジネス上の問題を解決する手段としてプログラミング言語を選択したいのであれば、費用と効果を踏まえた更なる問いかけが必要になります。
その遅さは許容範囲内か、ということです。
コンピュータのハードウェアは、猛烈なスピードで性能が向上する一方で、価格が下落しています。
今 Web アプリケーションが動作しているほとんどのサーバ機器は、能力を持て余しています。
Ruby を採用するということは、コンピュータに余分な負荷をかける代わりにプログラマが楽をする、ということですが、多くのコンピュータには余裕があるのです。
あなたが作りたいものが普通の Web アプリケーションであれば、Ruby on Rails によって相当に高いパフォーマンスを出すことができます。
もちろん、Web アプリケーションへの負荷が急速に増大する場合は、Ruby の採用がハードウェア関連のコストを押し上げるかもしれません。
しかし、その可能性や度合いは減ってきたし、これからも減っていくのです。
本当に大切なことは何でしょうか。
それは、あなたのビジネスが成功することです。
そのために考慮すべき要素は、システムのパフォーマンス以外にもいろいろとあります。
スクリプト言語の「遅さ」は学術的な意味はあっても、ビジネス的にはほとんど無視できる場合が多いのです。
--
黒田努
(2008/11/24)
記事に関するご質問は、 hermes@oiax.jp までメールでお送りください。
ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。
- はじめに
- Rails はエンタープライズの世界で主流になるか (2008/03/29)
- Rails 2.0 ベンチマーク (2008/03/30)
- テスト駆動開発とデバッグコード (2008/04/07)
- Git or Mercurial (2008/04/22)
- RESTful Ruby on Rails -- その美しさと難しさ (2008/04/23)
- RESTful Ruby on Rails -- 単数と複数 (2008/04/24)
- Rails のソースコードを読む (2008/05/02)
- sudo: no passwd entry for app! (Capistrano 2.3.0) (2008/05/12)
- Rails on GlassFish (2008/06/18)
- 「Ruby は型宣言がないけど、ちゃんとしたシステムに使えるのか」という質問にどう答えるか (2008/11/23)
- 「Ruby はスクリプト言語だけど、遅くないですか」という質問にどう答えるか (2008/11/24)
- どのプログラミング言語が将来的に有望か (2009/01/10)
- どのフレームワークが将来的に有望か (2009/01/11)
- フレームワーク対 CMS (2009/01/12)
- Rails 2.3 で spawner/reaper は DEPRECATED に (2009/03/25)
- db/seeds.rb (2009/06/08)
- LESSとSass (2009/08/03)
- Rails 2.3.4 と I18n (2009/08/15)
- RubyGems のアップデート(上書きインストール) (2010/02/03)
- クリエイティブ・コモンズの Rails 教材 (2010/03/08)
- Yet Another Ruby Reference (2010/03/12)
- Rails で MongoDB を使ってみた (2010/03/23)
- Rails で MongoDB を使ってみた(2) (2010/03/25)
- 祝 Ruby on Rails 3.0 beta2 リリース (2010/04/02)
- Rails 3.x 時代のテストフレームワーク (2010/04/24)
- 続・Rails 3.x 時代のテストフレームワーク (2010/05/06)
- Test::Unit と RSpec と Shoulda (2010/05/06)
- Windows + Rails + MySQL 5.1 (2010/07/20)

