Mengapa R? Kelebihan dan kekurangan bahasa R

Bahasa pengaturcaraan R adalah alat penting untuk pengembangan di ruang analisis angka dan pembelajaran mesin. Dengan mesin menjadi lebih penting sebagai penjana data, populariti bahasa hanya dapat diharapkan berkembang. Tetapi R mempunyai kebaikan dan keburukan yang harus diketahui oleh pemaju.

Dengan minat dalam bahasa berkembang, seperti yang ditunjukkan pada indeks popularitas bahasa seperti TIobe, PyPL, dan Redmonk, R pertama kali muncul pada tahun 1990-an dan telah berfungsi sebagai pelaksanaan bahasa pengaturcaraan statistik S. Catatan Roger Peng, seorang veteran pengaturcaraan R 18 tahun yang mengajar R baik di universiti dan di platform dalam talian Coursera, "R adalah bahasa yang paling popular digunakan dalam bidang statistik."

"Saya suka [R] kerana sangat mudah untuk diprogramkan dari tahap sains komputer yang lebih tinggi," kata Peng. Dan R semakin cepat dari masa ke masa dan berfungsi sebagai bahasa perekat untuk menyatukan kumpulan data, alat, atau pakej perisian yang berbeza, kata Peng.

"R adalah cara terbaik untuk membuat analisis yang berkualiti tinggi dan boleh dihasilkan. Ia mempunyai semua fleksibiliti dan kekuatan yang saya cari ketika berurusan dengan data," kata Matt Adams, seorang saintis data di Code School, yang menawarkan pendidikan pengaturcaraan dalam talian. "Sebilangan besar program yang saya tulis dalam R sebenarnya hanya koleksi skrip yang disusun menjadi projek."

Ekosistem pakej R yang kukuh dan memberi faedah

Kelebihan R termasuk ekosistem pakejnya. "Kelimpahan ekosistem paket pasti salah satu kualiti terkuat R - jika ada teknik statistik, kemungkinan ada paket R di luar sana untuk itu," kata Adams.

"Terdapat banyak fungsi yang dibina untuk ahli statistik," kata Peng. R dapat diperluas dan menawarkan fungsi yang kaya untuk pemaju untuk membina alat dan kaedah mereka sendiri untuk menganalisis data, katanya. "Seiring berjalannya waktu, lebih banyak orang tertarik kepadanya dari bidang lain," termasuk biosains dan juga kemanusiaan.

"Orang dapat memperluasnya tanpa harus meminta izin." Memang, Peng mengingat istilah penggunaan R sebagai pertolongan besar bertahun-tahun yang lalu. "Pada saat pertama kali keluar, kelebihan terbesar adalah perisian bebas. Kod sumber dan segala yang ada di dalamnya tersedia untuk dilihat."

Semua keupayaan grafik dan grafik R, kata Adams, "tidak dapat ditandingi." Pakej dplyr dan ggplot2 untuk manipulasi data dan plot, masing-masing, "secara harfiah telah meningkatkan kualiti hidup saya," katanya.

Untuk pembelajaran mesin, kelebihan R banyak dikaitkan dengan hubungan kuat R dengan akademik, kata Adams. "Apa-apa penyelidikan baru di lapangan mungkin mempunyai paket R yang menyertainya dari awal. Jadi dalam hal ini, R tetap maju," katanya. "Pakej karet juga menawarkan cara yang bagus untuk melakukan pembelajaran mesin di R melalui API yang agak bersatu." Peng juga menyatakan bahawa banyak algoritma pembelajaran mesin yang popular dilaksanakan di R.

Kekurangan R dalam keselamatan dan pengurusan memori

Untuk semua faedahnya, R mempunyai kekurangan. "Pengurusan memori, kepantasan, dan kecekapan mungkin merupakan cabaran terbesar yang dihadapi R," kata Adams. "Langkah telah - dan masih - dibuat untuk membuat kemajuan di bidang itu. Juga, orang yang datang ke R dari bahasa lain juga mungkin menganggap R unik."

Prinsip asas R berasal dari bahasa pengaturcaraan yang dibina pada tahun 1960-an, kata Peng. "Dalam pengertian itu, ini adalah teknologi lama seperti yang dirancang pada asalnya." Reka bentuk bahasa kadang-kadang boleh menimbulkan masalah dalam bekerja dengan kumpulan data yang sangat besar, katanya. Data mesti disimpan dalam memori fizikal. Tetapi kerana komputer telah mendapat lebih banyak memori, ini menjadi masalah, kata Peng.

Keupayaan seperti keselamatan tidak dibina dalam bahasa R, kata Peng. Juga, R tidak dapat disisipkan dalam penyemak imbas Web, kata Peng. "Anda tidak dapat menggunakannya untuk aplikasi seperti Web atau Internet." Pada dasarnya mustahil untuk menggunakan R sebagai pelayan belakang untuk melakukan pengiraan kerana kurangnya keselamatan melalui Web, katanya. Masalah keselamatan, bagaimanapun, telah dikurangkan oleh perkembangan seperti penggunaan kontena maya di platform awan Perkhidmatan Web Amazon, kata Peng.

Untuk masa yang lama, tidak banyak interaktiviti dalam bahasa, katanya. Bahasa seperti JavaScript masih harus masuk dan mengisi jurang ini, kata Peng. Walaupun analisis dapat dilakukan dalam R, penyampaian hasil mungkin dilakukan dalam bahasa yang berbeda seperti JavaScript, katanya.

R bukan hanya untuk pengaturcara lanjutan

Namun, Adams dan Peng keduanya melihat R sebagai bahasa yang mudah diakses. "Saya tidak berasal dari latar belakang sains komputer dan tidak pernah mempunyai cita-cita untuk menjadi pengaturcara. Pengetahuan mengenai asas pengaturcaraan pasti membantu ketika menambahkan R ke kotak alat anda, tetapi saya tidak akan mengatakan bahawa ia diperlukan untuk memulakan," kata Adams.

"Saya tidak akan mengatakan R adalah untuk pengaturcara. Sangat sesuai untuk orang yang mempunyai masalah berorientasikan data yang ingin mereka selesaikan, tanpa mengira kemampuan pengaturcaraan mereka," katanya.