2011-10-13 20 views
36

Lợi ích và giới hạn nào có ngôn ngữ Scala so với Ruby, đặc biệt là từ quan điểm của nhà phát triển ứng dụng web? Biểu đồ so sánh và liên kết bằng chứng được chào đón nồng nhiệt.Ruby vs Scala - ưu và contras của mỗi người

PS Đây không phải là một câu hỏi thánh chiến (-:

+1

@Downvoter - quan tâm để nhận xét? –

+5

Những lợi ích và hạn chế nào mà quả táo có so sánh với cam? – Raphael

+59

@Raphael Cam chứa nhiều vitamin C hơn, nhưng táo chứa nhiều sắt hơn. Nếu bạn có scurvy, cam là hữu ích hơn nhiều cho bạn. –

Trả lời

52

Tôi đã làm việc với Ruby và Rails trong hơn 2 năm và tôi chỉ khoảng một tháng vào học Scala và Lift, vì vậy quan điểm của tôi là Có lẽ thiên vị, nhưng ở đây là

Ruby làm cho bạn cảm thấy tuyệt vời.Tất cả những điều mới tôi khám phá về ngôn ngữ làm tôi cười khúc khích như một nữ sinh nhỏ. Làm việc với đá quý thực sự đơn giản và với Bundler and Gemfiles nó có lẽ là quản lý thư viện tốt nhất hệ thống tôi đã xem qua.

Có vô số đá quý cho mọi thứ, từ bao gói API ppers, phức tạp authentication/authorization.

Ruby cũng có cộng đồng tuyệt vời giúp việc học ngôn ngữ thực sự dễ dàng. Lấy ví dụ RailsCasts by Ryan Bates. Nếu bạn xem chúng, bạn sẽ học cách phát triển web với Ruby và Rails.

Đối với tôi, Ruby có lẽ là điều tốt nhất tôi đã khám phá trong toàn bộ cuộc sống lập trình của mình, vì cách cộng đồng làm việc khiến tôi thay đổi toàn bộ cách tiếp cận lập trình.

Mặt khác, tôi không thấy điều này trong thế giới Scala. Tôi không muốn gây ra một cuộc chiến tranh lửa, nhưng đây chỉ là ấn tượng của tôi sau khi bắt đầu học ngôn ngữ. Trong cộng đồng Ruby, mọi thứ cảm thấy hấp dẫn và khiến tôi muốn học hỏi nhiều hơn và nhiều hơn nữa. Nhưng với Scala, tôi có xu hướng gặp rất nhiều trở ngại và không nhiều tài liệu và hướng dẫn, điều đó sẽ giúp tôi vượt qua chúng.

Có rất nhiều sách dành cho topis rất cụ thể trên Ruby, có thể là scripting, deployment, testing và nhiều thứ khác (có quy tắc lập trình Pragmatic). Điều tốt nhất là, cả cộng đồng cảm thấy như một gia đình, nó không giống như trong thế giới Java, nơi mọi thứ được phân phối và không ai nói chuyện với nhau, ít nhất đó là ấn tượng của tôi. Vì vậy, những gì điều này xảy ra, ít nhất là đối với tôi, là cách dễ dàng và hấp dẫn để bước vào thế giới ngôn ngữ và bắt đầu làm điều gì đó, và Ruby chắc chắn là người chiến thắng ở đây, ít nhất là đối với tôi.

Về mặt hiệu suất, Scala nhanh hơn, không nghi ngờ gì về điều đó. Đó là một trong những lý do tôi nhận được vào Scala, vì nó có mô hình đồng thời thực sự tuyệt vời và cho phép bạn làm những việc mà Ruby không thể làm được. Nhưng đối với hầu hết các ứng dụng web, bạn sẽ không cần phải làm điều này.

Ruby chậm, đó là nhược điểm duy nhất có. Nó đang nhận được nhanh hơn và nhanh hơn, và cho 98% các trường hợp bạn sẽ không nhìn thấy nó như là một vấn đề. Nhưng Scala nhanh hơn.

Cộng đồng Ruby cũng chấp nhận thử nghiệm và mã đẹp, tự nhiên dẫn đến các ứng dụng tốt hơn.

+3

Và điều gì về tính ổn định, hiệu suất và như vậy? –

+1

Tính ổn định thường quan tâm nhiều hơn đến cách bạn viết ứng dụng, đọc câu trả lời đã chỉnh sửa để nhận xét hiệu suất. –

+0

Cảm ơn. Theo như tôi hiểu, Scala cung cấp hiệu suất và các lợi ích đồng thời với chi phí hỗ trợ cộng đồng tồi tệ hơn. –

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