Tôi sẽ mở rộng nhận xét của tôi.
Tôi nghĩ rằng có một vài yếu tố ảnh hưởng đến việc sử dụng Python trong điện toán khoa học, mặc dù tôi không nghĩ có bất kỳ điểm lịch sử rõ ràng nào mà bạn có thể nói, "Vâng, đó là lý do tại sao Python được sử dụng trên Ruby / bất cứ điều gì khác "
Lịch sử ban đầu
Python và Ruby có cùng độ tuổi - theo Wikipedia, Python được phát hành chính thức lần đầu tiên vào năm 1991 và Ruby vào năm 1995.
Tuy nhiên, Python trở nên nổi bật sớm hơn Ruby, vì Google đã sử dụng Python và tìm kiếm các nhà phát triển Python vào thời điểm thiên niên kỷ. Vì chúng ta không có lịch sử sử dụng ngôn ngữ lập trình và ảnh hưởng của chúng đối với những người sử dụng chúng, nên tôi sẽ đưa ra giả thuyết rằng việc áp dụng Python sớm này của Google là một động lực lớn cho những người muốn mở rộng ra ngoài việc sử dụng Matlab, C ++, Fortran, Stata, Mathicala, v.v.
Cụ thể, ý tôi là Google đã sử dụng Python trong một hệ thống nơi họ có hàng ngàn máy (nghĩ song song và chia tỷ lệ) và liên tục xử lý nhiều triệu điểm dữ liệu (một lần nữa, tỷ lệ).
Sự kiện kết hợp
Điện toán khoa học từng được thực hiện trên các máy chuyên dụng như SGI và Crays (nhớ chúng không?), Và tất nhiên FORTRAN đã (và vẫn còn) được sử dụng rộng rãi do tính đơn giản tương đối của nó và vì nó có thể được tối ưu hóa dễ dàng hơn.
Trong thập kỷ gần đây, phần cứng hàng hóa (có nghĩa là thứ bạn hoặc tôi có thể đủ khả năng mà không phải là triệu phú) đã chiếm lĩnh trong lĩnh vực điện toán khoa học và đồ sộ. Nhìn vào 500 bảng xếp hạng hàng đầu hiện tại - nhiều 'siêu máy tính' được xếp hạng hàng đầu trên thế giới được xây dựng với phần cứng Intel / AMD bình thường.
Python xuất hiện vào thời điểm tốt vì một lần nữa, Google đang quảng bá Python và Google đang sử dụng phần cứng hàng hóa và họ có hàng ngàn máy.
Thêm vào đó, nếu bạn đào sâu vào một số bài báo tính toán khoa học cũ, chúng bắt đầu mọc lên vào khoảng thời đại 2000.
Hỗ trợ trước đó
Đây là một bài viết được viết cho Phần mềm và Hệ thống Phân tích Dữ liệu Thiên văn , được viết vào năm 2000, đề xuất Python là ngôn ngữ cho máy tính khoa học.
Bài viết có trích dẫn này về Python:
Python là một ngôn ngữ lập trình hướng đối tượng được giải thích đang bắt đầu nhận được sự chú ý đáng kể trong các ứng dụng khoa học (Python, 1999). Điều này là do Python và các ngôn ngữ kịch bản nói chung, đại diện cho một bước hợp lý tiếp theo cho nhiều dự án khoa học (Dubois 1994). Đầu tiên, Python cung cấp một ngôn ngữ lập trình được diễn giải có thể được xem như một phần mở rộng của các ngôn ngữ lệnh đơn giản đã được các chương trình khoa học sử dụng
Thứ hai, Python dễ dàng tích hợp với phần mềm được viết bằng các ngôn ngữ khác. Kết quả là, nó có thể đóng vai trò là ngôn ngữ điều khiển để điều khiển các chương trình hiện có cũng như ngôn ngữ kết dính để kết hợp các hệ thống khác nhau lại với nhau. Cuối cùng, Python cung cấp một bộ lớn các mô-đun của bên thứ ba, cơ sở người dùng được thiết lập và nhiều tài liệu dưới dạng sách và tài liệu tham khảo trực tuyến. Vì lý do này, người ta có thể xem nó như một phiên bản được đánh bóng và mở rộng của những gì các nhà khoa học thường cố gắng thực hiện khi viết trình thông dịch lệnh của riêng họ.
Vì vậy, bạn có thể thấy rằng Python đã có lực kéo từ cuối những năm 90, do nó có chức năng tương tự như các hệ thống hiện có vào thời điểm đó và vì nó dễ dàng tích hợp Python với những thứ như C và các chương trình hiện có. Dựa trên nội dung của bài viết, Python đã được sử dụng một cách khoa học từ khung thời gian 1995-1996.
Sự khác biệt trong tăng trưởng phổ biến
Sự nổi tiếng của Ruby bùng nổ cùng với sự nổi lên của Ruby On Rails, lần đầu tiên xuất hiện vào năm 2004. Tôi đã học đại học khi lần đầu tiên tôi thực sự nghe thấy tiếng vang về Ruby, và đó là vào khoảng năm 2005-2006. django cho Python được phát hành vào cùng khung giờ (tháng 7 năm 2005 theo Wiki), nhưng trọng tâm của cộng đồng Ruby dường như tập trung rất nhiều vào việc thúc đẩy việc sử dụng nó trong các ứng dụng web.
Python, mặt khác, đã có các thư viện phù hợp với tính toán khoa học:
NumPy - NumPy chính thức bắt đầu vào năm 2005, nhưng hai thư viện được xây dựng trên đã được phát hành trước đó: Numeric (1995) và Numarray (2001?)
BioPython - thư viện điện toán sinh học cho python, có từ năm 2001, ít nhất là
SAGE - Gói toán với bản phát hành công khai đầu tiên vào đầu năm 2005
Và nhiều hơn nữa, mặc dù tôi không biết nhiều dòng thời gian của họ (ngoài việc chỉ duyệt các trang tải xuống của họ), nhưng Python còn có SciPy (được xây dựng trên NumPy, phát hành năm 2006), có các ràng buộc với R (ngôn ngữ thống kê) trong đầu những năm 2000, có MatPlotLib và cũng có một môi trường vỏ thực sự mạnh mẽ trong ipython.
ipython được phát hành lần đầu tiên vào đầu những năm 2000 và đã có nhiều tính năng được thêm vào để làm cho nó rất tốt cho tính toán khoa học, như đồ thị matplotlib tích hợp và có thể quản lý các cụm tính toán .
Từ bài viết trên:
Nó cũng đáng chú ý một số dự án máy tính khoa học liên quan đến Python khác. Phần mở rộng Python số bổ sung thao tác ma trận và mảng nhanh cho Python (Dubois 1996), MMTK là bộ công cụ dựa trên Python để mô hình hóa phân tử (Hinsen 1999), dự án Biopython đang phát triển các công cụ dựa trên Python cho nghiên cứu khoa học đời sống (Biopython 1999), và Bộ công cụ trực quan hóa (VTK) là gói trực quan nâng cao với các ràng buộc Python (VTK, 1999). Ngoài ra, các dự án đang diễn ra trong cộng đồng Python đang phát triển các tiện ích mở rộng để xử lý và vẽ sơ đồ hình ảnh. Cuối cùng, công việc được trình bày trong (Greenfield, 2000) mô tả việc sử dụng Python trong các dự án tại STScI.
Danh sách tốt các gói khoa học và số cho Python .
Vì vậy, rất nhiều trong số đó có lẽ là do lịch sử ban đầu và sự tối nghĩa tương đối của Ruby cho đến những năm 2000, trong khi Python đã có được lực kéo nhờ truyền giáo của Google.
Vì vậy, nếu bạn đang đánh giá các ngôn ngữ kịch bản trong giai đoạn từ 1995 - 2000, bạn thực sự đang nhìn gì? Có Perl, có lẽ đủ khác biệt về mặt cú pháp mà mọi người không muốn sử dụng nó, và sau đó có Python, có cú pháp rõ ràng hơn và dễ đọc hơn.
Và vâng, có lẽ có rất nhiều tự củng cố - Python đã có tất cả các thư viện hữu ích, tuyệt vời này cho máy tính khoa học, trong khi Ruby có tiếng nói thiểu số ủng hộ việc sử dụng nó trong khoa học, và có một số thư viện mọc lên, như SciRuby , nhưng Các công cụ của Python đã trưởng thành hơn thập kỷ qua.
Cộng đồng của Ruby nói chung dường như rất quan tâm đến việc phát triển Ruby như một ngôn ngữ web, vì đó là điều thực sự khiến nó được biết đến, trong khi Python bắt đầu trên một con đường khác, và sau đó được sử dụng rộng rãi như một ngôn ngữ web.