Τα κορυφαία 8 πράγματα που έμαθα από 4000 προγραμματιστές σκουριάς

Γνωρίζετε ότι οι περισσότεροι προγραμματιστές Rust εργάζονται σε διαδικτυακές εφαρμογές; ; Η σκουριά είναι προκλητική, αλλά και επιβραβευμένη και διασκεδαστική! Μάθετε το Rust με το παράδειγμα ή ανοίξτε αυτό το repo GitHub για να ξεκινήσετε στον VSCode.

Η σκουριά είναι ένα από τα πιο καυτά; γλώσσες προγραμματισμού σήμερα. Είναι η πιο αγαπημένη γλώσσα προγραμματισμού του StackOverflow τα τελευταία 4 χρόνια. Ωστόσο, εξακολουθεί να έχει τη φήμη ως γλώσσα προγραμματισμού για τους alpha geeks.

Σύμφωνα με κάποια εκτίμηση, υπάρχουν 600.000 προγραμματιστές Rust παγκοσμίως, που είναι σημαντικός αριθμός. Αλλά εξακολουθεί να επισκιάζεται σε σύγκριση με δεκάδες εκατομμύρια προγραμματιστές JavaScript, Java και Python.

Ποιοι είναι αυτοί οι προγραμματιστές Rust; Για ποιο λόγο χρησιμοποιούν το Rust; Γιατί αγαπούν τόσο πολύ τον Rust; Και το πιο σημαντικό, πώς μπαίνετε στις τάξεις τους και δείτε μόνοι σας γιατί ο Rust είναι τόσο αγαπητός; Μην μείνετε πίσω.

Προκειμένου να απαντήσει σε αυτές τις ερωτήσεις, η κοινότητα Rust διεξήγαγε ετήσιες έρευνες προγραμματιστών από το rust-lang.org από το 2016. Ο ιστότοπος κυκλοφόρησε πρόσφατα τα αποτελέσματα της έρευνας του 2019 με βάση απαντήσεις από περίπου 4000 προγραμματιστές Rust. Εδώ είναι τα κορυφαία 8 πράγματα που έμαθα από την έρευνα.

???? Το Rust προορίζεται για επαγγελματίες προγραμματιστές

Η γλώσσα προγραμματισμού Rust δεν έχει σχεδιαστεί για να είναι "εύκολο να ξεκινήσετε". Αντίθετα, έχει σχεδιαστεί για να είναι ισχυρό και ασφαλές ταυτόχρονα. Στοχεύει να είναι η γλώσσα παραγωγικότητας προγραμματιστή για επαγγελματίες προγραμματιστές. Είναι προκλητικό, διασκεδαστικό και ικανοποιητικό. Αυτό φαίνεται στην έρευνα.

Πολύ λίγοι ερωτηθέντες αποκαλούνται εμπειρογνώμονες σκουριάς. Οι περισσότεροι άνθρωποι βαθμολογούν την εμπειρία τους στο Rust ως 7/10 ή λιγότερο, παρά το γεγονός ότι πάνω από το 68% από αυτούς γράφουν τον κώδικα Rust σε εβδομαδιαία βάση. Είναι σαφώς μια γλώσσα που χρειάζεται χρόνο για να κυριαρχήσει και να υπερέχει.

Περίπου το 37% των χρηστών Rust αισθάνθηκαν παραγωγικοί στο Rust σε λιγότερο από ένα μήνα χρήσης - αυτό δεν διαφέρει πολύ από το ποσοστό πέρυσι (40%). Πάνω από το 70% ένιωσαν παραγωγικοί τον πρώτο τους χρόνο. Δυστυχώς, όπως και πέρυσι, εξακολουθεί να υπάρχει αγώνας μεταξύ των χρηστών - το 21% δήλωσε ότι δεν αισθάνθηκε ακόμη παραγωγικός.

Ταυτόχρονα, όταν ρωτήθηκε γιατί να μην χρησιμοποιεί το Rust σε ορισμένα έργα, η καμπύλη μάθησης αναφέρεται ως ο πιο κοινός λόγος # 2. Ο # 1 λόγος, φυσικά, είναι η απόφαση της εταιρείας να χρησιμοποιήσει μια συγκεκριμένη γλώσσα προγραμματισμού σε ένα έργο.

