Bài viết được dịch từ trang web Skilledup

Các sinh viên và chuyên gia thường đến với các ngôn ngữ lập trình khác nhau. Đối với nhiều bạn sinh viên kỹ thuật, cái nhìn đầu tiên của họ vào lập trình máy tính là MATLAB - trong khi đối với nhiều sinh viên ngành thống kê thì R là ngôn ngữ mà họ nhìn thấy đầu tiên. Đối với những ai đang muốn biết liệu cái nào tốt hơn, thì bài viết so sánh giữa hai ngôn ngữ này nhằm mục đích làm rõ bất kỳ sự mơ hồ nào mà các lập trình viên có thể có.

MATLAB và R ai mạnh hơn ai?
MATLAB và R ai mạnh hơn ai?

Một yếu tố thường khiến người ta hướng đến một ngôn ngữ này hay ngôn ngữ khác là lý do tiền bạc. MATLAB là một sản phẩm chính thức của công ty MathWorks. MathWorks cung cấp các phiên bản và cập nhật chính thức của phần mềm này 2 lần mỗi năm, đây là một điểm thuận lợi cho những ai đang tìm kiếm một phần mềm luôn luôn được cải tiến. MATLAB và các toolbox của nó có thể có giá rất đắt, tùy thuộc vào việc có bao nhiêu người sử dụng đồng thời và có bao nhiêu toolbox mà bạn cần.

Mặt khác, R là một ngôn ngữ mã nguồn mở. R đã trở nên rất phổ biến bởi những khả năng đặc biệt của nó. Comprehensive R Archive Network (CRAN) là một kho lưu trữ đối với các package được xuất bản bởi người dùng nhằm cung cấp các chức năng mở rộng cho R. Hiện có trên 6,000 gói package có sẵn đã trải qua khâu review của cộng đồng tại CRAN và tất cả chúng đều miễn phí.

Tôi nên sử dụng chúng để làm gì?

MATLAB vượt trội trong tính toán song song.
MATLAB vượt trội trong tính toán song song.

MATLAB dành cho việc thiết kế các thuật toán, mô phỏng, và tạo nguyên mẫu (prototyping). MATLAB có những thư viện được phát triển riêng biệt dành cho các hoạt động trên ma trận có tên là LAPACK, và BLAS, khiến cho nó làm việc nhanh hơn rất nhiều. R có thể sử dụng BLAS nhưng đó không phải là chức năng có sẵn. MATLAB cũng có một trong những công cụ gỡ lỗi tốt nhất khiến cho quá trình tạo nguyên mẫu nhanh hơn nhiều. Sự bổ sung các phần như: tính toán song song dễ dàng và các công cụ tối ưu hóa trong MATLAB, phần mở rộng Simulink, và các công cụ của hãng thứ ba như CPLEX, TOMLAB, và CVX, làm cho MATLAB là công cụ lý tưởng dành cho những kỹ sư và những người làm khoa học vật lý.

R rất tuyệt vời trong việc phân tích dữ liệu và thống kê. Việc định dạng dữ liệu thô để phân tích trong R dễ dàng hơn. Các công cụ như dplyr, tidyr và Reshape cung cấp những khả năng phân tích và chuyển đổi dữ liệu dễ dàng và miễn phí. Các biểu đồ và đồ thị được tạo ra bởi R lúc đầu rất khó tùy chỉnh và về mặt trực quan là không mấy ấn tượng. Nhưng giờ đây, với việc bổ sung thêm gói ggplot2, việc in ra các file PDF chất lượng cao, tùy chỉnh các đồ thị, và tạo ra nhiều kiểu biểu đồ khác nhau đã được thực hiện dễ dàng hơn và các khả năng trực quan của R cũng hữu ích và thân thiện hơn so với sử dụng MATLAB. Kể từ khi R được sử dụng nhiều trong thống kê, các package của nó cho những công việc như phân tích kết quả thực nghiệm, chạy các mô hình dự báo, hồi quy logistic, và phương pháp random forest thường xuyên được gỡ lỗi và cập nhật trên CRAN, điều này khiến R trở thành lựa chọn tốt nhất cho các tác vụ như vậy.

