Tôi sẽ chơi Devils Advocate ở đây đơn giản vì tôi cần hiểu thêm về lý do của bạn không chỉ trái ngược. Vì thế....
Là một ngôn ngữ, tôi đồng ý Matlab có vấn đề của nó nhưng tôi không thể nói rằng tôi thực sự phải chịu đựng nó. Tôi thực hiện một số lượng khá lớn xử lý hình ảnh, vv; Những thứ phù hợp với phần mềm Matrix Centric của Matlab.
Re: "IDE là rác rưởi". Có thật không? Như tôi đã viết ở nơi khác, tôi thường sử dụng các công cụ trực quan tương tác một cách nhanh chóng trong khi dừng trong trình gỡ lỗi để tìm ra không chỉ những gì đã sai mà còn để có được một bức tranh lớn hơn để tìm ra cách khắc phục mọi thứ. Hơn nữa, tôi có thể nhận được sự giúp đỡ hoặc mở chức năng bằng cách chọn nó, v.v ... Tất cả trong tất cả những gì tôi thấy nó rất hiệu quả, vậy làm thế nào để python ide so sánh với điều đó?
RE "Thời gian chạy là xấu" - rất nhiều thói quen cốt lõi của Matlab, và sau đó là một số, là các thư viện không phải là MATLAB của bên thứ 3 [BLAS, v.v.]. Rõ ràng, mã được phát triển trên đó và tốc độ của phần lớn như vậy phụ thuộc vào người viết nó [vô hướng và các vòng lặp của vector hóa]. Nếu tôi gặp vấn đề về yêu cầu thời gian, tôi sẽ sử dụng trình hồ sơ và/hoặc làm cho MATLAB tốt hơn hoặc thay thế chức năng tắc nghẽn với tệp C/MEX. Trên thực tế, tôi vừa đảm nhận cơ sở mã MATLAB của bên thứ 3 [một bộ tích hợp gồm khoảng 10 alg khác nhau với khoảng một trăm chức năng] và sử dụng trình hồ sơ, chỉ tăng gấp đôi tốc độ của nó chỉ bằng cách viết mã MATLAB tốt hơn [tức là A A tốt hơn người viết kiểu C trong MATLAB có thể tạo ra một số mã ghê rợn]
Re: Kiểm soát phiên bản - MATLAB có giao diện tích hợp cho một số điều khiển phiên bản nhưng thật kỳ lạ là các công ty tôi làm việc dường như không bao giờ sử dụng những điều đó. Theo kinh nghiệm của tôi, sử dụng kiểm soát phiên bản là một chức năng của chính sách của công ty và kinh nghiệm của người dùng. Nếu công ty có chính sách rằng mọi thứ sẽ được kiểm soát nguồn hơn mọi người sẽ làm điều đó, nhưng ở một thái cực khác, nếu họ không và lập trình viên không thành thạo như vậy [như nhiều người khoa học Matlab không có phần mềm nền tảng kỹ thuật] Họ sẽ không. Điểm mấu chốt, tôi không chắc ID pin vấn đề này trên matlab mỗi se.
BUGS: Thật không may, đối với tôi để nói chuyện rộng rãi về mã tôi đã viết sẽ cho tôi ID và tôi không chơi trò chơi đó. Tuy nhiên, tôi đã đưa ra một lượng mã khá lớn, đã biên dịch MATLAB trong các sản phẩm cũng như mã R & D nội bộ và không gặp nhiều vấn đề về lỗi. Tôi nghĩ lý do cho điều này là việc kiểm tra thuật toán của tôi, ở một mức độ lớn bao gồm việc chạy hàng ngàn vật phẩm thông qua ứng dụng để hiểu về hiệu suất so với lỗi, có thói quen kỳ lạ này là tiết lộ các lỗi và tôi sửa chúng của thử/bắt xung quanh để giải quyết các vấn đề]. Trên thực tế, trong tất cả các sản phẩm tôi đã đưa ra mã MATLAB được biên dịch đã mang lại ít sửa lỗi nhất. Tôi nghĩ rằng một phần của điều này gần như vô tình ở đó từ độ phức tạp của phần mềm, VS quan điểm phức tạp về thuật toán, mã của tôi rất đơn giản. Chẳng hạn, tôi không cần phải đa hình và các nhà máy đẳng cấp, v.v ... Những vật phẩm OOP đó đòi hỏi rất nhiều thiết kế phía trước và gỡ lỗi thời gian [khó gỡ lỗi một đoạn mã đa hình chỉ bằng cách nhìn vào nó]. Lưu ý, ngay cả khi tôi chuyển sang Python, tôi không mong đợi bản chất của những gì tôi viết để thay đổi.
RE HD5, v.v. - Tôi đã gặp một số vấn đề ở đó nhưng tôi thú nhận rằng tôi chưa xem xét nó gần đây nên tôi không biết liệu có gì đã được giải quyết và giải quyết vấn đề HD5 là rất quan trọng [tốt, tôi không phải giải quyết Với điều đó trong năm ngoái nhưng nó đã ở trong quá khứ].
Cảm ơn
Điều này đơn giản là không đúng liên quan đến Matlab. Matlab không phải là một ngôn ngữ mục đích chung, được hình thành tốt. Mặc dù nó rất giỏi về những thứ rất tốt, nhưng nó thay đổi từ xấu, xấu thảm khốc, đến không có khả năng làm việc-nó liên quan đến những điều nó không giỏi.
Ví dụ - Tại một công việc trước đây, tôi đã viết một công cụ CLI phong phú để tự động hóa các tìm kiếm lớn về khoa học bằng cách sử dụng các khóa API nâng cấp của tổ chức lớn của tôi. Điều này liên quan đến các cuộc gọi API, các lớp để duy trì trạng thái có các phương thức lớp quan trọng chung cho tất cả các cơ sở dữ liệu, nhưng có thể dễ dàng được kế thừa để thêm cơ sở dữ liệu mới vào các phương thức nhà máy, giảm xuống C để thực hiện chuỗi mờ phù hợp với 1000x nhanh hơn Python bản địa , vv vv Dự án này sẽ không thể thực hiện được trong MATLAB. Vâng, bạn có thể đã làm nó trong JavaScript. Có, bạn có thể đã thực hiện nó trong Java, C ++, v.v. Matlab? Không phải là một cơ hội.
Vì vậy, tl; dr bạn đưa ra lời khuyên rất tốt cho các lập trình viên mới [không được sửa chữa về ngôn ngữ bạn chọn]. Nhưng Matlab có lẽ thậm chí không nên được coi là ngôn ngữ lập trình, mà là một khung toán học và kỹ thuật cực kỳ hữu ích với môi trường nhà phát triển độc quyền.
Bạn muốn giới thiệu ngôn ngữ nào cho một sinh viên sắp bắt đầu nghiên cứu của mình trong ML [và hy vọng ở lại nghiên cứu]?
Tôi biết về loại câu hỏi này nhưng tôi muốn xem quan điểm của cộng đồng này về vấn đề này.
MODS: Tôi hy vọng các điểm dữ liệu trong các bình luận của chủ đề này sẽ đưa ra một số ý tưởng về các công cụ mà học viện đang sử dụng, điều mà tôi nghĩ sẽ có lợi cho một người đang tham gia nghiên cứu. Xin lỗi trước nếu bạn nghĩ rằng bài đăng này thiếu kỹ thuật. Vui lòng loại bỏ nếu bạn nghĩ như vậy.
EDIT: Tôi muốn hỏi điều này trên chủ đề này sau khi xem điều này
EDIT2: Cảm ơn vì đã trả lời. Nó cũng sẽ có lợi nếu bạn đề cập đến công việc nghiên cứu của bạn là gì.