Προγραμματισμός

Γιατί R; Τα πλεονεκτήματα και τα μειονεκτήματα της γλώσσας R

Η γλώσσα προγραμματισμού R είναι ένα σημαντικό εργαλείο για την ανάπτυξη στους χώρους αριθμητικής ανάλυσης και μηχανικής μάθησης. Με τα μηχανήματα να γίνονται πιο σημαντικά ως γεννήτριες δεδομένων, η δημοτικότητα της γλώσσας αναμένεται να αυξηθεί μόνο. Όμως η R έχει τόσο πλεονεκτήματα όσο και μειονεκτήματα που πρέπει να γνωρίζουν οι προγραμματιστές.

Με ενδιαφέρον για την ανάπτυξη της γλώσσας, όπως φαίνεται σε δείκτες δημοτικότητας γλωσσών όπως TIobe, PyPL και Redmonk, ο R εμφανίστηκε για πρώτη φορά στη δεκαετία του 1990 και έχει χρησιμεύσει ως εφαρμογή της γλώσσας προγραμματισμού S. Σημειώνει ο Roger Peng, ένας 18χρονος βετεράνος προγραμματισμού R που διδάσκει R τόσο στο πανεπιστήμιο όσο και στην διαδικτυακή πλατφόρμα Coursera, "Το R είναι η πιο δημοφιλής γλώσσα που χρησιμοποιείται στον τομέα των στατιστικών."

"Μου αρέσει το [R] επειδή είναι πολύ εύκολο να προγραμματίζεις προγράμματα από ένα επίπεδο επιστημονικής πληροφορίας", λέει ο Peng. Και ο R έχει γίνει γρηγορότερος με την πάροδο του χρόνου και χρησιμεύει ως γλώσσα κόλλας για τη συγκέντρωση διαφορετικών συνόλων δεδομένων, εργαλείων ή πακέτων λογισμικού, λέει ο Peng.

"Το R είναι ο καλύτερος τρόπος για να δημιουργήσετε μια αναπαραγώγιμη, υψηλής ποιότητας ανάλυση. Έχει όλη την ευελιξία και τη δύναμη που ψάχνω όταν ασχολούμαι με δεδομένα", λέει ο Matt Adams, επιστήμονας δεδομένων στο Code School, που προσφέρει διαδικτυακή εκπαίδευση προγραμματισμού. "Τα περισσότερα από τα προγράμματα που γράφω στο R είναι στην πραγματικότητα μόνο συλλογές σεναρίων που είναι οργανωμένα σε έργα."

Το ισχυρό οικοσύστημα πακέτων της R και τα οφέλη χαρτογράφησης

Τα πλεονεκτήματα της R περιλαμβάνουν το οικοσύστημα πακέτων. "Η αχανία του οικοσυστήματος πακέτων είναι σίγουρα μία από τις ισχυρότερες ιδιότητες του R - εάν υπάρχει μια στατιστική τεχνική, υπάρχει πιθανότητα να υπάρχει ήδη ένα πακέτο R εκεί έξω", λέει ο Adams.

"Υπάρχουν πολλές λειτουργίες που είναι ενσωματωμένες για στατιστικούς," λέει ο Peng. Το R είναι επεκτάσιμο και προσφέρει πλούσια λειτουργικότητα στους προγραμματιστές για να δημιουργήσουν τα δικά τους εργαλεία και μεθόδους για την ανάλυση δεδομένων, λέει. "Καθώς έχει περάσει ο καιρός, πολύ περισσότεροι άνθρωποι προσελκύθηκαν από άλλους τομείς", συμπεριλαμβανομένων των βιοεπιστημών και ακόμη και των ανθρωπιστικών επιστημών.

"Οι άνθρωποι μπορούν να το επεκτείνουν χωρίς να χρειάζεται να ζητήσουν άδεια." Πράγματι, ο Peng θυμάται τους όρους χρήσης της R ως μεγάλη βοήθεια πριν από πολλά χρόνια. "Τη στιγμή που κυκλοφόρησε για πρώτη φορά, το μεγαλύτερο πλεονέκτημα ήταν ότι ήταν ελεύθερο λογισμικό. Ο πηγαίος κώδικας και όλα σχετικά με αυτό ήταν διαθέσιμα για εξέταση."

Όλα τα γραφικά και οι δυνατότητες χαρτογράφησης του R, λέει ο Adams, είναι "ασύγκριτα". Τα πακέτα dplyr και ggplot2 για χειρισμό και σχεδίαση δεδομένων, αντίστοιχα, "έχουν βελτιώσει κυριολεκτικά την ποιότητα ζωής μου", λέει.

