2010-08-22 43 views
5

Đối với các ứng dụng web, tôi sử dụng Ruby on Rails. Và bây giờ là lúc để xem tôi có thể viết mã ứng dụng Desktop với Ruby không.MacRuby + IronRuby hoặc JRuby cho các ứng dụng dành cho máy tính để bàn?

Vì vậy, tôi tự hỏi mình nên chọn cái nào.

Cách tôi xem là MacRuby + IronRuby vs JRuby.

Trước đây cho phép tôi có các ứng dụng dành cho máy tính để bàn cho cả Mac và Windows trong khi ứng dụng thứ hai cho phép có cả hai, nhưng chỉ học một công cụ.

  • Có đối số mạnh nào để sử dụng giá trị cũ hơn số sau?

  • Ứng dụng JRuby Desktop có phải là bản gốc (hoặc gần đủ bản địa) như MacRuby + IronRuby Desktop Applications không?

  • Ưu và nhược điểm của từng giải pháp là gì?

Im rất mới quá Phát triển máy tính để bàn. Chia sẻ suy nghĩ và kinh nghiệm của bạn!

Trả lời

3

MacRuby sử dụng ngăn xếp đối tượng Apple C gốc.
Ưu tiên: Thư viện lớp cơ bản là trình bao bọc cho các lớp Objective C GUI. Bạn nhận được các ứng dụng gốc nhanh.
Nhược điểm: Chỉ chạy trên máy Mac. Chúng không di động với iPad hoặc iPhone hoặc (không có giải pháp Ruby nào).

IronRuby sử dụng khung Windows .NET nguyên gốc.
Ưu điểm: Sử dụng WinForms gốc để tạo các ứng dụng gốc phong phú. Nó có quyền truy cập vào hệ sinh thái .NET đầy đủ của các thư viện.
Nhược điểm: Chỉ chạy trên Windows.

JRuby sử dụng lớp trừu tượng Java (JVM).
Ưu điểm: Nhiều thư viện GUI có sẵn. Phổ biến nhất là SWT và Swing. SWT sử dụng các tiện ích gốc và nhanh hơn và bản địa hơn. Swing hoàn toàn là Java (các widget được mô phỏng) và dễ di chuyển hơn. Có thêm các thư viện trừu tượng SWT và Swing để làm cho chúng thân thiện hơn với Ruby. Hãy xem Profligacy cho Swing chẳng hạn.
Nhược điểm: Một lớp phía trên một lớp phía trên một lớp. Swing và SWT rất trưởng thành nhưng các lớp Ruby ở trên chúng ít hơn.

Ngoài ra còn có một tùy chọn khác
Ruby với thư viện Qt.
Qt là nền tảng chéo, sử dụng các tiện ích gốc và được viết bằng C++. Nó khá nhanh nhưng thư viện thì phức tạp và lớn.

Quy tắc chung của tôi là GUI phức tạp hơn, bạn càng gần với nền tảng gốc hơn. Bạn cũng cần đánh giá đường cong học tập cho từng thư viện đồ họa này và nỗ lực cần thiết để chuyển đổi giữa các nền tảng.

+2

Không đúng khi IronRuby chỉ chạy trên Windows. Nó chạy ở khắp mọi nơi, nơi thực thi CLI tuân thủ ISO, có sẵn, ở hầu hết mọi nơi. Heck, thậm chí có một CLI thực hiện cho iPhone! Trong thực tế, nếu tôi nhớ chính xác, có một gói Debian cho IronRuby * trước đó * có một trình cài đặt Windows cho nó. Ngoài ra, YARV chạy trên iPhone. Oh, và bạn quên một sự khác biệt khá quan trọng: YARV, MRI, Rubinius, IronRuby và JRuby được phát hành, sẵn sàng sản xuất và tuân thủ các tiêu chuẩn, MacRuby không phải là những thứ AFAICT. –

+3

@ Jörg W Mittag: Tôi đã cố gắng tránh xa các giải pháp bí truyền trong câu trả lời của tôi vì chúng giới thiệu các lớp và hạn chế bổ sung. Ví dụ, IronRuby bên ngoài Windows cần một cái gì đó giống như Mono để giải thích mã CLI. Trên iPhone, MonoTouch tương đương thực sự biên dịch thành mã gốc, không phải CLI và bạn không thể sử dụng .NET GUI với nó. Đối với YARV trên iPhone, tôi không thể tìm thấy một tham chiếu đến điều này. Apple đã khá nghiêm khắc về việc không cho phép các lớp trung gian như Silverlight, Flash, JVM trên iPhone/iPad. – Alkaline

Các vấn đề liên quan