2009-03-30 25 views
9

Tôi là người mới bắt đầu với Ruby. Tôi đã nghe những lời than phiền sau đây về Ruby, và hy vọng cộng đồng Stack Overflow có thể giải quyết từng điểm được nêu ra.Vì lý do nào mọi người chọn Ruby trên Java?

khiếu nại thường gặp về Ruby đó tôi đã nghe:

  • Ruby là chậm hơn so với Java
  • Ruby là không tĩnh gõ
  • Đó là không thích hợp cho các dự án lớn

Với những thừa nhận ý kiến ​​dựa trên ý kiến, làm thế nào là Ruby 'tốt hơn' so với Java? và liệu Ruby có bao giờ là ngôn ngữ được sử dụng rộng rãi bởi cả doanh nghiệp và cá nhân không?

+0

Nếu bạn tin rằng bạn nên luôn luôn suy nghĩ về hiệu suất của ứng dụng như trái ngược với lót của mã bằng văn bản/dễ viết những dòng, tôi đề nghị ruby ​​không phải là cho bạn. Tôi không đồng ý rằng điều này có ý nghĩa trong trường hợp chung, mặc dù. –

+0

Điều này trông rất giống một chiếc giường thoải mái hoàn hảo cho cuộc chiến tranh lửa. Không có câu trả lời đúng hay sai cho câu hỏi này, chỉ là một loạt các ý kiến ​​theo một trong hai hướng. –

+0

"Chúng ta nên luôn luôn suy nghĩ về hiệu suất của ứng dụng không phải về dòng mã bạn viết." - chắc chắn không, nói chung! Công suất máy tính rẻ hơn so với nguồn nhân lực (lập trình viên). Đó là lý do tại sao tôi thường sử dụng Java thay vì C++ ;-) –

Trả lời

3

Tốc độ của Ruby có rất nhiều increased in the latest version. Mặc dù trong các phiên bản cũ của Ruby là slower than other scripting languages.

+0

Tất cả các triển khai Ruby được hiển thị trong trò chơi điểm chuẩn hiện tại đều gần đây hơn so với các phiên bản được hiển thị trong bài viết trên blog đó - chúng không phải là phiên bản cũ! (ruby 1.8.7 ruby ​​1.9.1p0 jruby 1.2.0) – igouy

0

Ruby là một ngôn ngữ phổ biến đã :)

Tôi không đồng ý với bạn về "Chúng ta nên luôn luôn suy nghĩ về việc thực hiện" và "ruby là tốt hơn so với java". Trên một số dự án, khả năng đọc mã có thể quan trọng hơn hiệu suất. Hãy suy nghĩ về mã C++ tối ưu mà không ai có thể đọc và duy trì ví dụ. Và không có bằng chứng hoàn hảo nào cho thấy "Ruby tốt hơn Java". Bạn lấy thông tin đó ở đâu?

+0

http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ Ở đây là liên kết cho biết một lần lặp lại phải mất 86 mili giây. Vì vậy, nếu nó là một dự án lớn thì ứng dụng của tôi có kinh nghiệm chậm .. Khách hàng chỉ muốn thực hiện. Anh ta không quan tâm rõ ràng nó đã viết ra sao. – Manoj

+0

Đó là sự thật rằng trên một số dự án hiệu suất là những gì khách hàng muốn. Nhưng nó không đúng là hiệu suất là mối quan tâm duy nhất. Khách hàng muốn ứng dụng của mình được sửa đổi thường xuyên như thế nào? Khả năng bảo trì rất quan trọng ở đây. Nếu bạn muốn chỉ hiệu suất tôi đề nghị đi với C++ :) – Gant

+0

C++? Chậm. Hội sẽ tốt hơn, mã máy có lẽ tốt nhất. Tất nhiên, nó có thể không được chuyển giao cho đến thế kỷ 22 ... –

1

Câu trả lời cho câu hỏi "ngôn ngữ nào tốt hơn, cái này hay cái kia?" luôn luôn chủ quan. Chắc chắn, tính khách quan là hợp lệ và bạn bằng cách nào đó có thể đạt được kết luận về một ngôn ngữ tốt hơn cho nhiệm vụ/dự án X. Tuy nhiên, ngay cả khi đó, nếu nhóm của bạn hài lòng với một số ngôn ngữ khác không phải là lựa chọn đầu tiên cho một công việc/dự án nào đó, nhưng công việc có thể được thực hiện ... một nhóm khôn ngoan sẽ chọn ngôn ngữ tạo ra họ hạnh phúc vì năng suất của họ cũng sẽ lớn hơn.

Kết luận, không ai có thể cho bạn biết lựa chọn của mình tốt hơn lựa chọn của bạn. Họ có thể cố gắng thuyết phục bạn, nhưng nếu vì một lý do nào đó ngôn ngữ X khiến bạn hào hứng hơn, họ không thể làm bất cứ điều gì về nó.

