JRuby là một trong những triển khai Ruby hoàn chỉnh nhất (có rất nhiều ứng dụng khác ngoài đó như IronRuby, Maglev, Rubinius, XRuby, YARV, MacRuby). Nó là rất toàn diện, do đó, trừ khi bạn sử dụng đá quý sử dụng mã C bản địa, bạn sẽ rất rất có khả năng chỉ là tốt tương thích khôn ngoan.
JRuby nhanh hơn một chút so với triển khai C thực tế, nhưng nó hỗ trợ các chuỗi thực tế, trong khi việc triển khai chính thức đang gặp khó khăn trong việc thực hiện nó (nó vẫn sử dụng Green Threads). Sử dụng các chủ đề Java từ JRuby là khá tầm thường, mặc dù nó sẽ yêu cầu bạn kết hợp mã của bạn với Java (với một chút DI, việc ghép nối này sẽ chỉ xảy ra một lần, mặc dù).
Lợi ích khác: công cụ thời gian chạy. Java, dưới dạng nền tảng , thay vì ngôn ngữ, có lô công cụ thời gian chạy để giúp bạn chẩn đoán vấn đề và kiểm tra trạng thái của đơn đăng ký (profilers, JConsole, v.v.).
Twitter kỹ sư cũng nói rằng Ruby VM kinda có rắc rối trở thành một môi trường cho quá trình dài sống, trong khi JVM là rất tốt ở đó, bởi vì nó được tối ưu hóa cho rằng trong mười năm trở lại đây.
Ruby cũng có một vấn đề bảo mật nhỏ gần đây, điều này không ảnh hưởng đến việc thực hiện JRuby.
Mặt khác, dự án của bạn yêu cầu nhiều hiện vật hơn (JVM, lọ JRuby, v.v.). Nếu bạn đang sử dụng một ứng dụng sẽ sống lâu và bạn muốn hỗ trợ thời gian chạy tốt hơn, JRuby có thể là một cách tuyệt vời để thực hiện. Nếu không, bạn có thể an toàn chờ đợi cho đến khi bạn cần những thứ này để thực sự thực hiện việc di chuyển (nó có khả năng diễn ra suôn sẻ).
xuất sắc trả lời, đó chính xác là những gì tôi cần phải biết. Cảm ơn. :) –
Các nhà phát triển Twitter 'đưa vào Ruby là một chút quan trọng. Nếu vấn đề là những gì họ nói, điều hợp lý sẽ là đi cùng với JRuby. Họ không chuyển mã Ruby của họ sang Java - họ viết lại nó trong Scala. Có vẻ như vấn đề của họ nhiều hơn với mã của họ so với MRI. – Chuck
Cũng lưu ý rằng di chuyển Twitter Ruby-Scala chủ yếu nằm trong phần xếp hàng của ứng dụng, mà (a) họ thừa nhận đã được thực hiện kém trong Ruby và (b) phù hợp với ngôn ngữ hiệu năng cao. –