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

7 λόγοι για τους οποίους τα πλαίσια είναι οι νέες γλώσσες προγραμματισμού

Στη δεκαετία του 1980, ο ευκολότερος τρόπος για να ξεκινήσετε έναν αγώνα nerd ήταν να διακηρύξετε ότι η αγαπημένη σας γλώσσα προγραμματισμού ήταν η καλύτερη. C, Pascal, Lisp, Fortran; Οι προγραμματιστές πέρασαν ώρες εξηγώντας ακριβώς γιατί ο συγκεκριμένος τρόπος δημιουργίας μιας ρήτρας αν-τότε-αλλού ήταν ανώτερος από τον τρόπο σας.

Αυτό ήταν τότε. Σήμερα, οι μάχες που περιλαμβάνουν σύνταξη και δομή έχουν τελειώσει σε μεγάλο βαθμό επειδή ο κόσμος έχει συγκλίνει με μερικά απλά πρότυπα. Οι διαφορές μεταξύ των ερωτηματικών, των αγκυλών και των άλλων σε C, Java και JavaScript είναι μικρές. Ενδιαφέρουσες συζητήσεις σχετικά με την πληκτρολόγηση και το κλείσιμο εξακολουθούν να υφίστανται, αλλά οι περισσότεροι διαφωνούνται επειδή η αυτοματοποίηση κλείνει το κενό. Εάν δεν σας αρέσει να καθορίζετε έναν τύπο δεδομένων, υπάρχει μεγάλη πιθανότητα ο υπολογιστής να μπορεί να συμπεράνει ακριβώς τι εννοούσατε. Εάν το αφεντικό σας θέλει JavaScript αλλά σας αρέσει η Java, ένας διασταυρούμενος μεταγλωττιστής θα μετατρέψει όλα τα Java που έχετε πληκτρολογήσει στατικά σε ελαχιστοποιημένη JavaScript, έτοιμη να εκτελεστεί σε πρόγραμμα περιήγησης. Γιατί να πολεμήσουμε όταν η τεχνολογία έχει τις πλάτες μας;

Σήμερα, η ενδιαφέρουσα δράση βρίσκεται στα πλαίσια. Όταν κάθισα με άλλα μέλη της σχολής στο Πανεπιστήμιο Johns Hopkins για να σχεδιάσω ένα νέο μάθημα, τα πλαίσια κυριάρχησαν στη συζήτηση. Είναι η γωνιακή καλύτερη από την Ember; Είναι το Node.js όλα αυτά;

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

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

Η πλειονότητα της κωδικοποίησης συνδυάζει API

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

Επιπλέον, η πρακτική της κωδικοποίησης είναι διαφορετική τώρα. Ο περισσότερος κώδικας είναι πλέον μια μεγάλη γραμμή κλήσεων API. Υπάρχει περιστασιακή αναδιαμόρφωση των δεδομένων μεταξύ των κλήσεων API, αλλά ακόμη και αυτές οι εργασίες αντιμετωπίζονται συνήθως από άλλα API. Λίγοι τυχεροί μπορούν να γράψουν έναν έξυπνο, χτυπητό, δείκτη-ζογκλέρ κώδικα για τα κότσια των μηχανών μας, αλλά οι περισσότεροι από εμάς δουλεύουμε με τα υψηλότερα επίπεδα. Απλώς τρέχουμε μεταξύ API.

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

Οι ώμοι των γιγάντων αξίζουν να στέκονται

Φανταστείτε ότι έχετε γίνει μαθητής του Έρλανγκ ή άλλης νέας γλώσσας. Αποφασίζετε ότι προσφέρει την καλύτερη πλατφόρμα για τη σύνταξη μιας σταθερής εφαρμογής χωρίς σφάλματα. Αυτό είναι ένα ωραίο συναίσθημα, αλλά μπορεί να χρειαστούν χρόνια για να ξαναγράψετε όλο τον διαθέσιμο κώδικα για Java ή PHP στην τελευταία σας γλώσσα επιλογής. Σίγουρα, ο κώδικάς σας θα μπορούσε να αποδειχθεί δραματικά καλύτερος, αλλά αξίζει τον επιπλέον χρόνο;

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

Η γνώση της αρχιτεκτονικής είναι αυτό που έχει σημασία, όχι η σύνταξη

Όταν το μεγαλύτερο μέρος της κωδικοποίησης συνδυάζει κλήσεις API, δεν υπάρχει μεγάλο πλεονέκτημα στην εκμάθηση των ιδιοσυγκρασιών της γλώσσας. Σίγουρα, θα μπορούσατε να γίνετε ειδικός για το πώς η Java αρχικοποιεί στατικά πεδία στα αντικείμενα, αλλά θα ήταν πολύ καλύτερα να καταλάβετε πώς να αξιοποιήσετε τη δύναμη του Lucene ή του JavaDB ή κάποιου άλλου σωρού κώδικα. Θα μπορούσατε να περάσετε μήνες να μαζέψετε τις βελτιστοποιητικές ρουτίνες των μεταγλωττιστών Objective-C, αλλά η εκμάθηση των εισόδων της τελευταίας βιβλιοθήκης πυρήνα της Apple θα κάνει πραγματικά τον κώδικά σας να φωνάζει. Θα μάθετε πολύ περισσότερο τις επιλεκτικές λεπτομέρειες του πλαισίου από τη σύνταξη της γλώσσας στην οποία στηρίζεται το πλαίσιο.

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

Κυριαρχούν οι αλγόριθμοι

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

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

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