Có nói rằng: Ruby 1.9+ đã cải thiện rất nhiều về hiệu suất. Nếu bạn hỏi tôi, ý kiến ​​thiên vị của tôi là chọn Ruby vì tôi thích nó. Nhưng nếu bạn muốn có một ý kiến ​​không thiên vị, chúng tôi sẽ phải thảo luận nhiều khía cạnh hơn và kiểm tra chính xác bạn muốn làm gì với ngôn ngữ/khuôn khổ, v.v.

1

Tôi khuyên bạn nên thử cả hai ngôn ngữ và sau đó quyết định xem bạn nghĩ gì nhất.

2

Vì một số mục đích, Ruby hoạt động quá chậm. Đối với những người khác, nó đủ nhanh.

Đối với một số mục đích, Java mất quá nhiều thời gian để phát triển.

Đối với một số ứng dụng, nhập tĩnh là không cần thiết, đối với những ứng dụng khác, điều này rất mong muốn.

Quy mô của dự án phần lớn không liên quan.

Trong một số cách, Java tốt hơn Ruby, theo những cách khác, Ruby tốt hơn Java. Bất cứ ai duy trì rằng một trong những "tốt hơn" trong bất kỳ hoàn cảnh có lẽ không biết đủ về một trong hai để giữ một ý kiến ​​hợp lệ.

Còn JRuby thì sao?

Tôi nghĩ rằng tài liệu này đã được tài liệu hóa khá rõ bởi bây giờ Ruby là "phổ biến". Không phải là "phổ biến" như Java, C++ hoặc C, ví dụ, nhưng phổ biến dù sao.

Xem

0
thế nào là Ruby 'tốt hơn' hơn Java?

Nó không phải, và Java không phải là 'tốt hơn' so với Ruby. Cả hai đều có ưu và khuyết điểm của họ, và nó phụ thuộc vào dự án của bạn; công cụ tốt nhất cho công việc là công việc là gì.

+0

Xin vui lòng cho tôi biết những ưu điểm của Ruby .. – Manoj

9

Ruby chậm hơn Java để chạy nhưng ghi nhanh hơn hoặc đọc. Cái nào quan trọng hơn đối với bạn? Tôi không biết bất kỳ công ty nào trên thế giới đã vượt qua nếu có cơ hội (nói) cắt giảm thời gian dev của họ xuống còn một nửa với chi phí tăng gấp đôi phần cứng của họ.

Ruby không được nhập tĩnh, nhưng không phải là Python, Perl, Lisp, tập lệnh shell, v.v. Đây thực sự có phải là vấn đề với bạn không? Tôi chắc rằng bạn có thể tìm thấy nhiều người bằng ngôn ngữ động, những người sẽ phàn nàn rằng Java, C#, C++, v.v., được nhập tĩnh. Chúng tôi không thiếu các ví dụ về các hệ thống được xây dựng trên các ngôn ngữ động.

Tôi đồng ý rằng Ruby không thích hợp cho các dự án lớn, nhưng cũng không phải là bất kỳ ngôn ngữ nào khác mà chúng tôi có ngày hôm nay. Trạng thái của kĩ nghệ phần mềm khá rõ ràng đối với tôi: không ai có thể xây dựng hệ thống lớn một cách đáng tin cậy. Ít nhất Ruby làm cho các dự án lớn của bạn nhỏ hơn trong các dòng mã, điều này khiến chúng trở nên dễ quản lý hơn. Đó là cú pháp phong phú hơn để bạn có thể nói (một cái gì đó gần hơn) những gì bạn có ý nghĩa. Viết nhanh hơn để bạn tìm ra nhanh hơn nếu bạn đi xuống con đường bên phải hay không.

Nếu đây là những đối số tốt nhất chống lại Ruby, thì Ruby đang làm tốt hơn tôi nghĩ.

0

Tùy thuộc vào những gì bạn cần làm.

Chúng tôi hy vọng mã của chúng tôi sẽ chạy trong nhiều thập kỷ. Ở lại với Java tinh khiết có nghĩa là chúng tôi khá chắc chắn rằng các công nghệ sẽ vẫn "trong thời trang" và các đồng nghiệp tương lai có thể duy trì mã. Đi cho ngôn ngữ trong ngày, cuối cùng sẽ có nghĩa là bạn sẽ có các chương trình được viết bằng ngôn ngữ đã hết thời trang và do đó khó duy trì hơn.

"Pure java" về cơ bản có nghĩa là chúng tôi đang ở với Java Runtime chuẩn và triển khai các đặc điểm Sun (như JavaServer Faces). Nó không phải là nhàm chán như nó âm thanh :)

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