Perché R? I pro e i contro del linguaggio R.

Il linguaggio di programmazione R è uno strumento importante per lo sviluppo negli spazi di analisi numerica e machine learning. Con le macchine che diventano sempre più importanti come generatori di dati, ci si può solo aspettare che la popolarità del linguaggio cresca. Ma R ha sia pro che contro che gli sviluppatori dovrebbero conoscere.

Con l'interesse per il linguaggio in crescita, come mostrato dagli indici di popolarità del linguaggio come TIobe, PyPL e Redmonk, R è apparso per la prima volta negli anni '90 ed è servito come implementazione del linguaggio di programmazione statistica S. Annota Roger Peng, un veterano della programmazione di R da 18 anni che insegna R sia all'università che sulla piattaforma online Coursera, "R è il linguaggio più popolare utilizzato nel campo della statistica".

"Mi piace [R] perché è molto facile programmare da un livello più informatico", dice Peng. E R è diventato più veloce nel tempo e funge da linguaggio collante per mettere insieme diversi set di dati, strumenti o pacchetti software, afferma Peng.

"R è il modo migliore per creare analisi riproducibili e di alta qualità. Ha tutta la flessibilità e la potenza che cerco quando si tratta di dati", afferma Matt Adams, un data scientist presso Code School, che offre formazione sulla programmazione online. "La maggior parte dei programmi che scrivo in R sono in realtà solo raccolte di script organizzati in progetti."

Il forte ecosistema di pacchetti di R e i vantaggi della creazione di grafici

I vantaggi di R includono il suo ecosistema di pacchetti. "La vastità dell'ecosistema dei pacchetti è sicuramente una delle qualità più forti di R: se esiste una tecnica statistica, è probabile che esista già un pacchetto R", afferma Adams.

"Ci sono molte funzionalità integrate per gli statistici", afferma Peng. R è estensibile e offre ricche funzionalità agli sviluppatori per creare i propri strumenti e metodi per l'analisi dei dati, afferma. "Con il passare del tempo, molte più persone sono state attratte da altri campi", comprese le scienze biologiche e persino le scienze umane.

"Le persone possono estenderlo senza dover chiedere il permesso". In effetti, molti anni fa Peng ricorda i termini di utilizzo di R come un grande aiuto. "All'epoca in cui è uscito per la prima volta, il vantaggio più grande era che si trattava di software libero. Il codice sorgente e tutto ciò che lo riguardava erano disponibili per essere consultati."

Tutte le funzionalità grafiche e di creazione di grafici di R, afferma Adams, sono "impareggiabili". I pacchetti dplyr e ggplot2 per la manipolazione dei dati e il plottaggio, rispettivamente, "hanno letteralmente migliorato la mia qualità di vita", dice.

Per l'apprendimento automatico, i vantaggi di R sono legati principalmente ai forti legami di R con il mondo accademico, afferma Adams. "Qualsiasi nuova ricerca sul campo probabilmente ha un pacchetto R di accompagnamento da accompagnare fin dall'inizio. Quindi, sotto questo aspetto, R rimane all'avanguardia", dice. "Il pacchetto caret offre anche un modo piuttosto ingegnoso di fare apprendimento automatico in R attraverso un'API relativamente unificata". Peng osserva anche che molti popolari algoritmi di apprendimento automatico sono implementati in R.

I difetti di R nella sicurezza e nella gestione della memoria

Nonostante tutti i suoi vantaggi, R ha la sua parte di carenze. "La gestione della memoria, la velocità e l'efficienza sono probabilmente le maggiori sfide che R deve affrontare", afferma Adams. "Sono stati fatti - e sono ancora in corso - progressi per fare progressi su questi fronti. Inoltre, le persone che arrivano in R da altre lingue potrebbero considerare R eccentrico".

Il principio di base di R deriva dai linguaggi di programmazione costruiti negli anni '60, afferma Peng. "In questo senso, è una specie di vecchia tecnologia nel modo in cui è stata originariamente progettata." Il design del linguaggio a volte può creare problemi quando si lavora con set di dati molto grandi, afferma. I dati devono essere archiviati nella memoria fisica. Ma poiché i computer hanno acquisito più memoria, questo è diventato un problema minore, osserva Peng.

Funzionalità come la sicurezza non erano integrate nel linguaggio R, afferma Peng. Inoltre, R non può essere incorporato in un browser Web, afferma Peng. "Non puoi usarlo per app simili al Web o a Internet." Era praticamente impossibile utilizzare R come server back-end per eseguire calcoli a causa della sua mancanza di sicurezza sul Web, afferma. Il problema della sicurezza, tuttavia, è stato attenuato da sviluppi quali l'uso di contenitori virtuali sulla piattaforma cloud di Amazon Web Services, afferma Peng.

Per molto tempo non c'è stata molta interattività nella lingua, dice. Linguaggi come JavaScript devono ancora entrare e colmare questa lacuna, afferma Peng. Sebbene un'analisi possa essere eseguita in R, la presentazione dei risultati potrebbe essere eseguita in un linguaggio diverso come JavaScript, afferma.

R non è solo per programmatori avanzati

Tuttavia, Adams e Peng vedono entrambi R come un linguaggio accessibile. "Non provengo da un background di informatica e non ho mai avuto l'aspirazione di diventare un programmatore. La conoscenza dei fondamenti di programmazione aiuta sicuramente quando si aggiunge R alla tua cassetta degli attrezzi, ma non direi che è necessario per iniziare", dice Adams.

"Non direi nemmeno che R sia per i programmatori. È più adatto per le persone che hanno problemi orientati ai dati che stanno cercando di risolvere, indipendentemente dalla loro attitudine alla programmazione", dice.