5 νέες γλώσσες προγραμματισμού που πρέπει να γνωρίζετε

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

Δεν μας φτάνουν ήδη;

Τα υπάρχοντα εργαλεία δεν κάνουν τη δουλειά;

Και μετά, υπάρχουν εκείνοι οι ακούραστοι αναζητητές που πηδούν με την ευκαιρία να δοκιμάσουν νέα πράγματα και να σκοντάψουν σε πολύτιμους λίθους. Η μάθηση είναι αυτοσκοπός και δεν χρειάζονται πολλά πειστικά για να κάψουν τα Σαββατοκύριακά τους φτιάχνοντας ένα παιχνίδι καρτών που βασίζεται σε κονσόλα σε αυτήν την ασαφή, νέα γλώσσα.

Ανεξάρτητα από το στρατόπεδο που ανήκετε, υπάρχει κάτι πέρα ​​από τη συζήτηση: όλοι θέλουμε να αφιερώσουμε χρόνο σε κάτι που θα έχει ένα λαμπρό μέλλον.

Για τους ανθρώπους στο στρατόπεδο κληρονομιάς, η αγαπημένη τους υπάρχουσα γλώσσα έχει ήδη τόνους δυναμικής και θα συνεχίσει να έχει ένα λαμπρό μέλλον. Σε αυτούς, πρέπει να τους υπενθυμίσω ότι η ώριμη πλέον προτιμώμενη αλυσίδα εργαλείων ανάπτυξης ήταν κάποτε το «kool-aid» που πολλοί αρνήθηκαν να πιουν. Και έτσι είναι σήμερα. προστίθενται νέες τεχνολογίες για να λύσουν νέα προβλήματα ή να απαλύνουν τον πόνο της ανάπτυξης.

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

Και σε όσους τους αρέσει να τρέχουν με τα γυαλιστερά πράγματα, μια προειδοποίηση: η διασκέδαση είναι απαραίτητη ως προγραμματιστής, αλλά πρέπει να προσέχουμε να μην σπαταλάμε τις ενέργειές μας άσκοπα.

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

Πώς επιλέχθηκαν αυτές οι γλώσσες

Η επιλογή γλώσσας είναι μια εκφοβιστική δουλειά, ειδικά όταν εξετάζονται νέες γλώσσες για μελλοντικά οφέλη στην απασχόληση και την ικανοποίηση. Κάθε συγγραφέας γλώσσας είναι πεπεισμένος ότι έχει δημιουργήσει την τέλεια δυνατή γλώσσα και έχει λύσει όλα τα προβλήματα που πρέπει να απαντηθούν. Πώς, λοιπόν, κόβεις;

Για αυτήν την ανάρτηση, εστίασα σε μερικές παραμέτρους για να διατηρήσω την αναζήτησή μου εντός λογικών ορίων.

Ημερομηνία κυκλοφορίας

Απέφευγα συγκεκριμένα τις γλώσσες που είναι πολύ, πολύ νέες.

Νέες, εννοώ γλώσσες κάτω των 5-6 ετών από τη γραφή, και ειδικά αυτές που δεν έχουν φτάσει σε σταθερότητα (έκδοση 1.0 δηλαδή). Αυτό, δυστυχώς, αποκλείει ορισμένα πραγματικά πετράδια όπως Κρύσταλλο, Αλλά ελπίζω να επιστρέψω σε αυτό και να γράψω για την επιτυχία του κάποια μέρα. 🙂

Ένα απόσπασμα κώδικα σε Crystal (“Fast as C, Slick as Ruby”)

Για μένα, 5-12 χρόνια είναι το γλυκό σημείο, όταν μια γλώσσα έχει σταθεροποιηθεί και γίνονται περισσότερες βελτιώσεις. Τώρα, φυσικά, υπάρχουν εξαιρέσεις σε αυτόν τον κανόνα και αυτές θα ληφθούν υπόψη όπου ισχύει.

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

Ναι, το Objective-C της Apple και τώρα το Swift ευδοκίμησαν επειδή αυτές ήταν οι μόνες επιλογές σε ένα εξαιρετικά ελεγχόμενο οικοσύστημα, αλλά το Facebook ρε και Αμαξα προς μίσθωση (μια άσχημη εκδοχή μιας ήδη άσχημης γλώσσας, κατά τη γνώμη μου) παραμένουν λίγο περισσότερο από πειράματα.