Για τη μηχανική μάθηση, τα πλεονεκτήματα του R συνδέονται κυρίως με τους ισχυρούς δεσμούς της R με τον ακαδημαϊκό κόσμο, λέει ο Adams. "Οποιαδήποτε νέα έρευνα στον τομέα έχει πιθανώς ένα συνοδευτικό πακέτο R για να το ακολουθήσει από την αρχή. Έτσι, από αυτή την άποψη, ο R παραμένει στην αιχμή", λέει. "Το πακέτο caret προσφέρει επίσης έναν αρκετά καλό τρόπο για τη μηχανική εκμάθηση στο R μέσω ενός σχετικά ενοποιημένου API." Ο Peng σημειώνει επίσης ότι εφαρμόζονται πολλοί δημοφιλείς αλγόριθμοι μηχανικής μάθησης στο R.

Αδυναμίες του R στη διαχείριση ασφάλειας και μνήμης

Για όλα τα οφέλη της, η R έχει το μερίδιο των αδυναμιών της. "Η διαχείριση της μνήμης, η ταχύτητα και η αποτελεσματικότητα είναι πιθανώς οι μεγαλύτερες προκλήσεις που αντιμετωπίζει ο R", λέει ο Adams. "Τα βήματα έχουν γίνει - και εξακολουθούν να γίνονται - για να σημειώσουν πρόοδο σε αυτά τα μέτωπα. Επίσης, οι άνθρωποι που έρχονται στο R από άλλες γλώσσες μπορεί επίσης να θεωρήσουν το R ιδιόμορφο."

Η βασική αρχή του R προέρχεται από γλώσσες προγραμματισμού που δημιουργήθηκαν τη δεκαετία του 1960, λέει ο Peng. "Υπό αυτήν την έννοια, είναι ένα είδος παλαιάς τεχνολογίας με τον τρόπο που είχε αρχικά σχεδιαστεί." Ο σχεδιασμός της γλώσσας μπορεί μερικές φορές να δημιουργήσει προβλήματα στην εργασία με πολύ μεγάλα σύνολα δεδομένων, λέει. Τα δεδομένα πρέπει να αποθηκευτούν στη φυσική μνήμη. Αλλά καθώς οι υπολογιστές έχουν αποκτήσει περισσότερη μνήμη, αυτό έχει γίνει λιγότερο θέμα, σημειώνει ο Peng.

Δυνατότητες όπως η ασφάλεια δεν ενσωματώθηκαν στη γλώσσα R, λέει ο Peng. Επίσης, το R δεν μπορεί να ενσωματωθεί σε ένα πρόγραμμα περιήγησης στο Web, λέει ο Peng. "Δεν μπορείτε να το χρησιμοποιήσετε για εφαρμογές τύπου Web ή διαδικτύου." Βασικά ήταν αδύνατο να χρησιμοποιήσουμε το R ως διακομιστή υποστήριξης για να κάνουμε υπολογισμούς λόγω της έλλειψης ασφάλειας μέσω του Διαδικτύου, λέει. Το ζήτημα της ασφάλειας, ωστόσο, έχει μειωθεί από εξελίξεις όπως η χρήση εικονικών κοντέινερ στην πλατφόρμα cloud του Amazon Web Services, λέει ο Peng.

Για πολύ καιρό, δεν υπήρχε μεγάλη αλληλεπίδραση στη γλώσσα, λέει. Γλώσσες όπως το JavaScript πρέπει να έρθουν και να καλύψουν αυτό το κενό, λέει ο Peng. Αν και μια ανάλυση μπορεί να γίνει σε R, η παρουσίαση των αποτελεσμάτων μπορεί να γίνει σε διαφορετική γλώσσα όπως η JavaScript, λέει.

Το R δεν είναι μόνο για προχωρημένους προγραμματιστές

Ωστόσο, ο Adams και ο Peng βλέπουν και οι δύο το R ως προσβάσιμη γλώσσα. "Δεν προέρχομαι από το υπόβαθρο της επιστήμης των υπολογιστών και δεν είχα ποτέ φιλοδοξίες να γίνω προγραμματιστής. Η γνώση των βασικών στοιχείων προγραμματισμού σίγουρα βοηθά κατά την προσθήκη R στην εργαλειοθήκη σας, αλλά δεν θα έλεγα ότι απαιτείται για να ξεκινήσετε", λέει ο Adams.

"Δεν θα έλεγα καν ότι το R είναι για προγραμματιστές. Είναι πιο κατάλληλο για άτομα που έχουν προβλήματα προσανατολισμένα στα δεδομένα που προσπαθούν να λύσουν, ανεξάρτητα από την ικανότητα προγραμματισμού τους", λέει.

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