Pourquoi Ruby est-il considéré comme lent?
Parce que si vous exécutez des benchmarks typiques entre Ruby et d'autres langages, Ruby perd.
Je ne trouve pas que Ruby soit lent, mais encore une fois, je l'utilise simplement pour créer de simples applications CRUD et des blogs d'entreprise. Quels types de projets aurais-je besoin de faire avant de trouver Ruby en train de devenir lent? Ou est-ce que cette lenteur est quelque chose qui affecte tous les langages de programmation?
Ruby ne vous servirait probablement pas bien pour écrire une application de traitement du signal numérique en temps réel ou tout autre système de contrôle en temps réel. Ruby (avec les machines virtuelles d'aujourd'hui) s'étoufferait probablement sur un ordinateur aux ressources limitées comme les smartphones.
N'oubliez pas qu'une grande partie du traitement de vos applications Web est en fait effectuée par des logiciels développés en C. par exemple Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, de nombreuses bibliothèques d'analyse, RMagick, TCP / IP, etc. sont des programmes C utilisés par Ruby . Ruby fournit la colle et la logique métier.
Quelles sont vos options en tant que programmeur Ruby si vous voulez faire face à cette «lenteur»?
Passez à une langue plus rapide. Mais cela a un coût. C'est un coût qui peut en valoir la peine. Mais pour la plupart des applications Web, le choix de la langue n'est pas un facteur pertinent car il n'y a tout simplement pas assez de trafic pour justifier l'utilisation d'un langage plus rapide qui coûte beaucoup plus cher à développer.
Quelle version de Ruby conviendrait le mieux à une application comme Stack Overflow où la vitesse est critique et le trafic intense?
D'autres personnes ont répondu à cela - JRuby, IronRuby, REE rendront la partie Ruby de votre application plus rapide sur des plates-formes qui peuvent se permettre les machines virtuelles. Et comme ce n'est souvent pas Ruby qui cause la lenteur, mais l'architecture de votre système informatique et l'architecture de vos applications, vous pouvez faire des choses comme la réplication de base de données, plusieurs serveurs d'applications, l'équilibrage de charge avec des proxys inverses, la mise en cache HTTP, Memcache, Ajax, la mise en cache côté client, etc. Aucun de ces trucs n'est Ruby.
Enfin, je ne trouve pas beaucoup de nouvelles sur Ruby 2.0 - je suppose que nous sommes à quelques années de cela alors?
La plupart des gens attendent Ruby 1.9.1. J'attends moi-même Rails 3.1 sur Ruby 1.9.1 sur JRuby.
Enfin, rappelez-vous que de nombreux développeurs choisissent Ruby parce que cela rend la programmation plus agréable par rapport à d'autres langages, et parce que Ruby with Rails permet aux développeurs Web qualifiés de développer des applications très rapidement.