Ο ιδανικός συνδυασμός θα ήταν μια γλώσσα που υποστηρίζεται από μια μεγάλη, σταθερή εταιρεία και εκρήγνυται σε δημοτικότητα (όπως η React).

Αλλά το κρέας του θέματος εξακολουθεί να είναι η κοινότητα. Εάν μια γλώσσα δεν δημιουργεί buzz και δεν υπάρχουν αρκετοί προγραμματιστές για να εκπαιδεύσουν και να διαδώσουν, δεν πρόκειται να βγει από τον τάφο της στο GitHub.

Για μένα, αυτό αποκλείει ώριμες, συναρπαστικές γλώσσες όπως Ρακέτα και Erlangκαθώς έχουν παραμείνει σταθερά στην καμπύλη ανάπτυξης.

Εστιασμένη, καλά καθορισμένη USP

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

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

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

Σαφής, συνεπής σύνταξη

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

Μαζί με τη σύνταξη έρχεται και η ιδέα της συνέπειας. Η ονομασία συναρτήσεων, η δόμηση της ενότητας, κ.λπ., είναι βασικά πράγματα που μια γλώσσα δεν έχει την πολυτέλεια να κάνει λάθος. Είναι 2018, για όνομα του Θεού, και ένα άλλο σχέδιο γλώσσας που μοιάζει με PHP θα ήταν ντροπή για όλους μας. Έτσι, χωρίς περαιτέρω καθυστέρηση, ας ξεκινήσουμε με τις πέντε κορυφαίες συστάσεις μας.

  Τι είναι το Microsoft 365;

1. Τζούλια

Για τους ανθρώπους στο MIT, οι διαθέσιμες γλώσσες για την επιστήμη των δεδομένων ήταν στην καλύτερη περίπτωση ένας συμβιβασμός. Η Python, παρ’ όλη τη σαφήνεια και τη δημοτικότητά της, δεν είχε εγγενείς δομές για την αντιμετώπιση αντικειμένων δεδομένων. Επίσης, επειδή ήταν γλώσσα διερμηνείας, η Python ήταν αργή γι ‘αυτούς (όχι τις βιβλιοθήκες, προσέξτε, καθώς είναι κυρίως γραμμένες σε C).

Αλλά ίσως η μεγαλύτερη απενεργοποίηση ήταν το αδέξιο μοντέλο συγχρονισμού και η έλλειψη ενός μοντέλου παράλληλου υπολογισμού, το τελευταίο από τα οποία είναι βασικό στοιχείο στον υπερ-υπολογισμό.

Σαν άποτέλεσμα, Τζούλια γεννήθηκε.

Η Julia έφτασε σε σταθερή κυκλοφορία στις 29 Σεπτεμβρίου 2018, μόλις λίγες μέρες πριν γραφτεί αυτό το άρθρο (συζήτηση για το timing!). Δείτε τι λέει ο επίσημος ιστότοπος για τις δυνατότητές του:

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

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

Για να είναι απλά τα πράγματα, η Τζούλια είναι πολύ γρήγορη και δεν επιβάλλει αυστηρή πληκτρολόγηση. Ακολουθούν ορισμένα σημεία αναφοράς:

Τα επίσημα σημεία αναφοράς της Julia

Όπως μπορείτε να δείτε, η Julia είναι ελαφρώς χειρότερη από την C, αλλά βγάζει την Java και την Python από το νερό. Και τι είδους γλυκά προσφέρει η Τζούλια;

Λοιπόν, εδώ είναι η υλοποίηση μιας συνάρτησης για τον υπολογισμό της υποτείνουσας ενός ορθογωνίου τριγώνου:

Τέλος, ενώ τα περισσότερα από τα Τζούλια οικοσύστημα έχει μεγάλη κλίση προς τη μαθηματική εργασία, πιστεύω ότι έχει ένα λαμπρό μέλλον γενικού σκοπού.

Είναι η πρώτη γλώσσα, εξ όσων γνωρίζω, που διαθέτει πρώτης τάξεως υποστήριξη για παράλληλους υπολογιστές, επομένως δεν θα είναι έκπληξη να τη δούμε να κερδίζει μεγαλύτερη δημοτικότητα στους τομείς του Ιστού και του IoT.

2. Σκουριά

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