; Η τεκμηρίωση είναι κρίσιμη για έγκριση

Πώς ξεπεράσουν οι προγραμματιστές την καμπύλη εκμάθησης του Rust και την ερωτεύονται; Λοιπόν, όχι απροσδόκητα, οι περισσότεροι προγραμματιστές ανέφεραν την «καλύτερη τεκμηρίωση» ως οδηγό για υιοθέτηση.

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

Ενώ η έρευνα είναι προκατειλημμένη προς προγραμματιστές που ήδη γνώριζαν τα βασικά του Rust, φαίνεται ότι υπάρχει δίψα για γνώση και αυτο-βελτίωση σε αυτό το πλήθος.

; Οι προγραμματιστές δεν θέλουν τόμους κειμένου

Η παραδοσιακή τεκμηρίωση λογισμικού αποτελείται συνήθως από ολόκληρα βιβλία και ιστότοπους. Οι νέες γενιές προγραμματιστών θέλουν όλο και καλύτερη τεκμηρίωση. Ως «νέα» γλώσσα, η Rust πρωτοστατεί ήδη στην καινοτομία όσον αφορά την τεκμηρίωση γλώσσας προγραμματισμού.

Για παράδειγμα, ο μεταγλωττιστής Rust είναι ένα εργαλείο αυτόματης τεκμηρίωσης. Ένα από τα πιο μοναδικά και αγαπημένα χαρακτηριστικά του Rust είναι ο επιθετικός του μεταγλωττιστής που σας βοηθά να διασφαλίσετε την ορθότητα και την ασφάλεια πριν ακόμη εκτελεστεί το πρόγραμμα. Ως αποτέλεσμα, οι προγραμματιστές Rust μπορούν να γράψουν προγράμματα υψηλής απόδοσης αλλά ασφαλή.

Όταν αντιμετωπίζετε ένα σφάλμα συλλογής στο Rust, ο μεταγλωττιστής σας δίνει μια άμεση εξήγηση του σφάλματος και προτάσεις για τον τρόπο διόρθωσης του σφάλματος βάσει του πλαισίου του προγράμματος σας.

Αυτό το πρόγραμμα εκκίνησης στο GitHub σας ξεκινά με τον μεταγλωττιστή Rust και το σύστημα Cargo χωρίς να χρειάζεται να εγκαταστήσετε κάποια αλυσίδα εργαλείων λογισμικού. Μπορείτε να χρησιμοποιήσετε το VSCode online IDE απευθείας με αυτό το έργο.

Οι ιστότοποι τεκμηρίωσης Rust όπως το docs.rs και το Rust by Example (και η εκτεταμένη έκδοσή του) χρησιμοποιούν το Rust Playground για να εκτελούν τον κώδικα παραδείγματος Rust απευθείας από το πρόγραμμα περιήγησης. Αυτά τα διαδραστικά βιβλία είναι πολύ καλύτερα από το απλό κείμενο.

Ωστόσο, όπως ανακαλύπτει η έρευνα, οι προγραμματιστές θέλουν περισσότερα. Οι προγραμματιστές διψούν για περισσότερο περιεχόμενο βίντεο, για παράδειγμα. Μπορούμε να προσβλέπουμε σε περισσότερα βίντεο κωδικοποίησης και ζωντανές μεταδόσεις από την κοινότητα σύντομα.

; ️ Οι περισσότεροι άνθρωποι χρησιμοποιούν το Rust για εφαρμογές ιστού, srsly!

Ως γλώσσα σε επίπεδο συστήματος που προορίζεται να αντικαταστήσει τα C και C ++, οι περισσότεροι υποθέτουν ότι το Rust θα μπορούσε να χρησιμοποιηθεί σε προγραμματισμό υποδομής, όπως λειτουργικά συστήματα, εγγενείς βιβλιοθήκες και πλατφόρμες χρόνου εκτέλεσης.

Ωστόσο, η έρευνα δείχνει ξεκάθαρα ότι σε μεγάλο βαθμό, οι περισσότεροι προγραμματιστές Rust εργάζονται σήμερα σε backend εφαρμογών ιστού. Δεν είναι περίεργο ότι τα κιβώτια όπως το hyper, το actix-web και το Rocket είναι από τα πιο δημοφιλή στους προγραμματιστές Rust.

