Ruby đã làm gì đúng (hay là Rails)? [đóng cửa]


13

Hầu hết các ngôn ngữ lập trình có một số quyết định thiết kế ảnh hưởng đến việc sử dụng và khả năng ứng dụng của chúng.

Ví dụ:

  • Python tập trung vào khả năng duy trì / khả năng đọc mã và thụt lề là một phần của chính ngôn ngữ.
  • Ý định của Java là đa nền tảng OOP 'dễ dàng hơn' và 'thân thiện hơn' so với C ++
  • Objective-C được xây dựng như một trình bao bọc OO xung quanh C không biết tương lai của C ++ tại thời điểm đó
  • Erlang được thiết kế cho các hệ thống đồng thời chịu lỗi cao
  • PHP được thiết kế để xử lý việc tạo động các trang web
  • CoffeeScript được thiết kế để hiển thị các phần hay của Javascript và thêm đường cú pháp OOP và ẩn các sắc thái (toàn cầu, v.v.) của JS 'đằng sau hậu trường', v.v.

Mỗi ngôn ngữ lập trình đã cố gắng khai thác và tận dụng một IMHO thích hợp cụ thể. Trên đây là những quan điểm của tôi về các nguyên tắc sáng lập của các ngôn ngữ lập trình và điều đó chi phối sự tiến hóa và khả năng tiếp nhận rộng rãi của chúng. Tất nhiên, có nhiều hơn nữa, nhưng danh sách chỉ nhằm mục đích làm ví dụ

Tuy nhiên, tôi đã đấu tranh để hiểu các nguyên tắc sáng lập mà Ruby dựa trên và mức độ phổ biến ngày càng tăng của nó. Các nguyên tắc sáng lập của Ruby khiến nó trở nên phổ biến ngày nay là gì? Hay đó là thiên tài của một người đàn ông đã thiết kế khung Rails? Nếu sau này, Ruby đã thiết kế Rails tốt hơn / dễ dàng hơn / nhanh hơn? Theo nghĩa nào?

Lý do thường được trích dẫn nhất theo người tạo ra nó là '... muốn có một ngôn ngữ lập trình được gõ yếu vui vẻ' - Tôi không thấy đó là lý do để tạo ra một ngôn ngữ lập trình hoàn toàn mới! Lập trình rất thú vị IMHO không phân biệt ngôn ngữ (mỗi ngôn ngữ có một số phần xấu, nhưng người ta có thể xoay quanh nó hoặc sống với nó).

Vì vậy, lĩnh vực nào đã làm (hoặc không) khai thác Ruby mà không được khai thác bởi các ngôn ngữ hiện tại? "Điểm mạnh" (USP) của Ruby đã dẫn đến khả năng tiếp nhận rộng rãi của nó là gì? Ruby đã làm gì mà không được thực hiện trước đó (hoặc cực kỳ khó khăn)?

Tôi không phải là một lập trình viên Ruby, nhưng chỉ là một Ruby noob và do đó nhầm lẫn.

Tuyên bố miễn trừ trách nhiệm : Đây KHÔNG phải là một cuộc chiến nảy lửa và tôi không tìm kiếm loại câu trả lời của Ruby vs Lập trình. Tôi đang tìm kiếm các quyết định thiết kế mà Ruby dựa trên đó đã dẫn đến việc áp dụng rộng rãi. Ruby thích hợp gì để trở nên phổ biến hoặc hoàn toàn được quy cho Rails?

Câu trả lời:


11

Tôi đoán Ruby đã cất cánh vì nhiều lý do:

  • Khung Rails. Rails tập hợp nhiều mẫu hữu ích để dễ dàng phát triển các ứng dụng web và tăng năng suất của nhà phát triển. So sánh điều này với sự phát triển web dài dòng và tẻ nhạt của Java và nền tảng .NET "one man show". Tạo các ứng dụng weblog trong vài phút là một sự sụp đổ.
    Bạn có thể thấy "hiệu ứng Rails" trên nhiều khung web JVM mới như Grails, Play! và mùa xuân
  • Những câu chuyện thành công như Twitter và Github. Các công ty khởi nghiệp cần tung ra thị trường càng sớm càng tốt và với Rails, điều này là có thể. Câu chuyện thành công là một bằng chứng.
  • Bản thân ngôn ngữ lập trình Ruby rất đẹp, mạnh mẽ và biểu cảm. IMHO, Ruby là nước sốt bí mật của Rails thành công.
    Nhìn vào vẻ đẹp của Cucumber và Sinatra, vẻ đẹp của DSL được thực hiện ngay.
  • Cộng đồng háo hức và dũng cảm không ngại thử nghiệm và đổi mới.
  • (Ý kiến ​​cá nhân và có thể không phải là lý do sống còn) Nó được tạo ra ở Nhật Bản. Không có gì đánh bại hình ảnh của "Made in Japan".
    Đối với tôi, học ngôn ngữ lập trình được tạo ra ở các quốc gia khác nhau cũng giống như gặp gỡ những người mới. Đó là niềm vui và giáo dục.
    Ruby / Nhật Bản, OCaml / Pháp, Lua / Brazil, Lisp / Mars :)

5
Tò mò về ý của bạn về " người đàn ông thể hiện nền tảng .NET", đó không phải là cụm từ tôi đã nghe trước đây?
Carson63000