Ban đầu hai ngôn ngữ này tồn tại cách xa nhau về mặt tính năng. Theo thời gian, giờ đây chúng đã có một sự hội tụ của các chức năng. Ví dụ, công ty MathWorks đã xuất bản và cập nhật các toolbox để nâng cao khả năng phân tích thống kê cho MATLAB, trong khi người dùng của R cũng đã xuất bản các gói để cải thiện khả năng tính toán song song của nó.

Hợp tác với nhau để thành công

Tại sao chúng ta lại không trở thành bạn bè nhỉ?
Tại sao chúng ta lại không trở thành bạn bè nhỉ?

Nếu bạn có cả hai công cụ MATLAB và R, thì việc học cách sử dụng đúng công cụ cho đúng tác vụ sẽ cải thiện tiến trình công việc. Berk Ustun, người chuyên làm việc với các ứng dụng ra quyết định dựa trên dữ liệu cho các vấn đề như biến đổi khí hậu, dự báo tội phạm, chăm sóc y tế và quản lý doanh thu cho Học viện Công nghệ Massachusetts là một trong số đó.

Ustun có thể tìm thấy dữ liệu thô cho công việc của mình từ nhiều nguồn khác nhau. Đối với một tình huống cụ thể, ông có thể nhìn vào hiệu quả của các nhà máy điện, giá nhiên liệu, và đầu ra của năng lượng xanh theo thời gian. Để "làm sạch" dữ liệu này ông sử dụng R và chạy các kịch bản để định dạng nó thành các file CSV.

Sau đó ông ta sẽ viết một mô hình trong MATLAB để import vào các file CSV đó. Mô hình này sẽ xây dựng một bài toán tối ưu cố gắng tìm ra cách xây dựng các nhà máy điện vào năm 2020 nhằm đáp ứng nhu cầu năng lượng ngẫu nhiên vào năm 2030 , 2040, và 2050. MATLAB sẽ ghi các kết quả vào một file CSV. 

Các kết quả đó được đưa trở lại R, nơi mà ông Ustun sẽ sử dụng công cụ ggplot2 tạo ra các đồ họa. Ông ta sẽ tạo biểu đồ cột xếp chồng lên nhau cho thấy bao nhiêu năng lượng được sản xuất bởi các loại nhà máy điện khác nhau trên ba giai đoạn theo thời gian và xuất ra các file PDF chất lượng cao với mục đích trình bày.

Tôi nên bắt đầu từ đâu?

Đây là một đồ thị đơn giản được tạo ra bởi R và ggplot2.
Đây là một đồ thị đơn giản được tạo ra bởi R và ggplot2.

Cả hai chương trình này đều dựa trên toán học. Bởi vậy một tấm bằng khoa học máy tính là không cần thiết để tự tìm hiểu về R hoặc MATLAB.

MATLAB là dạng phần mềm đa năng, công ty MathWorks đã làm việc rất chăm chỉ để mở rộng các khả năng hướng tới những chức năng phổ biến của các phần mềm và ngôn ngữ khác. R đã tạo ra một chỗ đứng vững chắc trong lĩnh vực thống kê và đang trở thành một công cụ không thể thiếu cho các nhà khoa học dữ liệu. MATLAB có sự ủng hộ của công ty MathWorks nhưng điều đó đi kèm với một mức chi phí cao. Còn R là mã nguồn mở và có sự hỗ trợ từ cộng đồng người sử dụng.

Nếu bạn đã biết một công cụ và ngay khi bạn học thêm về cái còn lại thì có thể nhận thấy rằng chúng không thực sự là đối thủ cạnh tranh của nhau trong cùng không gian. R cạnh tranh nhiều hơn với các công cụ SAS và Stata, trong khi người dùng MATLAB có thể tìm kiếm giải pháp sử dụng Python hoặc Octave.

Khi phải chọn một trong hai, tốt nhất là bạn nên tham khảo ý kiến bạn bè, thầy cô giáo, hoặc tổ chức để xem liệu họ đang nghiêng về hướng nào. Bằng cách sử dụng những điểm mạnh của cả hai để bù đắp cho những điểm yếu của chúng là cách tốt nhất.

Hãy cho chúng tôi biết ấn tượng của bạn về hai ngôn ngữ này và bạn thấy cái nào là phù hợp nhất với mình trong phần bình luận phía dưới nhé!