Για να είμαστε σίγουροι, οι περισσότεροι προγραμματιστές λογισμικού εργάζονται σε εφαρμογές Ιστού. Δεν προκαλεί έκπληξη το γεγονός ότι, καθώς η Rust κερδίζει την υιοθέτηση, τα έργα Rust θα αντικατοπτρίζουν τη μεγαλύτερη βιομηχανία λογισμικού.

Ωστόσο, αυτό παρουσιάζει ευκαιρίες για έργα και εργαλεία που ενσωματώνουν το Rust σε δημοφιλείς χρόνους εκτέλεσης εφαρμογών ιστού. Για παράδειγμα, η υβριδική προσέγγιση εφαρμογής Rust + JavaScript κερδίζει δυναμική.

; Το Blockchain είναι ένα Rusty εστία

Όσον αφορά το λογισμικό υποδομής, το Rust πραγματικά λάμπει ως γλώσσα προγραμματισμού για συστήματα blockchain.

Για όλους τους τομείς της βιομηχανίας που σχετίζονται με λογισμικό, η έρευνα δείχνει ότι το blockchain κατατάσσεται μόνο στην 35η θέση για όλους τους προγραμματιστές λογισμικού, αλλά 11η για τους προγραμματιστές Rust. Αυτό σε καμία περίπτωση οφείλεται στην επιθετική υιοθέτηση Rust από μεγάλα έργα blockchain όπως το Polkadot / Substrate, το Oasis, το Solana και το Second State κ.λπ.

Με πολλούς τρόπους, τα blockchain είναι ιδανικά για το Rust. Το Blockchains αντιπροσωπεύει την κοινοτική προσπάθεια για την ανασυγκρότηση της διαδικτυακής υποδομής με αποκεντρωμένο τρόπο. Απαιτούν λογισμικό υψηλής απόδοσης που είναι επίσης πολύ ασφαλές. Εάν ενδιαφέρεστε για μια καριέρα ως μηχανικός blockchain, ο Rust είναι μια δεξιότητα που πρέπει να έχετε σήμερα.

Rust ❤️ WebAss Assembly

Η έρευνα αποκαλύπτει ότι το WebAssembly είναι ένα δημοφιλές περιβάλλον χρόνου εκτέλεσης για προγράμματα Rust. Το Rust και το WebAss Assembly εφευρέθηκαν και οι δύο στο Mozilla.

Το Rust επικεντρώνεται στην απόδοση και την ασφάλεια της μνήμης, ενώ το WebAss Assembly επικεντρώνεται στην απόδοση και την ασφάλεια χρόνου εκτέλεσης. Ως κοντέινερ χρόνου εκτέλεσης, το WebAssembly καθιστά επίσης τα προγράμματα Rust cross-platform και πιο διαχειρίσιμα. Υπάρχουν πράγματι πολλή συνέργεια μεταξύ των δύο τεχνολογιών.

Το WebAssembly εφευρέθηκε αρχικά ως εικονική μηχανή από τον πελάτη για την εκτέλεση εφαρμογών στο πρόγραμμα περιήγησης. Αλλά όπως η Java και η JavaScript πριν από αυτό, το WebAssembly κάνει τώρα τη μετεγκατάσταση από την πλευρά του πελάτη στην πλευρά του διακομιστή.

Το Rust-in-WebAssembly εντάσσεται καλά με την τάση επιτάχυνσης της υιοθέτησης Rust σε εφαρμογές web backend. Μπορείτε να ξεκινήσετε με την ανάπτυξη εφαρμογών Rust και WebAssembly από ένα πρόγραμμα εκκίνησης σε αυτό το αποθετήριο GitHub.

; Ο ασύγχρονος προγραμματισμός απογειώνεται

Τα τελευταία χρόνια, δύο νέες γλώσσες προγραμματισμού έχουν αποκτήσει σημαντική έλξη μεταξύ των προγραμματιστών. Το ένα είναι το Rust και το άλλο είναι το Go. Ένα μεγάλο μέρος της επιτυχίας τους είναι η ανώτερη υποστήριξή τους για μοντέλα ταυτόχρονης προγραμματισμού.

