JRuby on Rails vs Ruby on Rails, quelle est la différence?
Je suis à la recherche d'essayer JRuby et JRuby on Rails. Je vais avoir du mal à trouver des informations sur ce qui est la différence entre JRuby on Rails et Ruby on Rails.
Quelle est la différences que j'ai besoin pour regarder dehors pour?
Vous devez vous connecter pour publier un commentaire.
JRuby est le Rubis de mise en œuvre qui s'exécute sur une machine virtuelle java alors que Matz Ruby est un C mise en œuvre.
Éléments importants à noter sont les suivants:
Il y a d'autres différences qui sont énumérés à l'JRuby wiki:
Je suis surpris il y a une chose essentielle manquant dans toutes les réponses à cette question, liée à GIL.
La principale différence faut-il se préoccuper de l'esp. dans les web-applications tels que ceux construits avec des Rails est vrai simultanéité ("Global Interprète Lock" libres). Lorsque deux threads en cours d'exécution (par exemple, desservant 2 demandes de l'utilisateur) avec JRuby ils sont capables de fonctionner simultanément dans un même processus, alors que dans l'IRM, il y a la GIL (même avec 1,9 natif des threads) qui évite d'exécuter du code Ruby en parallèle.
Pour le développeur de l'application, c'est la première chose à garder à l'esprit tout en tenant compte de JRuby, comme il brille vraiment avec
config.threadsafe!
mais exige de vous assurez-vous que votre code (et vos gemmes code) pour être "vraiment" thread-safe.J'ai peut-être tort, mais je pense que vous pouvez emballer un JRuby on Rails application dans une manière que vous ne pouvez pas faire avec la normale RoR - chercher à se Mêler ou similaire. Possibilité de vendre sans tomber de votre pantalon ou de l'ouverture de la komono.
Cela dit, je ne suis pas assez familier avec RoR emballage, afin de ne pas me tenir à elle 🙂
surtout, il devrait fonctionner de la même. dans jRoR vous pouvez accéder à des choses que vous n'auriez pas dans RoR. Normalement c'est principalement un déploiement de préoccupation.
Toutefois, si votre RoR application utilise des bibliothèques natives qui n'ont pas d'équivalent et qui tourne sur la JVM, qui peut être une douleur. Cependant, la plupart des bibliothèques ont un non natif version disponible (au moins les plus populaires que j'ai rencontré).