Nhìn chung các lập trình viên Ruby luôn có cách để cài đặt các phiên bản Ruby khác nhau, quản lý các gói (hoặc gems), và quản lý các thư viện.
Một vài nền tảng phải có Ruby đã được cài đặt trước hoặc có sẵn như một gói. Số đông lập trình viên Ruby không sử dụng cái này, hoặc nếu có, họ chỉ sử dụng chúng để bootstrap cài đặt Ruby. Thay vào đó, các lập trình viên Ruby có xu hướng cài đặt trình quản lý Ruby để cài đặt và chuyển đổi các phiên bản của Ruby và môi trường Ruby cho dự án của họ.
Dưới đây là các trình quản lý môi trường Ruby nổi tiếng:
Ruby được tạo ra bởi Yukihiro "Matz" Matsumoto, người được xem như là một BDFL, mặc dầu gần đây luôn thay đổi. Kết quả là, tham chiếu của Ruby được gọi là MRI(Matz' Reference Implementation), và khi bạn biết về một phiên bản Ruby, nó đang được tham chiếu để phát hành một phiên bản của MRI.
Có ba phiên bản Ruby chính thức được dùng là:
Sự thay đổi giữa phiên bản 1.8.7 đến 1.9.x lớn hơn nhiều so với thay đổi từ 1.9.3 đến 2.0.0. Ví dụ, các phiên bản 1.9 giới thiệu các bảng mã và một byecote VM. Có các dự án vẫn đang ở 1.8.7, nhưng chúng chiếm một số lượng ít , phần lớn cộng đồng đã chuyển sang ít nhất là 1.9.2 hoặc 1.9.3
Hệ sinh thái Ruby có rất nhiều ứng dụng, với mỗi thế mạnh độc đáo và khả năng tương thích. Để rõ ràng hơn, sự khác nhau giữa các ứng dụng được viết bằng các ngôn ngữ khác nhau, nhưng chúng vẫn là Ruby. Mỗi ứng dụng có các hook đặc trưng và những tính năng đặc biệt, nhưng tất cả đều chạy Ruby rất tốt. Ví dụ, JRuby được viết bằng Java, nhưng bạn không cần biết Java để sử dụng.
Một số ứng dụng nổi tiếng/tương thích cao:
Một số ứng dụng khá nổi tiếng/tương thích:
Một số ứng dụng tốt/tương thích:
Các ứng dụng Ruby có các phiên bản riêng của mình, nhưng chúng luôn luôn hướng đến sự một phiên bản đặc biệt của MRI cho sự tương thích. Nhiều ứng dụng có khả năng đến các chế độ khác nhau (ví dụ, 1.8 hoặc 1.9) để hướng đến phiên bản MRI.
Hầu hết các ứng dụng Ruby dựa vào Ruby Spec. Ruby không có thông báo chính thức, nhưng cộng đồng đã viết những specs thực thi trong Ruby để kiểm tra sự tương thích với MRI.
RubyGems là một cộng đồng quản lý các gói cho Ruby. RubyGems đi kèm với Ruby, bởi vậy không cần cài đặt riêng lẻ.
Các gói Ruby được gọi là "gems", và chúng được host bởi cộng đồng tại RubyGems.org. Một gem chứa mã nguồn của nó và một vài mô tả, bao gồm những thứ như phiên bản, các thư viện độc lập, các tác giả và các loại giấy phép.
Bundler là một gem giải quyết độc lập. Nó sử dụng một Gemfile để tìm kiếm các thư viện độc lập trong dự án, và sau đó sẽ lấy về các thư viện của các thư viện độc lập này. Nó thực hiện cho đến khi việc tải các thư viện hoàn tất, hoặc nó sẽ dừng nếu xuất hiện bất kỳ xung đột nào.
Bundler sẽ hiển thị lỗi nếu tìm thấy bất kỳ xung đột giữa các thư viện. Ví dụ, nếu như gem A yêu cầu gem Z có phiên bản 3 hoặc cao hơn, nhưng gem B lại yêu cầu gem Z phiên bản 2. Bundler sẽ thông báo cho bạn sự xung đột này. Điều này đã rất hữu ích khi nhiều gem tham chiếu các các gem khác (trong gem này lại tham chiếu đến các gem khác nữa), có thể hình thành một đồ thị lớn để nói.
Kiểm thử là một phần lớn của Ruby. Ruby mang đến một nền tảng kiểm thử theo kiểu Unit được gọi là minitest (hoặc TestUnit for phiên bản Ruby 1.8.x). Có nhiều thư viện kiểm thử với các mục đích khác nhau.
Cộng đồng Ruby tự hào là một cộng đồng mở, đa dạng và chào đón tất cả mọi người. Bản thân Matz là một người cực kỳ thân thiện, và các lập trình viên Ruby rất tuyệt vời.
Got a suggestion? A correction, perhaps? Open an Issue on the GitHub Repo, or make a pull request yourself!
Originally contributed by Jon Smock, and updated by 2 contributors.