Στην πραγματικότητα, μια πρώιμη ετικέτα του Rust είναι "ατρόμητη ταυτόχρονη". Υπόσχεται παραγωγικότητα προγραμματιστή γράφοντας ασύγχρονα προγράμματα πολλαπλών νημάτων βελτιστοποιημένα για τις σημερινές αρχιτεκτονικές CPU πολλαπλών πυρήνων. Όπως έδειξε το Node.js, ο εύκολος ασύγχρονος προγραμματισμός είναι ζωτικής σημασίας για την επιτυχία μιας γλώσσας ή πλαισίου από την πλευρά του διακομιστή.

Η έρευνα δείχνει ότι 4 από τα 10 πιο σημαντικά κιβώτια Rust (δηλαδή βιβλιοθήκες τρίτων), το tokio, το async, το futures και το hyper, είναι πλαίσια για ασύγχρονες εφαρμογές πολλαπλών νημάτων.

; R, Python και JavaScript

Καθώς μεγαλώνει η υιοθέτηση του Rust, οι προγραμματιστές πρέπει όλο και περισσότερο να ενσωματώνουν προγράμματα Rust με προγράμματα γραμμένα σε άλλες γλώσσες. Στο παρελθόν, οι C και C ++ ήταν οι πιο συνηθισμένες γλώσσες που «μιλούσαν» με τον Rust, καθώς όλες χρησιμοποιούνται σε έργα λογισμικού υποδομής.

Καθώς το Rust εξελίσσεται σε προγράμματα λογισμικού εφαρμογών, απαιτούνται περισσότερες διεπαφές και γέφυρες επιπέδου γλώσσας τώρα. Ένα καλό παράδειγμα είναι η γέφυρα JavaScript Rust που υποστηρίζει λειτουργίες Rust σε εφαρμογές Node.js.

Η έρευνα διαπίστωσε ότι, εκτός από το C / C ++ και το JavaScript, οι προγραμματιστές Rust ενδιαφέρονται να ενσωματωθούν με τους R και Python. Αυτό υποδηλώνει τα ενδιαφέροντα των προγραμματιστών για μηχανική μάθηση, μεγάλα δεδομένα και εφαρμογές τεχνητής νοημοσύνης (AI). Στην πραγματικότητα, πολλά πακέτα μηχανικής μάθησης και στατιστικών Python και R υλοποιούνται σε εγγενείς δυαδικές ενότητες.

Το Rust είναι μια από τις καλύτερες γλώσσες προγραμματισμού για τη σύνταξη εγγενών ενοτήτων. Αυτό το παράδειγμα δείχνει πώς να χρησιμοποιήσετε το Rust για την εκτέλεση μοντέλων Tensorflow σε μια εφαρμογή Node.js. Στο μέλλον, οραματίζουμε τέτοια Rust modules να λειτουργούν σε κοντέινερ υψηλής απόδοσης όπως το WebAssembly.

συμπέρασμα

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

Και το πιο σημαντικό από όλα, είμαστε πρόθυμοι να κάνουμε περισσότερους φίλους και να διασκεδάσουμε με την πιο αγαπημένη γλώσσα προγραμματισμού στον κόσμο!

Σχετικά με τον Συγγραφέα

Ο Δρ Michael Yuan είναι ο συγγραφέας 5 βιβλίων σχετικά με τη μηχανική λογισμικού. Το τελευταίο του βιβλίο Building Blockchain Apps δημοσιεύθηκε από τον Addison-Wesley τον Δεκέμβριο του 2019. Ο Dr. Yuan είναι ο συνιδρυτής της Second State, μιας εκκίνησης που χρηματοδοτείται από το VC και φέρνει τις τεχνολογίες WebAssembly και Rust σε εφαρμογές cloud, blockchain και AI. Επιτρέπει στους προγραμματιστές να αναπτύξουν γρήγορες, ασφαλείς, φορητές και χωρίς Rust λειτουργίες Rust στο Node.js.

Πριν από το Second State, ο Δρ. Yuan ήταν εδώ και πολύ καιρό συνεισφέρων ανοιχτού κώδικα στα Red Hat, JBoss και Mozilla Εκτός λογισμικού, ο Δρ. Yuan είναι κύριος ερευνητής στα Εθνικά Ινστιτούτα Υγείας, με πολλαπλά βραβεία έρευνας για τον καρκίνο και την έρευνα για τη δημόσια υγεία. Κατέχει διδακτορικό στην αστροφυσική από το Πανεπιστήμιο του Τέξας στο Ώστιν.