Εάν το πρόγραμμα περιήγησης αισθάνεται ελαφρύ και γρήγορο και αποδίδει γρήγορα, όλα αυτά είναι χάρη στη γλώσσα που έχει αναπτυχθεί ειδικά η Mozilla: Σκουριά.

Το να πούμε ότι ο Rust έχει λαμπρό μέλλον θα είναι ψέμα. η γλώσσα έχει ήδη τεράστια επιτυχία, και αν δεν την έχετε ακούσει ακόμα, είναι επειδή ο τομέας εφαρμογής της είναι εξειδικευμένος και ο στόχος της είναι τρομακτικός: η αντικατάσταση της C++! Ναι, επιτέλους έχουμε μια γλώσσα που όχι μόνο μπορεί να το κάνει αυτό αλλά το κάνει ήδη.

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

Δείτε πώς μοιάζει ένα πρόγραμμα Rust:

Συνοπτικό και κομψό, κατά τη γνώμη μου. Το Rust ακολουθεί την προσέγγιση λειτουργικού προγραμματισμού, που κάνει τον κώδικά σας πιο συνθέσιμο και δεν υπάρχουν αντικειμενοστρεφείς ιεραρχίες για να παλέψετε.

Λοιπόν, τι δίνει στον Rust το κουράγιο να ακολουθήσει την C++; Είναι το νέο μοντέλο μνήμης. Αντί να βασίζεται στον παλιό χορό new()/delete(), ο Rust εισάγει την ιδέα του Ownership.

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

Το θέμα είναι ότι αυτό έχει ως αποτέλεσμα 100% ασφάλεια μνήμης χωρίς την ανάγκη απορριμματοσυλλέκτη, κάτι που είναι μεγάλη υπόθεση.

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

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

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

Μαθαίνω Rust από τον Dmitri Nesteruk.

3. Ελιξίριο

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

  Η ιδιωτική ή ανώνυμη λειτουργία καθιστά την περιήγηση στο Web ανώνυμη;

Δεν είναι περίεργο, λοιπόν, ότι το πλαίσιο Rails συνεχίζει να κυριαρχεί στην ανάπτυξη πλήρους στοίβας για σοβαρούς προγραμματιστές και νεοφυείς επιχειρήσεις. Αλλά δεν ήταν όλοι ευχαριστημένοι με το Rails, ειδικά ένας από τους βασικούς προγραμματιστές του – Χοσέ Βαλίμ. Νομίζω ότι ο ίδιος ο δημιουργός εξηγεί καλύτερα τη γένεση αυτής της γλώσσας σε ένα συνέντευξη:

Είναι μια μεγάλη ιστορία, αλλά θα προσπαθήσω να την κάνω σύντομη και γλυκιά. Το 2010, εργαζόμουν για τη βελτίωση της απόδοσης της Rails όταν εργαζόμουν με συστήματα πολλαπλών πυρήνων, καθώς τα μηχανήματα και τα συστήματα παραγωγής μας αποστέλλονται με όλο και περισσότερους πυρήνες. Ωστόσο, η όλη εμπειρία ήταν αρκετά απογοητευτική καθώς η Ruby δεν παρέχει το κατάλληλο εργαλείο για την επίλυση προβλημάτων ταυτόχρονης χρήσης. Τότε άρχισα να κοιτάζω άλλες τεχνολογίες και τελικά ερωτεύτηκα την Εικονική Μηχανή Erlang.

Άρχισα να χρησιμοποιώ το Erlang όλο και περισσότερο και, με την εμπειρία, παρατήρησα ότι μου έλειπαν κάποιες δομές διαθέσιμες σε πολλές άλλες γλώσσες, συμπεριλαμβανομένων λειτουργικών. Τότε αποφάσισα να δημιουργήσω το Elixir, ως μια προσπάθεια να φέρω διαφορετικές κατασκευές και εξαιρετικά εργαλεία πάνω από το Erlang VM.

Και ιδού, Ελιξήριο γεννήθηκε!

Ακριβώς όπως το Scala βελτιώνει τη γλώσσα Java, αλλά στοχεύει την ίδια εικονική μηχανή από κάτω (το JVM), έτσι και το Elixir εκμεταλλεύεται την εικονική μηχανή Erlang που έχει αποδειχθεί δεκαετίες.

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

