it-swarm-vi.com

Ruby hoặc Python?

Câu hỏi này cực kỳ chủ quan và kết thúc mở. Nó thậm chí có vẻ giống như một cái gì đó tôi chỉ nên tự nghiên cứu và đưa ra quyết định của riêng mình. Nhưng tôi muốn đưa nó ra khỏi đó và nhận được một số suy nghĩ từ những người khác.

Câu chuyện dài - Tôi đã kiệt sức với cuộc đua chuột và đang trong một kỳ nghỉ phép tự tài trợ trong năm nay. Phần lớn là để nghỉ ngơi với Grind của công ty và đi du lịch khắp nơi, nhưng tôi cũng muốn chơi xung quanh với các công nghệ mới và thực hiện một số dự án tự học, để theo kịp tốc độ lập trình, và tốt - tôi chỉ thích mày mò lập trình, khi không có áp lực!

Đây là điều: Tôi là một lập trình viên C/C++/Java trọn đời. Tôi là một chút của một kẻ hợm hĩnh trong khuôn khổ kể từ khi tôi làm việc với gia đình ngôn ngữ này cho toàn bộ sự nghiệp lập trình của tôi. Vì vậy, tôi muốn học một ngôn ngữ không liên quan chặt chẽ về mặt cú pháp với nhóm này. Điều tôi về cơ bản đang tìm kiếm là một ngôn ngữ có mục đích tương đối chung, thú vị để học, có một số khái niệm mới khác với C++/Java và có một cộng đồng tốt. Một xem xét thứ cấp là nó có khung phát triển web tốt. Một xem xét đại học là nó không hoàn toàn học thuật (đọc: có những công việc trong thế giới thực ngoài kia bằng cách sử dụng nó).

Tôi đã thu hẹp nó xuống Ruby hoặc Python. Ấn tượng của tôi về Ruby là nó cực kỳ hướng web - rằng ứng dụng thực sự duy nhất của nó là như một ngôn ngữ kịch bản phía máy chủ để làm công cụ web (chủ yếu là Ruby trên Rails). Tôi không có nhiều ấn tượng về Python, ngoại trừ điều đó nó dường như có một lượng fan hâm mộ cuồng nhiệt và dường như là một ngôn ngữ khá linh hoạt.

TL; DR và nói một cách ngắn gọn nhất có thể: điều nào trong số này sẽ tốt hơn cho một anh chàng C++/Java để học cách có được một số quan điểm mới về lập trình? Và đó là mục đích mở và chung hơn và áp dụng cho một bộ ứng dụng rộng hơn? Hiện tại tôi đang nghiêng về Ruby, nhưng tôi lo lắng đến mức có vẻ như nó được sử dụng như không có gì ngoài ngôn ngữ web phía máy chủ.

24
Bobby Tables

Đừng để thực tế Ruby tăng thành cách nói chung phần lớn là do Rails (khung ứng dụng web) đánh lừa bạn. Đây là mục đích chung ngôn ngữ lập trình và bạn có thể sử dụng nó cho bất kỳ ngôn ngữ nào bạn có thể sử dụng bất kỳ ngôn ngữ nào khác.

Chơi xung quanh với Ruby và xem bạn có yêu nó không. Bạn sẽ hoặc bạn sẽ không. Nó giống như âm nhạc của Grateful Dead, bạn có thể yêu nó hoặc bạn không thể đứng đó.

Ruby sẽ kéo dài bộ não của bạn. Ở nhiều khía cạnh, nó khác xa với C++/Java như bạn có thể nhận được. Tôi đến từ nền tảng C và C #, và tôi thấy tính năng động và khả năng lập trình meta của Ruby khá say sưa.

Điều đó đang được nói, Python là một ngôn ngữ hoàn toàn nổi bật và nó sẽ giúp bạn thoát khỏi tình trạng cong vênh.

Tại sao không học cả hai? Tôi sử dụng cả hai một cách thường xuyên: Ruby để lập trình với Rails và Python để làm việc với Google AppEngine.

35
Adam Crossland

Tôi đã hầu như không sử dụng Ruby, nhưng đây là những ấn tượng của tôi về Python:

  • khi tôi viết mã giả thành bút chì, tôi thấy rằng những gì tôi viết thực tế is Python, và đôi khi rất ít viết lại là cần thiết để biến nó thành mã thực tế. Bạn thậm chí có thể bỏ qua mã giả cùng nhau và chỉ bày tỏ suy nghĩ của bạn trực tiếp bằng Python
  • khi tôi cần làm một việc gì đó có vẻ như là một nhiệm vụ chung, Python có xu hướng có các chức năng cần thiết (ở mức cao) được tích hợp vào thư viện chuẩn của nó. Chẳng hạn, ngay từ đầu tôi đã muốn mở một tệp và quét từng dòng một, câu trả lời đơn giản như 'đối với các dòng trong myFile: do ware (lines)'. Tôi tin rằng họ gọi phương pháp 'bao gồm pin' và nó khác với một số ngôn ngữ khác được sử dụng trong đó các hoạt động hàng ngày khó khăn hơn rất nhiều

Hai điều đó nổi bật với tôi.

17
Andrew M