2
+1 cho Lisp / Sao Hỏa. Nơi đó Haskell ở đâu?
Adam

2
Haskell đến từ sâu trong lòng đất nơi một đội quân lùn nhỏ như các nhà phát triển đã tạo ra nó với ý định gây nhầm lẫn cho các lập trình viên OO
Daniel Gratzer

1
@Adam "Nền văn minh Atlantis"
Chiron

13

Điều này không trả lời trực tiếp câu hỏi tiêu đề, nhưng giải quyết một số điểm nêu ra (ví dụ tại sao Ruby được tạo ra)

Trích dẫn từ Yukihiro 'Matz' Matsumoto, người tạo ra Ruby, có thể giúp giải thích điều gì đã truyền cảm hứng cho sự sáng tạo của nó:

  • "Tôi muốn một ngôn ngữ kịch bản mạnh hơn Perl và hướng đối tượng nhiều hơn Python"
  • "Tôi hy vọng thấy Ruby giúp mọi lập trình viên trên thế giới làm việc hiệu quả, và tận hưởng chương trình, và hạnh phúc. Đó là mục đích chính của ngôn ngữ Ruby."

Về cơ bản, Matz muốn một ngôn ngữ cực kỳ hướng đối tượng được thiết kế cho hạnh phúc lập trình viên.


1
Nó là cực kỳ hướng đối tượng. Tôi có nghĩa là +trong 1+1là một phương pháp.
bpromas

5

Ruby (togehter với đường ray) làm cho quy ước về cấu hình trở nên phổ biến.

Cách cũ (không ruby ​​trên đường ray) là

  • Xác định bảng cơ sở dữ liệu "người" với trường có tên là "sinh nhật"
  • Xác định một "người" hạng thương gia với một tài sản "sinh nhật"
  • viết một lớp trợ giúp để truyền dữ liệu giữa cơ sở dữ liệu và lớp doanh nghiệp
  • tạo một gui rằng làm thế nào những người trong danh sách
  • tạo một gui để chỉnh sửa thuộc tính của một người

Với quy ước về cấu hình , công việc cơ bản cho việc này được thực hiện tự động:

  • bạn xác định một người trong mã
  • bảng cơ sở dữ liệu, ánh xạ, các yếu tố gui, được tự động tạo cho bạn bởi một trình thông dịch hoặc bộ mã hóa mạnh mẽ

contras: bạn phải học tất cả các điều khoản vì vậy học ruby ​​trên đường ray trong lần chạy đầu tiên khó hơn.

ưu điểm: một khi bạn biết các quy ước, khá dễ hiểu mã của các nhà phát triển ruby ​​khác trên đường ray vì mọi người đều bị buộc phải tuân theo các quy ước tương tự.

Trong khi đó, quy ước về cấu hình đã tham gia vào nhiều hệ sinh thái mã hóa


4

Đầu tiên, Ruby là một "ngôn ngữ hiện tại". Có thể bạn muốn nói "Ngôn ngữ phổ biến khi Ruby được tạo ra vào năm 1995."

Tôi thích Ruby vì những lý do tương tự tôi thích Perl:

  1. Nó mạnh mẽ và biểu cảm. Tôi có thể viết về một dòng mã Ruby thay vì năm dòng Java hoặc C ++. Không có sự lặp lại mà không thể được thực hiện với sự ồn ào tối thiểu.

  2. Đó là năng động. Các phương thức và thuộc tính có thể được tạo trong thời gian chạy, vì vậy tôi có thể bao bọc các đối tượng xung quanh những thứ được xác định bên ngoài, như các bảng cơ sở dữ liệu, mà không cần sao chép định nghĩa của những thứ đó và không cần xây dựng lại ứng dụng.

  3. Có một cuốn sách tuyệt vời về ngôn ngữ ( Lập trình Ruby ) vừa dễ đọc vừa toàn diện.

  4. Có một kho lưu trữ duy nhất cho các gói miền công cộng và giao diện dòng lệnh thuận tiện cho kho lưu trữ.

Nhưng tôi thích Ruby hơn Perl vì nó dễ đọc hơn.

Có rất nhiều trang so sánh Ruby với Python. Tôi thích cả hai. Tôi thích Ruby, nhưng tôi có kinh nghiệm hạn chế với Python.


Tôi nhớ đã đọc nó đã hy vọng rằng (thứ sẽ trở thành Ruby) sẽ trở nên đủ tốt để thay thế Perl trong lời tựa của Lập trình Ruby.
Rig

@kevin: Đó là một số tính năng của ngôn ngữ và tôi biết rõ về chúng. Tuy nhiên, tôi muốn biết "lý do tạo ra Ruby" ngoài "Tôi muốn một ngôn ngữ được gõ vui vẻ / yếu" (hoặc lý do đó có đủ lớn không ??
Tiến sĩ

1
@Nupul: Những điều này không được thực hiện bởi ủy ban. Matz lấy một ý niệm và viết Ruby. Anh ấy đã cho nó xem một số người khác sau một thời gian, và một vài người trong số họ thích nó. Đó là cách LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby và Python được tạo ra. Tôi nghĩ rằng nó giống nhau cho hầu hết các ngôn ngữ lập trình. Chỉ một số ít được tạo ra bởi ủy ban hoặc sáng kiến ​​của công ty.
kevin cline
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.