Με ακόμη πιο απλά λόγια, αυτό που σημαίνει είναι αυτό. Εάν δημιουργείτε ένα σύστημα σε πραγματικό χρόνο όπως το chat, το Elixir είναι πολύ λιγότερο απαιτητικό και σταθερό σε RAM από τη Ruby (ή PHP, Python και Java, για αυτό το θέμα).

Ένα μηχάνημα που τρέχει Ruby και φτάνει στο μέγιστο τις 10.000 ταυτόχρονες συνδέσεις μπορεί εύκολα να χειριστεί 200.000 όταν χρησιμοποιεί το Elixir και εξακολουθεί να έχει αρκετή μνήμη RAM για να τρέξει παιχνίδια 2D!

Απόσπασμα κώδικα ελιξιρίου

Συντακτικά, το Elixir αντιγράφει ξεδιάντροπα το Ruby και το κυρίαρχο πλαίσιο Ιστού του, το Phoenix, αντιγράφει ξεδιάντροπα το Rails. Θα έλεγα ότι αυτό είναι επίσης καλό, γιατί μαζί με τα Laravel, Grails, Masonite, κ.λπ., φτάνουμε σε ένα σημείο όπου όλες οι γλώσσες έχουν πλαίσια τύπου Rails που μπορούν να διευκολύνουν τη μετάβαση. Κάποιοι μπορεί να χλευάζουν την «έλλειψη πρωτοτυπίας», αλλά τουλάχιστον δεν παραπονιέμαι.

Τελικά, Ελιξήριο είναι μία από εκείνες τις τεχνολογίες που είναι αναζωογονητικές, ευχάριστες και καταραμένα πρακτικές. Αρκετά καταστήματα Ruby (και ακόμη και μη Ruby) μετακομίζουν στο Elixir και μεγάλες εταιρείες όπως το Pinterest το χρησιμοποιούν στην παραγωγή με εξαιρετικά ικανοποιητικά αποτελέσματα.

Πολλοί πιστεύουν ότι το Node.js ήταν μια αυτοσχέδια προσπάθεια συγχρονισμού και σύντομα θα αντικατασταθεί από το Elixir. Πρέπει να πω ότι συμφωνώ μαζί τους. 🙂

4. Κότλιν

Το 2017 I/O, η Google εξαπέλυσε μια βόμβα στο ανυποψίαστο πλήθος. Η εταιρεία ανακοίνωσε επίσημα Κότλιν ως η κύρια γλώσσα για την ανάπτυξη Android, στέλνοντας κρουστικά κύματα στον κλάδο.

Τώρα, το ότι η Google προσπαθεί ενεργά να αντικαταστήσει την Java δεν αποτελεί έκπληξη αφού δαγκώθηκε από μια αγωγή της Oracle. Ωστόσο, η υιοθέτηση του Kotlin ήταν κάπως απροσδόκητη και υπάρχει ακόμα μια καλή πιθανότητα η Google να κυκλοφορήσει σύντομα με την εικονική της μηχανή. Προς το παρόν, όμως, ο Κότλιν απολαμβάνει μια έκρηξη.

Το Kotlin αναπτύχθηκε από την JetBrains, μια εταιρεία που είναι περισσότερο γνωστή για τη σουίτα εξαιρετικά καλών επεξεργαστών κώδικα. Ένα από αυτά, το IntelliJ IDEA, αποτελεί τη βάση του Android Studio. Οι σχεδιαστικοί στόχοι της Kotlin είναι η ασφάλεια, η συνοπτικότητα και η 100% διαλειτουργικότητα με την Java.

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

Ακολουθεί μια υπέροχη σύγκριση κώδικα μεταξύ Java και Kotlin:

Πίστωση εικόνας: hype.codes

Ο κώδικας Kotlin είναι σημαντικά μικρότερος και έχει πολύ λιγότερη γνωστική υπερφόρτωση για όργωμα.

Αλλά ας ξεκαθαρίσουμε ένα πράγμα: το Kotlin είναι εξαιρετικά απίθανο να αντικαταστήσει την Java, αν και γίνεται γρήγορα ένα από τα αγαπημένα. Πιστεύω ότι δέκα χρόνια αργότερα, οι μικρομεσαίες ομάδες δεν θα κοιτάξουν πέρα ​​από την Kotlin, ενώ οι μεγάλες ομάδες θα συνεχίσουν να χρησιμοποιούν την Java καθαρά για λόγους κληρονομιάς.