Nếu bạn đang nghỉ phép cả năm, thì tôi khuyên bạn nên dành một hoặc hai tuần để học mỗi thứ và sau đó tự quyết định xem bạn thích cái nào nhất. Tôi có kinh nghiệm với cả hai và theo ý kiến ​​của tôi, cả hai đều có khả năng đến mức bạn thực sự chỉ cần quyết định bạn thích cái nào hơn.

9
Jason Webb

IMO, bạn nên đi với Python. Lý do là nó linh hoạt hơn, bạn có thể sử dụng nó cho hầu hết mọi thứ. Ruby, như bạn nhận thấy, được sử dụng nhiều hơn trong phát triển web do các khung web của nó. Không giống như Python, Ruby không tốt cho việc phát triển các ứng dụng máy tính để bàn gui , chương trình số, thống kê hoặc xử lý hình ảnh.

7
Marcin

Ruby đã tồn tại lâu hơn rất nhiều so với Rails có, vì vậy hãy để tôi đưa nó ra ngoài thế giới mà Ruby != web, mặc dù nó làm điều đó rất tốt. Có một loạt các hệ thống liên quan đến những điều nó có thể và làm. Có vẻ như toàn bộ Rails khung đã nuốt chửng phần còn lại của thế giới Ruby. Và vâng, tôi là một Ruby = quạt.

Mặt khác, Python có rất nhiều thứ cho nó và nó đã được tích hợp với hầu hết mọi thứ trên Linux. Điều đó cho tôi biết có lẽ khá dễ dàng để kết hợp vào các chương trình lớn hơn (so với Ruby, Java, v.v.). Có một số lượng lớn cơ sở hạ tầng Ubuntu Linux được viết bằng Python, cho tôi biết rằng Python có ứng dụng trong lập trình hệ thống. Tôi nghe thấy khung web của nó rất hay, tôi chưa chơi với nó.

Điều đó nói rằng, cả Ruby và Python đều là những ngôn ngữ có khả năng như nhau và bạn sẽ thấy chúng làm cho cuộc sống của bạn dễ dàng hơn rất nhiều. Ruby có nhiều người đứng đầu web hơn trong cộng đồng của mình, nhưng đó không phải là toàn bộ cộng đồng. Tôi cũng đã sử dụng nó cho một số dự án cơ sở hạ tầng.

6
Berin Loritsch

Đây là trường hợp đặc biệt của " Trình tự học ngôn ngữ lập trình lý tưởng"câu hỏi tương tự . Những gì bạn cần không phải là "một ngôn ngữ hoàn hảo", bạn cần nhiều mô hình ngôn ngữ và nhiều kinh nghiệm học tập để mở mang đầu óc.

Tôi biết bạn nói rằng bạn đã thu hẹp nó xuống Ruby và Python, nhưng tôi khuyên bạn nên bắt đầu với Vợt (một lược đồ phổ biến). Nó được xây dựng để học và nó sẽ giúp não bạn tiến tới lập trình chức năng, lập trình tương tác và gõ động. Không có việc làm (nghĩa đen là 0), một cộng đồng rất nhỏ, phân mảnh và không có khung web chính, đó chính xác là lý do tại sao bạn sẽ không bị mắc kẹt trong đó; .

Thứ hai, bạn muốn học Ruby hoặc Python cho các công việc có thể. Tôi khuyên bạn nên học cả hai. Học thứ hai trong hai thứ đó sẽ dễ hơn nhiều Đầu tiên bất chấp sự khác biệt của họ. Đối với các công việc có thể, cảm giác ruột của tôi là có nhiều hơn Ruby hoạt động vì Rails, nhưng tôi biết cũng có một số Zope làm việc trong lĩnh vực này. một trong số họ, nhưng cũng kiểm tra cái còn lại ít nhất đủ lâu để xây dựng một cái gì đó nhỏ.

Thành thật mà nói, bạn có thể sẽ học được nhiều hơn trong tuần đầu tiên làm việc với một trong số họ hơn là bạn tự học; cả hai đều có hệ sinh thái lớn với nhiều công cụ và văn hóa và thành ngữ.

tl; dr: Cả và sơ đồ.

5
Jesse Millikan

Tôi cũng đến từ nền tảng Java/C++ và đã lập trình trong Python với khung Django trong 4 tháng qua và nó thực sự tuyệt vời. Bất cứ khi nào tôi có một vấn đề hoặc câu hỏi tôi có thể tìm thấy lời giải thích trên các bài đăng hiện có. Tôi không thể đảm bảo cho Ruby vì tôi chưa sử dụng nó, nhưng tôi chắc chắn sẽ thử nó khi tôi có thời gian .

Cá nhân tôi thích cách bạn có thể thực hiện công cụ thực sự nhanh chóng với Python vì nó có rất nhiều chức năng hữu ích tích hợp.

1
chiurox

Id bình chọn cho Ruby. Tôi đến từ nền .Net và C #, đã thử Python trước, nhưng Ruby chỉ quyến rũ tôi =)
[.__.] Tôi đang viết rất nhiều nội dung hệ thống trong đó và một số Rails dev to. Nó có khả năng như Python trong lập trình hệ thống, và là tuyệt vời trên web. Và nó cảm thấy bóng bẩy hơn đối với tôi ..

1
Alexey Anufriyev