Programovanie

Prečo R? Výhody a nevýhody jazyka R.

Programovací jazyk R je dôležitým nástrojom pre vývoj v oblasti numerickej analýzy a strojového učenia. S rastúcim významom strojov ako generátorov údajov možno len očakávať, že popularita jazyka bude rásť. Avšak R má výhody aj nevýhody, ktoré by vývojári mali vedieť.

So záujmom o rastúci jazyk, ako sa ukazuje na indexoch jazykovej popularity, ako sú TIobe, PyPL a Redmonk, sa R ​​prvýkrát objavil v 90. rokoch a slúžil ako implementácia štatistického programovacieho jazyka S. Poznámky Rogera Penga, 18-ročného veterána programovania v R, ktorý vyučuje R na univerzite aj na online platforme Coursera, „R je najpopulárnejším jazykom používaným v oblasti štatistiky.“

„Páči sa mi [R], pretože je veľmi ľahké programovať z počítačovejšej úrovne,“ hovorí Peng. A R sa časom zrýchlil a slúži ako lepiaci jazyk na spájanie rôznych súborov údajov, nástrojov alebo softvérových balíkov, hovorí Peng.

„R je najlepší spôsob, ako vytvoriť reprodukovateľnú a vysoko kvalitnú analýzu. Má všetku flexibilitu a silu, ktorú hľadám pri práci s údajmi,“ hovorí Matt Adams, vedec v oblasti údajov z Code School, ktorá ponúka výučbu online programovania. „Väčšina programov, ktoré píšem v jazyku R, sú v skutočnosti iba zbierkami skriptov, ktoré sú usporiadané do projektov.“

Silný ekosystém balíka R a výhody mapovania

Medzi výhody R patrí jeho balíkový ekosystém. „Rozsiahlosť ekosystémov balíkov je určite jednou z najsilnejších kvalít R - ak existuje štatistická technika, je pravdepodobné, že už existuje balíček R,“ hovorí Adams.

„Je zabudovaných veľa funkcií, ktoré sú vytvorené pre štatistikov,“ hovorí Peng. R je rozšíriteľný a ponúka vývojárom bohaté funkcie na vytváranie vlastných nástrojov a metód na analýzu údajov, tvrdí. „Postupom času k nej prilákalo oveľa viac ľudí z iných oblastí,“ vrátane biologických vied a dokonca aj humanitných vied.

„Ľudia ju môžu predĺžiť bez toho, aby museli požiadať o povolenie.“ Peng skutočne pripomína podmienky používania R ako veľkú pomoc pred mnohými rokmi. "V čase, keď vyšlo prvýkrát, najväčšou výhodou bolo, že išlo o slobodný softvér. Zdrojový kód a všetko okolo neho bolo k dispozícii na nahliadnutie."

Adams tvrdí, že všetky možnosti grafiky a grafov v R sú „bezkonkurenčné“. Balíky dplyr a ggplot2 na manipuláciu s údajmi, respektíve vykreslenie údajov „mi doslova zlepšili kvalitu života,“ hovorí.

Pokiaľ ide o strojové učenie, výhody R sú spojené väčšinou so silnými väzbami R na akademickú pôdu, hovorí Adams. „Akýkoľvek nový výskum v tejto oblasti má pravdepodobne sprievodný balík R, ktorý s ním bude vychádzať. Takže v tomto ohľade zostáva R na špici,“ hovorí. „Balík caret tiež ponúka celkom šikovný spôsob vykonávania strojového učenia v jazyku R prostredníctvom relatívne jednotného rozhrania API.“ Peng tiež poznamenáva, že v R je implementovaných veľa populárnych algoritmov strojového učenia.

Nedostatky R. v oblasti bezpečnosti a správy pamäte

Napriek všetkým výhodám má R svoj podiel nedostatkov. „Správa pamäte, rýchlosť a efektívnosť sú pravdepodobne najväčšími výzvami, ktorým R čelí,“ hovorí Adams. "Boli urobené - a stále sa robia - pokroky na týchto frontoch. Ľudia, ktorí prichádzajú do R z iných jazykov, by tiež mohli považovať R za svojráznu."

Základný princíp R vychádza z programovacích jazykov vytvorených v 60. rokoch, hovorí Peng. „V tomto zmysle je to tak trochu stará technológia, ako bola pôvodne navrhnutá.“ Dizajn jazyka môže podľa neho niekedy predstavovať problémy pri práci s veľmi veľkými súbormi údajov. Údaje musia byť uložené vo fyzickej pamäti. Ale keďže počítače dostali viac pamäte, stal sa z toho menší problém, poznamenáva Peng.

Peng hovorí, že schopnosti ako bezpečnosť neboli zabudované do jazyka R. Peng tiež nemôže byť vložený do webového prehľadávača. „Nemôžete ho použiť pre webové alebo internetové aplikácie.“ Bolo v podstate nemožné použiť R ako server typu back-end na vykonávanie výpočtov kvôli jeho nedostatočnej bezpečnosti na webe, hovorí. Otázka bezpečnosti sa však zmenšila vďaka vývoju, ako je napríklad použitie virtuálnych kontajnerov na cloudovej platforme Amazon Web Services, hovorí Peng.

Hovorí, že dlho nebolo v jazyku veľa interaktivity. Jazyky ako JavaScript ešte musia prísť a vyplniť túto medzeru, hovorí Peng. Aj keď je možné analýzu vykonať v jazyku R, prezentácia výsledkov sa môže vykonať v inom jazyku, ako je napríklad JavaScript, hovorí.

R nie je len pre pokročilých programátorov

Napriek tomu Adams a Peng vidia R ako prístupný jazyk. "Nepochádzam z počítačového prostredia a nikdy som nemal ambície stať sa programátorom. Znalosť základov programovania určite pomôže, keď si do svojho súboru nástrojov pridáte písmeno R, ale nepovedal by som, že je to potrebné na začiatok," hovorí Adams.

"Ani by som nepovedal, že R je pre programátorov. Je to najvhodnejšie pre ľudí, ktorí majú problémy s orientáciou na dáta, ktoré sa snažia vyriešiť, bez ohľadu na ich programátorskú zdatnosť," hovorí.

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