Τούτου λεχθέντος, η Kotlin έχει ένα εξαιρετικά λαμπρό μέλλον καθώς κάνει ό,τι κάνει η Java, μπορεί να συγχωνευθεί με κώδικα Java χωρίς να το καταλάβει κανείς και είναι πολύ πιο ευχάριστο!

5. TypeScript

Ο Θεός ξέρει ότι έπρεπε να συγκρατηθώ για αυτό το σημείο! Όλα μέσα μου φώναζαν «Φτελιά! Elm!», αλλά ανεξάρτητα από το πόσο επαναστατικές είναι οι ιδέες του ή πόσο θεϊκή είναι η σύνταξη, το Elm δεν έχει ακόμη θεωρηθεί ως μια κύρια εναλλακτική για το front-end δουλειά. 🙁 Τέλος πάντων, ας προχωρήσουμε σε αυτό που είναι mainstream: TypeScript.

  Πώς να δείτε ποιες συσκευές χρησιμοποιούν τον λογαριασμό βίντεο Amazon

Το JavaScript είναι σαν τα άγρια ​​μούρα: άσχημο και δυσάρεστο, αλλά πρέπει να το απολαύσεις αν θέλεις να επιβιώσεις στη ζούγκλα της ανάπτυξης front-end. Έγιναν πολλές προσπάθειες για την αντικατάστασή του (και πιθανότατα, το νέο πρότυπο WebAssembly θα πετύχει), αλλά αυτό που τράβηξε πραγματικά την προσοχή όλων ήταν το superset που αναπτύχθηκε από τη Microsoft.

Υπάρχουν εξαιρετικές πιθανότητες που έχετε ακούσει TypeScript: Το Angular ήταν το πρώτο πλαίσιο που το αγκάλιασε από την έκδοση 2 και μετά, και οι άνθρωποι έσπευσαν να το λάβουν υπόψη. Αυτό συμβαίνει επειδή η TypeScript προσθέτει μερικές απαραίτητες και φανταστικές υπερδυνάμεις στην πιο διάσημη γλώσσα προγραμματισμού στον κόσμο.

Ναι, είναι επιτέλους δυνατό να γράψετε εγγενή κώδικα JavaScript χωρίς να υποφέρετε και να βρίζετε τη γέννησή σας!

Ακολουθούν οι βελτιώσεις που φέρνει το TypeScript στον πίνακα:

✓ Ισχυρή πληκτρολόγηση: Τέλος, μια συμβολοσειρά δεν είναι αριθμός και ένας αριθμός δεν είναι αντικείμενο, που δεν είναι κενός πίνακας!

✓ Έλεγχος τύπου μεταγλώττισης: Εάν ο κώδικάς σας μεταγλωττίζεται σωστά, είναι λίγο πολύ εγγυημένο ότι θα είναι απαλλαγμένος από τα κονδυλώματα του χρόνου εκτέλεσης JavaScript.

✓ Τάξεις και ενότητες: Ναι, οι κλάσεις είναι στάνταρ στο ES6, αλλά περιλαμβάνονται και στο TypeScript, εκτός από ένα τακτοποιημένο σύστημα λειτουργικών μονάδων.

✓ Συμπεράσματα τύπων: Για σύνθετους τύπους, ο τύπος μπορεί να εντοπιστεί εύκολα από τον μεταγλωττιστή, γλιτώνοντας από πονοκέφαλο.

✓ Async/wait: Οι λέξεις-κλειδιά και τα μοτίβα ασυγχρονισμού/αναμονής είναι θεμελιώδη, επομένως δεν πρέπει να μπλέκετε με τις Υποσχέσεις και τις Επιστροφές κλήσεων!

Χώροι ονομάτων, γενικά, πλειάδες . . . Θα μπορούσα να συνεχίσω και να συνεχίσω, αλλά αρκεί να πούμε ότι το TypeScript μετατρέπει μια από τις χειρότερες εμπειρίες ανάπτυξης σε μια από τις καλύτερες.

Απόσπασμα κώδικα TypeScript

