Programmering

Hvorfor R? Fordele og ulemper ved R-sproget

R-programmeringssproget er et vigtigt værktøj til udvikling inden for numerisk analyse og maskinlæringsrum. Da maskiner bliver vigtigere som datageneratorer, kan sprogets popularitet kun forventes at vokse. Men R har både fordele og ulemper, som udviklere bør vide.

Med interesse for det voksende sprog, som vist på sprogindekser for sprog som TIobe, PyPL og Redmonk, dukkede R først op i 1990'erne og har fungeret som en implementering af S statistiske programmeringssprog. Bemærker Roger Peng, en 18-årig R-programmeringsveteran, der underviser R både på universitetet og på Coursera online-platformen, "R er det mest populære sprog, der bruges inden for statistikområdet."

"Jeg kan godt lide [R], fordi det er meget let at programmere ind fra et mere datalogisk niveau," siger Peng. Og R er blevet hurtigere over tid og fungerer som et limsprog til sammenkobling af forskellige datasæt, værktøjer eller softwarepakker, siger Peng.

"R er den bedste måde at skabe reproducerbar analyse af høj kvalitet på. Den har al den fleksibilitet og kraft, jeg leder efter, når jeg beskæftiger mig med data," siger Matt Adams, datalog ved Code School, der tilbyder online programmeringsuddannelse. "De fleste af de programmer, jeg skriver i R, er faktisk kun samlinger af scripts, der er organiseret i projekter."

R's stærke pakkeøkosystem og kortfordele

R's fordele inkluderer dets pakkeøkosystem. "Omfanget af pakkeøkosystem er absolut en af ​​R's stærkeste kvaliteter - hvis der findes en statistisk teknik, er der sandsynligvis allerede en R-pakke derude til det," siger Adams.

"Der er meget funktionalitet, der er indbygget, og som er bygget til statistikere," siger Peng. R kan udvides og tilbyder rig funktionalitet for udviklere til at bygge deres egne værktøjer og metoder til at analysere data, siger han. "Efterhånden som tiden er gået, er mange flere mennesker tiltrukket af det fra andre områder," herunder biovidenskab og endog humaniora.

"Folk kan udvide det uden at skulle bede om tilladelse." Faktisk minder Peng om R's brugsvilkår som en stor hjælp for mange år siden. "På det tidspunkt, hvor det første gang kom ud, var den største fordel, at det var gratis software. Kildekoden og alt omkring den var tilgængelig til at se på."

Ad R siger, at alle R's grafik- og kortfunktioner er "uovertruffen." Dplyr- og ggplot2-pakkerne til henholdsvis datamanipulation og plotting "har bogstaveligt talt forbedret min livskvalitet," siger han.

Til maskinindlæring er R's fordele mest knyttet til Rs stærke bånd til den akademiske verden, siger Adams. "Enhver ny forskning inden for området har sandsynligvis en ledsagende R-pakke, der følger med fra start. Så i denne henseende forbliver R i forkant," siger han. "Caret-pakken tilbyder også en temmelig smidig måde at udføre maskinlæring på i R gennem en relativt samlet API." Peng bemærker også, at mange populære maskinlæringsalgoritmer er implementeret i R.

R's mangler inden for sikkerhed og hukommelsesstyring

Til trods for alle dets fordele har R sin andel af mangler. "Hukommelsesstyring, hastighed og effektivitet er sandsynligvis de største udfordringer, R står over for," siger Adams. "Der er - og bliver stadig gjort - skridt til at gøre fremskridt på disse fronter. Også folk, der kommer til R fra andre sprog, kan også overveje R quirky."

Det grundlæggende princip for R stammer fra programmeringssprog bygget i 1960'erne, siger Peng. "I den forstand er det en slags gammel teknologi, som den oprindeligt blev designet." Udformningen af ​​sproget kan undertiden skabe problemer i at arbejde med meget store datasæt, siger han. Data skal gemmes i fysisk hukommelse. Men da computere har fået mere hukommelse, er dette blevet mindre af et problem, bemærker Peng.

Funktioner som sikkerhed var ikke indbygget i R-sproget, siger Peng. Desuden kan R ikke integreres i en webbrowser, siger Peng. "Du kan ikke bruge det til weblignende eller internetlignende apps." Det var grundlæggende umuligt at bruge R som back-end-server til at foretage beregninger på grund af dets manglende sikkerhed over internettet, siger han. Sikkerhedsspørgsmålet er dog blevet mindsket af udviklingen som brugen af ​​virtuelle containere på Amazon Web Services skyplatform, siger Peng.

I lang tid var der ikke meget interaktivitet i sproget, siger han. Sprog som JavaScript er stadig nødt til at komme ind og udfylde dette hul, siger Peng. Selv om en analyse muligvis kan udføres i R, kan præsentationen af ​​resultater muligvis udføres på forskellige sprog som JavaScript, siger han.

R er ikke kun for avancerede programmører

Adams og Peng ser stadig R som et tilgængeligt sprog. "Jeg kommer ikke fra datalogisk baggrund og havde aldrig ambitioner om at blive programmør. Viden om programmeringsfundamenter hjælper bestemt, når jeg tilføjer R til din værktøjskasse, men jeg vil ikke sige, at det er nødvendigt at komme i gang," siger Adams.

"Jeg ville ikke engang sige, at R er for programmører. Det er bedst egnet til folk, der har dataorienterede problemer, de prøver at løse, uanset deres programmeringsevne," siger han.

$config[zx-auto] not found$config[zx-overlay] not found