2009-02-15 8 views
12

Tôi là nhà phát triển C# .NET và tôi làm việc trên hầu hết các dự án ASP.NET.Python hoặc Ruby dành cho nhà phát triển .NET?

Tôi muốn học một ngôn ngữ lập trình mới,

  • để cải thiện kỹ năng lập trình của tôi bằng cách trải qua một ngôn ngữ mới,
  • để xem một cái gì đó khác nhau môi trường sau đó microsoft,
  • và có lẽ phải suy nghĩ trong một cách khác.

Tôi tập trung vào hai ngôn ngữ cho mục tiêu của mình. PythonRuby.

  • Bạn cung cấp dịch vụ nào cho tôi?
  • Ưu và nhược điểm của chúng với nhau?
  • Có đáng học không?

EDIT: Xin lỗi đã ngồi biên tập bài của tôi, nhưng không thông báo ở đây,

Ruby on Rails thay thế bằng Ruby.

Trả lời

16

Cả hai ngôn ngữ đều mạnh mẽ và thú vị. Hoặc là một bổ sung hữu ích cho hộp công cụ của bạn.

Python có cộng đồng lớn hơn và tài liệu và thư viện có thể trưởng thành hơn. Định hướng đối tượng của nó là một chút không nhất quán và cảm thấy (với tôi, IMHO) giống như một cái gì đó đã được bắt vít vào ngôn ngữ. Bạn có thể thay đổi hành vi của lớp trong thời gian chạy (khỉ-patch) nhưng không phải cho các lớp biên dịch sẵn và nó thường bị cau mày.

Ruby có thể khác một chút so với trải nghiệm hiện tại của bạn: nó có một số hương vị của Smalltalk (gọi phương thức chính xác hơn là gửi tin nhắn chính xác). Định hướng đối tượng của nó được xây dựng từ đầu, tất cả các lớp được mở để sửa đổi và nó được chấp nhận - nếu hơi đáng sợ - thực hành. Cộng đồng là nhỏ hơn, các thư viện ít trưởng thành và bảo hiểm tài liệu ít hơn.

Cả hai ngôn ngữ sẽ có một số mức độ tương thích ngược bị hỏng trong bản phát hành majopr tiếp theo của họ, cả hai đều có .Net triển khai (IronPython là sản xuất, IronRuby đến đó). Cả hai đều có khuôn khổ web phản ánh điểm mạnh của họ (tìm kiếm SO cho cuộc tranh luận Django/Rails).

Nếu tôi chưa bao giờ thấy Ruby, tôi sẽ rất vui khi làm việc với Python, và đã làm như vậy mà không bị đau khổ khi cần thiết. Tôi luôn thấy mình muốn tôi có thể làm công việc trong Ruby. Nhưng đó là ý kiến ​​của tôi, YMMV.

Chỉnh sửa: Hãy suy nghĩ về nó, và mặc dù nó làm tôi đau lòng, nếu bạn đang tìm cách tận dụng kiến ​​thức của mình về khung công tác .Net, bạn có thể nên nhìn vào IronPython, vì nó trưởng thành hơn Ruby tương đương.

+0

Tôi đồng ý với Python (và tôi là người dùng Ruby 100%). IronRuby cuối cùng sẽ trưởng thành, nhưng IronPython đã hoàn tất và có thể truy cập tất cả các thư viện .NET thông thường của bạn, nếu bạn muốn lấy nó theo hướng đó. – Judy

2

Luôn có giá trị khi học một ngôn ngữ lập trình mới. Và cả Python và Ruby là những điều tốt để biết. Điều quan trọng cần lưu ý là mặc dù Python là một ngôn ngữ, Ruby on Rails là một khung công tác. IMHO, bạn nên tìm hiểu Ruby trước bạn học Rails.

Đi try ruby! để xem bạn có thích nó không. Nếu bạn làm thế, hãy thử Rails. Nếu không, hãy thử Python. Cả hai đều hữu ích tương tự. Đối với tôi, Ruby là "vui" hơn. Nếu bạn thích Lisp, có thể bạn sẽ thích Ruby. Nếu bạn thích C, bạn có thể thích Python. Hãy thử cả hai!

+0

Ruby là ngôn ngữ của riêng nó, như bạn đã nói đó là một khuôn khổ. Tại sao không nói Python => Django như Ruby => Ruby on Rails? – Garrett

6

Đầu tiên ... tốt cho bạn vì muốn mở rộng kiến ​​thức của bạn! Thứ hai, bạn đang so sánh một ngôn ngữ (Python) với một khung công tác web (Ruby on Rails).

Tôi nghĩ tùy chọn tốt nhất của bạn là thử một vài khung công tác khác nhau trong cả Python Ruby, thực hiện cùng một tác vụ khá đơn giản trong mỗi công cụ và chỉ chọn tùy chọn bạn muốn tìm hiểu thêm. Rails là tốt đẹp cho Ruby, nhưng nó không phải là người duy nhất ra khỏi đó. Đối với Python tôi thích giá treo và Django.