Η επίδραση του TypeScript δεν μπορεί να αμφισβητηθεί. Έσπρωξε παρόμοιες προσπάθειες όπως το Dart της Google εκτός πεδίου (αν και επιχειρεί μια επιστροφή μέσω του Flutter, ενός πλαισίου ανάπτυξης για κινητά) και άνοιξε τα μάτια των προγραμματιστών JS στα οφέλη ισχυρότερων τύπων.

Ως αποτέλεσμα, σημαντικές βιβλιοθήκες όπως η React, η D3, η Vue (ακόμη και το jQuery!) διαθέτουν πλέον μια έκδοση TypeScript και στα καλύτερα καταστήματα λογισμικού σε όλο τον κόσμο, όλος ο κώδικας JavaScript γράφεται ως κώδικας TypeScript. Οι κεφαλίδες TypeScript είναι πλέον διαθέσιμες και για το Node.js (ειλικρινά, εάν ένας κόμβος μπορεί να βελτιώσει την ιστορία ταυτόχρονης χρήσης του και να διορθώσει τη άθλια διαχείριση της μνήμης του, θα διαρκέσει για πάντα).

Ίσως εκπλαγείτε αν μάθετε ότι ο δημιουργός του Node.js, μετά από δημόσια μετανιώνοντας δημιουργία του, εργάζεται σε α νέο χρόνο εκτέλεσης (δεν υπάρχει επίσημος ιστότοπος αυτή τη στιγμή, μόνο το αποθετήριο GitHub) που να έχει ως κύρια γλώσσα το TypeScript.

Τα καλύτερα νέα; Το TypeScript είναι μικρό γλώσσα για εκμάθηση με σημαντικά οφέλη στο μέλλον. Εάν είστε ενδιάμεσος προγραμματιστής JavaScript, θα λάβετε αρκετό TypeScript μέσα σε δύο ημέρες για να μεταφέρετε όλο τον υπάρχοντα κώδικά σας!

Συμπέρασμα και αποποίηση ευθύνης

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

  • Golang: Έχει ήδη καθιερωθεί ως mainstream, αν όχι πολύ δημοφιλής, γλώσσα. Πιστεύω ότι σε αυτό το σημείο, η Golang έχει αρκετούς ανταγωνιστές που θα διατηρήσουν το μερίδιο αγοράς της σε χαμηλά επίπεδα.
  • R: Το R είναι ήδη καυτό μεταξύ των επιστημόνων δεδομένων και είναι απίθανο να προσελκύσει πολύ τους προγραμματιστές εφαρμογών. Εξάλλου, δεν πρέπει να ξεχνάμε ότι οι βιβλιοθήκες μηχανικής εκμάθησης μπαίνουν σιγά σιγά σε όλες τις κύριες γλώσσες (προς Θεού, ακόμη και η PHP τις έχει τώρα!), οπότε το μόνο που χρειάζεται να κάνετε είναι να περιμένετε λίγο. 🙂
  • Swift: Η Apple έχει μια σιδερένια λαβή στο οικοσύστημά της και η Swift είναι η μόνη διαθέσιμη γλώσσα εκεί. Νωρίτερα, το Objective C ήταν η οργή, όπως είναι τώρα η Swift. Το θεωρώ απάτη και επομένως αρνούμαι να το συμπεριλάβω εδώ. 😀

Το μέλλον είναι πάντα αβέβαιο και ένας τρόπος για να συνεχίσετε την καριέρα σας είναι να κολλήσετε σε αυτό που ήδη λειτουργεί και να αρνηθείτε να «αποσπαστείτε». Αν το κάνετε αυτό, η Java, η PHP, η Python, η Ruby κ.λπ., είναι όλες εξαιρετικές γλώσσες για να μείνετε. Ωστόσο, για κάποιους από εμάς, ο κανόνας δεν είναι αρκετός. Θέλουν να βγουν έξω και να εξερευνήσουν και να στοιχηματίσουν μεγάλα για το μέλλον. Εάν πέσετε στο τελευταίο στρατόπεδο, μία από αυτές τις πέντε γλώσσες θα πρέπει να βρίσκεται στην κορυφή της λίστας υποχρεώσεων σας.

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

Μου έλειψε κάποια κριτική γλώσσα εδώ; Ή μήπως έχω κάτι λάθος με τις γλώσσες που αναφέρονται εδώ; Αν ναι, παρακαλώ, αφήστε ένα σχόλιο και βοηθήστε με να βελτιωθώ. 🙂