なぜRubyは遅いと言われるのでしょうか? [閉まっている]
概要
私は Ruby on Rails が好きで、すべての Web 開発プロジェクトに Ruby on Rails を使用しています。数年前、Rails がメモリを大量に消費することや、拡張性があまり高くないことについて多くの話題がありましたが、これらの提案は Gregg Pollack によってここで無効にされました。
しかし最近、Ruby自体が遅いという意見を聞くようになりました。
Ruby が遅いとは思いませんが、単純な CRUD アプリや会社のブログを作成するために Ruby を使用しているだけです。 Ruby が遅くなる前に、どのようなプロジェクトを実行する必要がありますか?それとも、この遅さはすべてのプログラミング言語に影響するものなのでしょうか?
質問は主観的なものであり、アーキテクチャの設定 (EC2 とスタンドアロン サーバーなど) が大きな違いを生むことは理解していますが、Ruby が遅いことについて人々がどう思うか聞きたいです。
最後に、Ruby 2.0 に関するニュースはあまり見つかりません。それからまだ数年はかかると思いますが?
解決策
Ruby と他の言語の間で一般的なベンチマークを実行すると、Ruby が負けるからです。
Ruby は、リアルタイムのデジタル信号処理アプリケーションや、あらゆる種類のリアルタイム制御システムを作成する場合にはあまり役に立たないでしょう。 Ruby (今日の VM では) は、スマートフォンなどのリソースに制約のあるコンピューターではおそらく窒息するでしょう。
Web アプリケーション上の処理の多くは、実際には C で開発されたソフトウェアによって実行されることに注意してください。 Apache、Thin、Nginx、SQLite、MySQL、PostgreSQL、多くの解析ライブラリ、RMagick、TCP/IP などは、Ruby で使用される C プログラムです。 Ruby は接着剤とビジネス ロジックを提供します。
より高速な言語に切り替えてください。しかし、それにはコストがかかります。それはそれだけの価値があるかもしれない費用です。しかし、ほとんどの Web アプリケーションでは、言語の選択は重要な要素ではありません。開発コストがはるかにかかる高速な言語を使用するだけのトラフィックが十分にないからです。
他の人もこれに答えています。JRuby、IronRuby、REE を使用すると、VM に余裕のあるプラットフォームでアプリケーションの Ruby 部分をより高速に実行できます。そして、多くの場合、速度の低下の原因は Ruby ではなく、コンピューター システム アーキテクチャとアプリケーション アーキテクチャであるため、データベース レプリケーション、複数のアプリケーション サーバー、リバース プロキシによる負荷分散、HTTP キャッシュ、memcache、Ajax、クライアント側キャッシュなどを行うことができます。 . このようなものはどれも Ruby ではありません。
ほとんどの人は Ruby 1.9.1 を待っています。私自身は JRuby 上の Ruby 1.9.1 上の Rails 3.1 を待っています。
最後に、多くの開発者が Ruby を選択していることを覚えておいてください。その理由は、Ruby を使用すると他の言語に比べてプログラミングがより楽しい体験になるためであり、Ruby with Rails を使用すると、熟練した Web 開発者がアプリケーションを非常に迅速に開発できるからです。