Ưu điểm và khuyết điểm: Ruby sạch hơn, ít ngôn ngữ hơn Python. Python có bộ mô-đun lớn hơn nhiều.

Có đáng học không? Có, cho cả Python và Ruby.

+0

Vui lòng xác định "Ruby cleaner than Python". Tôi có xu hướng nói rằng điều ngược lại là đúng, và đó là lý do tại sao tôi muốn biết chính xác những gì bạn muốn nói. – tzot

+0

Python có một vài mô hình hỗn hợp trong đó, trong khi Ruby là "OO" tinh khiết hơn. Ví dụ, tại sao dir (foo) trong Python để tìm hiểu? Đã có một vài lần tôi đã cố gắng để nhớ một phương pháp trong Python chỉ để nhớ nó là một chức năng để thay thế. Đó là những điều nhỏ như vậy, và hầu hết không quan trọng. – dwc

+0

Anh ấy đã nói Ruby, không phải Ruby on Rails. – Garrett

1

Nếu bạn muốn tìm hiểu Ruby on Rails, guides site có hướng dẫn tuyệt vời để bắt đầu và hướng dẫn thêm để cải thiện đường ray-fu của bạn.

Ngoài ra, Tore Darell đã viết S urvivor's Guide for Ruby on Rails cũng có thể hữu ích cho bạn.

0

Tôi muốn tham gia Ruby. Dường như có một cộng đồng lớn hơn (hoặc ít hoạt động hơn), tốc độ của các dự án mới & tiếp tục phát triển không phải là thứ hai, và các tài nguyên học tập dường như vượt quá số & vượt trội hơn Python.Tôi có thể sai, nhưng đây là những ấn tượng của tôi.

+0

Khoảng 3 năm trước, tôi đã có ấn tượng ngược lại chính xác, đó là lý do tại sao tôi chọn Python trên Ruby. Có lẽ Ruby bắt kịp kể từ đó liên quan đến tài nguyên học tập, nhưng sau đó tôi tìm thấy một * nhiều * nhiều thứ hơn Python (sách, bài viết, blog, vv). – paprika

+0

Không có dấu hiệu nào cho thấy điều này là đúng. – fuentesjr

3

Nếu bạn là người mới bắt đầu, tôi khuyên bạn nên thử Django nếu bạn quyết định bắt đầu học Python. Tất nhiên nếu bạn quyết định Ruby là lựa chọn của bạn về hương vị, Rails là cách rõ ràng để đi. Cho dù ngôn ngữ bạn chọn, tôi có thể đảm bảo với bạn nó sẽ là một lựa chọn tốt.

Có nói rằng, lựa chọn cá nhân của tôi là Python. Tôi thích ngôn ngữ, tôi thích cộng đồng và tôi sử dụng Python cho hầu như mọi dịp. Tôi sử dụng nó cho các ứng dụng dòng lệnh, ứng dụng GUI và tôi sử dụng nó cho các ứng dụng web (Django). Tôi cũng sử dụng nó cho các kịch bản quản trị hệ thống trên Windows và Linux.

Có nói rằng là tốt, tôi sẽ khuyên bạn nên học một ngôn ngữ như Haskell hoặc Lisp là tốt. Điều đó sẽ thực sự mở mắt của bạn đến một viễn cảnh mới để lập trình. Hơn nữa, vì bạn nói bạn hầu như quen thuộc với framework .Net, tôi thực sự khuyên bạn nên bắt đầu với F # vì bạn đã quen thuộc với các thư viện và nó sẽ làm cho quá trình chuyển đổi mượt mà hơn nhiều. Dù bằng cách nào, chúc may mắn.

+0

F # nằm trong danh sách của tôi :) Tôi thực sự muốn tìm hiểu nó, nhưng trước tiên tôi muốn thử một ngôn ngữ không phải là ngôn ngữ ms. cảm ơn, tốt cho câu trả lời. +1 – Canavar

2

Quy tắc chung - Python nếu bạn thích các quy tắc nghiêm ngặt và Ruby nếu bạn ghét chúng.

Một số khác: nếu bạn yêu mến JavaScript - Ruby là lựa chọn của bạn :)

+0

Tôi yêu Ruby, nhưng sẽ làm hầu hết mọi thứ để tránh viết JavaScript. Ý tưởng của họ về các đối tượng có thể là tương tự, nhưng cú pháp JS là đồng bằng cũ xấu xí. –

+0

Tôi hoàn toàn trái ngược với cảm xúc về cú pháp, tôi yêu dấu ngoặc nhọn. – vava

2

Cái gì? Không đề cập đến IronPython?

IronPython là ngôn ngữ hàng đầu của DLR. Nó cho phép bạn sử dụng tất cả các thư viện .NET quen thuộc, nhưng thông qua Python.

Tôi chắc chắn sẽ thử Python và IronPython. Bạn sẽ học được rất nhiều và thậm chí có thể lén nó vào các dự án hiện tại của bạn (bạn có thể nhúng một công cụ IronPython trong một ứng dụng .NET).