Jump to content



  • astrolabos
    astrolabos

    Τι συνέβη με τη γλώσσα προγραμματισμού Ruby;

      Eνώ η JavaScript και η Python κυριαρχούν σήμερα, η Ruby εξακολουθεί να είναι σχετική με τις εξελίξεις

    Αν είστε αρκετά καιρό στον κόσμο της ανάπτυξης ιστοσελίδων, θα έχετε δει πολλές γλώσσες και frameworks να ανεβαίνουν και να πέφτουν. Ο διάττοντας αστέρας Ruby και το πλαίσιο εφαρμογών ιστού, Ruby on Rails, έλαμψε πιο έντονα από τους περισσότερους. Το 2008, μόλις τρία χρόνια μετά την παρουσίαση του Rails, αυτή η ίδια η δημοσίευση έθεσε το ερώτημα αν το πλαίσιο θα μπορούσε να είναι ο διάδοχος της Java, σημειώνοντας ότι απομάκρυνε την αγγαρεία από την ανάπτυξη ιστοσελίδων και ότι οι νεοσύστατες επιχειρήσεις που σχετίζονται με τη Ruby είχαν μεγάλες επενδύσεις επιχειρηματικών κεφαλαίων.

    Δεκαπέντε χρόνια αργότερα, η ιδέα ότι η Ruby θα αντικαθιστούσε τη Java μοιάζει γελοία. Το ευρετήριο TIOBE, το οποίο παρακολουθεί τα αποτελέσματα αναζήτησης για ερωτήματα σχετικά με διάφορες γλώσσες, είχε τη Ruby στην 16η θέση πρόσφατα. Βρίσκεται μεταξύ της MATLAB και της Object Pascal. (Η Java κατείχε τη τέταρτη θέση.) Η Filtered, μια εταιρεία που παρέχει εικονικά περιβάλλοντα στα οποία οι υποψήφιοι για εργασία μπορούν να επιδεικνύουν τις δεξιότητές τους σε πιθανούς εργοδότες, δεν αναφέρει καν τη Ruby στις οκτώ κορυφαίες γλώσσες της. Οι εργοδότες δήλωσαν ότι εξέτασαν υποψήφιους για τη Ruby μόνο περίπου στο 0,5% των περιπτώσεων.

    Αλλά μην βάζετε τη Ruby σε ένα μουσείο με τη FORTRAN ή την ALGOL ακόμα. Μίλησα με νυν και πρώην προγραμματιστές της Ruby για να προσπαθήσω να εντοπίσω την άνοδο και την πτώση της γλώσσας. Μοιράστηκαν τις σκέψεις τους σχετικά με το πώς και γιατί η Ruby εκτοπίστηκε από τη λίστα των πιο αγαπημένων γλωσσών - και επίσης γιατί πιστεύουν ότι εξακολουθεί να έχει μέλλον.

     

    Όταν η Ruby ήταν σπουδαία
    Υπήρχαν διάφοροι παράγοντες πίσω από την αρχική αύξηση της δημοτικότητας της Ruby, αλλά ο κυριότερος από αυτούς ήταν ότι καθιστούσε εύκολη τη γρήγορη ανάπτυξη, ιδίως για front-end εφαρμογές. Και αυτό δεν έχει αλλάξει. "Το Ruby on Rails εξακολουθεί να είναι ένας εξαιρετικός τρόπος για μια μικρή ομάδα να έχει τον αντίκτυπο μιας μεγάλης ομάδας", λέει ο Noel Rappin, συν-συγγραφέας του Programming Ruby 3.2. "Παραμένει ένας από τους γρηγορότερους τρόπους για να φτάσετε από το μηδέν σε ένα πραγματικό, πολύτιμο προϊόν".

    "Η Ruby είναι και ήταν πάντα η καλύτερη γλώσσα όταν πρόκειται για την παροχή στον χρήστη μιας σταθερής front-end εμπειρίας", εξηγεί ο Pulkit Bhardwaj, ειδικός ηλεκτρονικού εμπορίου στο BoutiqueSetup.net. "Παρέχει ευκολία χρήσης για τους τελικούς χρήστες και δίνει μια σταθερή, ασφαλή εμπειρία. Παρέχει επίσης χώρο για πειραματισμό, καθώς η Interactive Ruby προσφέρει άμεσα αποτελέσματα έκφρασης γραμμή προς γραμμή".

    Η Ruby έχει επίσης συνδεθεί με μια ισχυρή κοινότητα ανοιχτού κώδικα από τις πρώτες μέρες της. Ο Kevin Trowbridge, CTO της Qwoted, πιστεύει ότι η φύση της ίδιας της γλώσσας έχει μεγάλη σχέση με αυτό. "Είναι η πιο "γραμματισμένη" από όλες τις γλώσσες προγραμματισμού", λέει, εννοώντας ότι "είναι τόσο εύκολο να γράψεις και να διαβάσεις. Αυτός είναι ο λόγος για τον οποίο έχετε την κοινότητα, η οποία είναι εξαιρετικά ισχυρή, και τη φιλοσοφία, η οποία είναι ότι είναι βελτιστοποιημένη για το προϊόν, την παραγωγικότητα των προγραμματιστών και την ευτυχία".

    Αλλά αυτά τα πλεονεκτήματα δεν έδωσαν ποτέ στη Ruby και τη Ruby on Rails την απόλυτη κυριαρχία. Και οι άλλες γλώσσες και τα πλαίσια σίγουρα δεν έμειναν άπρακτα στο μεταξύ. "Το Rails ήρθε στο μεταίχμιο μιας περιόδου μετασχηματισμού και ανάπτυξης για το διαδίκτυο", λέει ο Matthew Boeh, προγραμματιστής της Ruby από το 2006. "Και επωφελήθηκε και τροφοδότησε αυτή την ανάπτυξη, αλλά ήταν δεδομένο ότι δεν θα ήταν η μόνη ιστορία επιτυχίας".

    Ο Boeh ανέλαβε πρόσφατα δουλειά ως ανώτερος μηχανικός λογισμικού στην Lattice, ένα κατάστημα TypeScript. "Θα μπορούσαμε να πούμε ότι η Ruby υπήρξε θύμα της ίδιας της επιτυχίας της, δεδομένου ότι η κοινότητά της αποτέλεσε σημαντική κινητήρια δύναμη στην αναγέννηση της γραμμής εντολών τα τελευταία χρόνια", λέει. "Στις αρχές της δεκαετίας του '00 εισήγαγε την REPL-driven ανάπτυξη σε ανθρώπους που δεν είχαν ακούσει ποτέ για τη Lisp, τη διαχείριση πακέτων σε ανθρώπους που θα είχαν τρομάξει από το CPAN της Perl, τη test-driven ανάπτυξη σε ανθρώπους εκτός του άκρως εταιρικού κόσμου της Java, και ούτω καθεξής. Όλα αυτά είναι πράγματα που σήμερα θεωρούνται δεδομένα. Η Ruby δεν γέννησε τίποτα από αυτά, αλλά όλα αυτά έγιναν δημοφιλή και προσιτά από τους Rubyists".

     

    Οι διεκδικητές της Ruby: JavaScript και Python
    Αν υπάρχει μία μόνο γλώσσα που κυριαρχεί πλέον στους χώρους όπου κυριαρχούσε η Ruby, αυτή είναι η JavaScript. Αυτό έγινε πραγματικότητα μόνο καθώς η γλώσσα ξέφυγε από το πρόγραμμα περιήγησης για να κατακτήσει τον υπόλοιπο κόσμο. "Καθώς η JavaScript εξελίχθηκε σε μια full-stack γλώσσα, δόθηκε η δυνατότητα στους μηχανικούς να δημιουργούν front end, back end και mobile projects σε μια γλώσσα ή ακόμα και σε μια κοινή βάση κώδικα", λέει ο Jemiah Sius, διευθυντής σχέσεων με προγραμματιστές στη New Relic. "Η Ruby είναι εύκολη στην εκμάθηση και έχει πολύ υψηλά πρότυπα ασφαλείας, καθώς και μια ενεργή κοινότητα. Αλλά όταν κάποιος σκέφτεται full-stack, σκέφτεται JavaScript-Node.js, React ή όποιο άλλο πλαίσιο προτιμά".

    Ο Trowbridge της Qwoted σημειώνει ότι η JavaScript μπόρεσε να καλύψει αυτό το κενό επειδή η γλώσσα έχει βελτιωθεί από μια γλώσσα που κάποτε οι προγραμματιστές έβλεπαν με κάποια περιφρόνηση. Στην πραγματικότητα, με τον καιρό μοιάζει περισσότερο στη Ruby. "Οι προμηθευτές προγραμμάτων περιήγησης κατέβαλαν προσπάθειες για την τυποποίηση, τυποποίηση, απλοποίηση και βελτίωση", λέει. "Είναι πολύ καλύτερο από ό,τι ήταν η JavaScript".

    "Το οικοσύστημα της JavaScript στη σημερινή του μορφή θα ήταν αδιανόητο το 2004 - χρειαζόταν τόσο η αναγέννηση της γραμμής εντολών όσο και η απογείωση της διαδικτυακής πλατφόρμας", προσθέτει ο Boeh της Lattice. "Γνωρίζατε ότι χρειάστηκε μια ολόκληρη δεκαετία, από το 1999 έως το 2009, για να κυκλοφορήσει μια μόνο νέα έκδοση του προτύπου JavaScript; Τώρα έχουμε μία κάθε χρόνο. Το Rails έγινε μεγάλη υπόθεση στην τελευταία χρονική περίοδο όπου ήταν δυνατόν να είσαι full-stack developer χωρίς να γνωρίζεις JavaScript".

    Εν τω μεταξύ, η Python έχει φτάσει να κυριαρχεί σε έναν από τους πιο "καυτούς" τομείς ανάπτυξης σήμερα, την τεχνητή νοημοσύνη και τη μηχανική μάθηση. "Η Python έγινε δημοφιλής μεταξύ της επιστημονικής κοινότητας επειδή μπορούσαν να δημιουργήσουν πρωτότυπα μοντέλα και αλγόριθμους πιο γρήγορα από ποτέ, οπότε κινήθηκε χρόνια μπροστά από τη Ruby" λέει ο Bhardwaj. "Η Ruby από την άλλη πλευρά έγινε αντιληπτή ως αργή στην εκτέλεση και δεν πήρε αυτό το προβάδισμα για την ανάπτυξη". Ο Sius της New Relic συμφωνεί: λέει ότι "όταν κάποιος σκέφτεται μια ευέλικτη γλώσσα που μπορεί να δημιουργήσει τα πάντα, από παιχνίδια μέχρι VR, AI και ML, όλοι γνωρίζουν ότι η Python είναι ο ξεκάθαρος νικητής".

     

    Η παρακμή της Ruby
    Διάφορες δυναμικές οδήγησαν τη JavaScript και την Python στην κυριαρχία έναντι της Ruby, και υπερβαίνουν απλώς τις ιδιότητες των ίδιων των γλωσσών. "Η Python και η Ruby στα χαρτιά είναι αρκετά ισοδύναμες", λέει ο Trowbridge της Qwoted. "Είναι και οι δύο δυναμικές, διερμηνευμένες γλώσσες σεναρίων που είναι πιο ευτυχείς στον διακομιστή. Δεν χρησιμοποιούν τη μνήμη πολύ αποτελεσματικά, οπότε είναι ακριβές στην εκτέλεση, αλλά έχουν απίστευτη ευελιξία, οπότε είναι επίσης μάλλον γρήγορες στη συγγραφή και φιλικές προς τους αρχάριους".

    Αλλά όταν πρόκειται για την επιστήμη των δεδομένων, η Python έχει προβάδισμα λόγω της εύκολης διαθεσιμότητας βιβλιοθηκών όπως η TensorFlow και η Keras. "Αυτά τα πλαίσια διευκολύνουν τους προγραμματιστές να δημιουργούν οπτικοποιήσεις δεδομένων και να γράφουν προγράμματα για μηχανική μάθηση", λέει ο Bhardwaj.

    Η JavaScript, εν τω μεταξύ, έχει γεννήσει φαινομενικά ατελείωτες βιβλιοθήκες που οι προγραμματιστές μπορούν εύκολα να κατεβάσουν και να προσαρμόσουν για σχεδόν κάθε σκοπό. "Ως τεχνολόγος, μπορείτε να κάνετε τη δική σας διαδρομή ακολουθώντας ό,τι εξειδικευμένο πιστεύετε ότι είναι ο σωστός τρόπος", λέει ο Trowbridge. Αλλά όταν πρόκειται για τη JavaScript, "αυτές οι βιβλιοθήκες είναι εξαιρετικές. Γιατί να τα αγνοήσετε όλα αυτά;"

    Πολλές από αυτές τις βιβλιοθήκες αναπτύχθηκαν από μέλη της κοινότητας, γεγονός που ενέπνευσε και άλλους να συνεισφέρουν σε ένα φαινόμενο χιονοστιβάδας που είναι γνωστό σε όλους όσους ασχολούνται με τον ανοιχτό κώδικα. Όμως ένας μεγάλος παίκτης είχε τεράστια επιρροή εδώ. Το TensorFlow της Python, το οποίο ο Bhardwaj χαρακτήρισε "game-changer", κυκλοφόρησε από την Google, η οποία ακολούθησε το παράδειγμα της ακαδημαϊκής κοινότητας και κατέστησε την Python ως εσωτερική γλώσσα σεναρίων. Η Google, ως δημιουργός του κυρίαρχου προγράμματος περιήγησης στον ιστό, έχει επίσης προφανές ενδιαφέρον για την ενίσχυση της JavaScript, και ο Trowbridge αποδίδει στην Google μεγάλο μέρος των ευθυνών για το γεγονός ότι η JavaScript έγινε πολύ πιο γρήγορη και πιο αποδοτική στη μνήμη από ό,τι ήταν κάποτε: "Κατά κάποιο τρόπο μοιάζει σχεδόν με γλώσσα χαμηλού επιπέδου", λέει. Εν τω μεταξύ, η Ruby αναγνωρίζεται ευρέως ότι υστερεί σε επιδόσεις, εν μέρει επειδή δεν έχει το ίδιο είδος εταιρικού χορηγού με πόρους για τη βελτίωσή της.

    Και σε ορισμένες θέσεις όπου η Ruby κάποτε ευδοκιμούσε, δεν έχει αντικατασταθεί από μια άλλη γλώσσα- μάλλον, το έδαφος έχει μετατοπιστεί έτσι ώστε αυτές οι θέσεις να μην είναι πλέον αναγνωρίσιμες. "Ξεκίνησα την επιχείρησή μου κάνοντας δικτυακούς τόπους μάρκετινγκ και ηλεκτρονικά καταστήματα για τους πελάτες ενός τοπικού δημιουργικού γραφείου, και νομίζω ότι είναι επίσης εύκολο να μην προσέξει κανείς πόσο πολύ αυτό το κατώτερο άκρο του κόσμου της διαδικτυακής ανάπτυξης έχει αυτοματοποιηθεί", λέει ο Boeh της Lattice. "Μέσα σε δύο χρόνια, ολόκληρη αυτή η επιχείρηση δεν ήταν πλέον βιώσιμη - κανείς δεν ενδιαφερόταν για τέτοιες τοποθεσίες κατά παραγγελία, όταν μπορούσαν να τα καταφέρουν αρκετά αξιοπρεπώς με το WordPress ή το Shopify".

     

    Γιατί η Ruby δεν πάει πουθενά
    Τούτου λεχθέντος, η Ruby δεν πρόκειται να εξαφανιστεί - και το Shopify, ένας γίγαντας στο ηλεκτρονικό εμπόριο, είναι ένας από τους μεγαλύτερους λόγους για τους οποίους, καθώς η Ruby on Rails είναι η κύρια πλατφόρμα ανάπτυξης της. "Η Ruby εξακολουθεί να είναι η καλύτερη για τη δημιουργία εφαρμογών ηλεκτρονικού εμπορίου λόγω της δυναμικής λειτουργικότητας και της ευελιξίας της", λέει ο Bhardwaj της BoutiqueSetup.net. "Μπορείτε να χτίσετε την εφαρμογή σας μέσω διαφορετικών ενοτήτων και να τις τροποποιήσετε αργότερα. Αυτό διευκολύνει την ενημέρωση της εφαρμογής για πρόσθετα χαρακτηριστικά".

    Και ενώ το Shopify προφανώς δεν λειτουργεί στην κλίμακα μιας εταιρείας όπως η Google, εξακολουθεί να έχει ως στόχο να λειτουργήσει ως κάτι σαν προστάτης για τη Ruby, όπως κάνει η Google για τις αγαπημένες της γλώσσες. Για παράδειγμα, η Shopify ανέπτυξε πρόσφατα το YJIT, έναν μεταγλωττιστή just-in-time που βελτιώνει την απόδοση της Ruby και έχει ενσωματωθεί στο πρότυπο Ruby.

    Ο Trowbridge της Qwoted λέει ότι η Ruby ευδοκιμεί επίσης "ως μια εξαιρετική γλώσσα 'κόλλα' από την πλευρά του διακομιστή που λειτουργεί καλά για το συστατικό διακομιστή των εφαρμογών ιστού, όπως στη λειτουργία 'API only' του Rails". Κατά κάποιο τρόπο, σημειώνει, αυτός ο ρόλος "αφήνει τη Ruby ουσιαστικά εκεί από όπου ξεκίνησε".

    Συνολικά, σχεδόν όλοι με τους οποίους μίλησε ο Josh Fruhlinger, συντάκτης του άρθρου από τον δικτυακό τόπο infoworld, πιστεύουν ότι η Ruby και η Ruby on Rails θα συνεχίσουν να χρησιμοποιούνται σε διάφορες ρυθμίσεις. "Υπάρχουν πολλές γλώσσες που παραμένουν ευρέως χρησιμοποιούμενες και σχετικές, ενώ δεν είναι τόσο δημοφιλείς όσο ήταν κάποτε", λέει ο Trowbridge. "Θα πρότεινα τη Java ως το κυριότερο παράδειγμα και θα έλεγα ότι η Ruby και η Java θα έχουν παρόμοια πορεία".

    Τέλος, υπάρχει μια ζέση και ένας ενθουσιασμός για τη Ruby από την κοινότητά της που δεν φαίνεται να συναντά κανείς με άλλες γλώσσες, ακόμη και με αυτές που σε πολλούς τομείς έχουν "νικήσει" τη Ruby. Για παράδειγμα, ο Cosmin Andriescu, CTO της Lumenova AI, λέει ότι "η Rails εξακολουθεί να έχει ένα σημαντικό πλεονέκτημα, με τον τεράστιο αριθμό βιβλιοθηκών Ruby gem, έναντι πολλών από τα πλαίσια JavaScript, τα οποία έχουν ασταθή API και δεν είναι αρκετά ώριμα σε όλα τα απαραίτητα εργαλεία ανάπτυξης ιστοσελίδων". Ο Boeh, κάπως πιο ωμά, χαρακτηρίζει την Python ως "τη γλώσσα στην οποία έχω συναντήσει τους περισσότερους ανθρώπους που μισούν απόλυτα τη χρήση της".

    "Χρησιμοποιώ ακόμα τη Ruby για προσωπικά έργα και ελπίζω να μπορέσω να τη χρησιμοποιήσω ξανά επαγγελματικά", προσθέτει ο Boeh. "Υπάρχουν πολλές συναρπαστικές εξελίξεις στον κόσμο της Ruby αυτή τη στιγμή και πριν από έξι μήνες υπήρχαν πολλές ευκαιρίες απασχόλησης. Η Ruby δεν πρόκειται ποτέ να γίνει ξανά το Next Big New Thing, αλλά νομίζω ότι ήρθε για να μείνει".


    Πηγή
    Φωτογραφία: Finesell/Shutterstock
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.