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

21 καυτές τάσεις προγραμματισμού - και 21 κρύες

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

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

Αυτό που ακολουθεί είναι μια λίστα με τα πιο καυτά και τι όχι μεταξύ των σημερινών προγραμματιστών. Δεν θα συμφωνήσουν όλοι με το τι είναι A-List, τι D-List και τι έχουν μείνει. Αυτό καθιστά τον προγραμματισμό ένα ατελείωτα συναρπαστικό επάγγελμα: γρήγορη αλλαγή, παθιασμένη συζήτηση, ξαφνικές επιστροφές.

Hot: Προεπεξεργαστές

Όχι: Στοίβες πλήρους γλώσσας

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

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

Οι λαοί που λάτρευαν τη δυναμική πληκτρολόγηση δημιούργησαν το Groovy, μια απλούστερη έκδοση της Java χωρίς τα υπερβολικά επιμελώς σημεία στίξης. Φαίνεται να υπάρχουν δεκάδες γλώσσες - Groovy, Scala, Clojure, Kotlin κ.λπ. - που τρέχουν στο JVM, αλλά υπάρχει μόνο ένα JVM. Μπορείτε να εκτελέσετε πολλές γλώσσες στο .Net's VM επίσης. Γιατί να ανακαλύψουμε ξανά τον τροχό;

Hot: Χωρίς διακομιστή

Όχι: Docker

Αυτό δεν είναι ακριβώς αλήθεια. Τα δοχεία Docker είναι παντού. Οι διακομιστές περιστρέφονται και κλείνουν τα κοντέινερ όλη την ώρα. Ωστόσο, τα δοχεία Docker είναι σούοο πολύ μεγαλύτερο από ό, τι πρέπει να είναι.

Εάν το σκεφτείτε, μπορείτε να γράψετε μόνο μερικές δεκάδες γραμμές πραγματικού κώδικα λήψης αποφάσεων για αυτήν τη μικροϋπηρεσία που αναπτύσσετε, αλλά θα πρέπει να πετάξετε σε ένα bazillion γραμμές διαμόρφωσης για να δημιουργήσετε το Node.js και οτιδήποτε άλλο ξεκινά σωστά με το Docker. Ναι, όλα είναι boilerplate, αλλά αυτό δεν έχει νόημα.

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

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

Hot: Πλαίσια JavaScript MV *

Όχι: αρχεία JavaScript

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

Υπάρχουν τώρα δεκάδες πλαίσια όπως τα Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS και πολλά άλλα, όλα έτοιμα να χειριστούν τα γεγονότα και το περιεχόμενο για τις εφαρμογές και τις σελίδες ιστού σας.

Αυτές είναι απλώς οι εφαρμογές ιστού. Υπάρχει επίσης ένας αριθμός προσαρμοσμένος να προσφέρει ανάπτυξη πολλαπλών πλατφορμών για τον κόσμο των smartphone / tablet. Τεχνολογίες όπως NativeScript, PhoneGap, Apache Cordova και React Native είναι μερικές από τις επιλογές για τη δημιουργία εφαρμογών εκτός της τεχνολογίας HTML5.

Καυτό: Πλαίσια CSS

Όχι: Γενικό CSS

Κάποτε, η προσθήκη λίγο pizzazz σε μια ιστοσελίδα σήμαινε το άνοιγμα του αρχείου CSS και τη συμπερίληψη μιας νέας εντολής όπως στυλ γραμματοσειράς: πλάγια γραφή. Στη συνέχεια, αποθηκεύσατε το αρχείο και πήγατε για μεσημεριανό γεύμα μετά από μια σκληρή δουλειά το πρωί. Τώρα οι ιστοσελίδες είναι τόσο εξελιγμένες που είναι αδύνατο να γεμίσετε ένα αρχείο με τόσο απλές εντολές. Ένα τσίμπημα σε ένα χρώμα και τα πάντα ξεφεύγουν από το χτύπημα. Είναι σαν αυτά που λένε για συνωμοσίες και οικολογίες: Όλα είναι αλληλένδετα.

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

Ζεστό: SVG σε καμβά

Όχι: Flash

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

Τώρα που το επίπεδο JavaScript έχει τη δυνατότητα να κάνει το ίδιο, οι κατασκευαστές προγράμματος περιήγησης και οι προγραμματιστές ζητούν το τέλος του Flash. Βλέπουν καλύτερη ενσωμάτωση με το επίπεδο DOM που προέρχεται από νέες μορφές όπως το SVG (Scalable Vector Graphics). Το SVG και το HTML περιλαμβάνουν ένα μεγάλο σωρό ετικετών που είναι πιο εύκολο για τους προγραμματιστές ιστού να χρησιμοποιούν. Στη συνέχεια, υπάρχουν μεγάλα API που προσφέρουν περίπλοκο σχέδιο στο αντικείμενο Canvas, συχνά με τη βοήθεια καρτών βίντεο. Συγκεντρώστε τα και απομένουν λίγους λόγους να χρησιμοποιήσετε το Flash πια.

Hot: Σχεδόν μεγάλα δεδομένα (ανάλυση χωρίς Hadoop)

Όχι: Μεγάλα δεδομένα (με Hadoop)

Σε όλους τους αρέσει να αισθάνεται σαν ο Μεγάλος Άντρας στην πανεπιστημιούπολη, και αν δεν είναι, ψάχνουν μια πανεπιστημιούπολη του κατάλληλου μεγέθους όπου να ξεχωρίζουν. Δεν αποτελεί έκπληξη λοιπόν ότι όταν οι λέξεις «big data» άρχισαν να ρέουν μέσα από την executive σουίτα, τα κοστούμια άρχισαν να ζητούν τα μεγαλύτερα, πιο ισχυρά μεγάλα συστήματα δεδομένων σαν να αγόραζαν ένα σκάφος ή έναν ουρανοξύστη.

Το αστείο είναι ότι πολλά προβλήματα δεν είναι αρκετά μεγάλα για να χρησιμοποιήσουν τις πιο φανταστικές λύσεις μεγάλων δεδομένων. Σίγουρα, εταιρείες όπως η Google ή το Yahoo παρακολουθούν όλη την περιήγησή μας στον ιστό. Έχουν αρχεία δεδομένων μετρούμενα σε petabytes ή yottabytes. Αλλά οι περισσότερες εταιρείες διαθέτουν σύνολα δεδομένων που μπορούν εύκολα να χωρέσουν στη μνήμη RAM ενός βασικού υπολογιστή. Το γράφω σε έναν υπολογιστή με 16 GB μνήμης RAM - αρκετό για ένα δισεκατομμύριο εκδηλώσεις με λίγα bytes. Στους περισσότερους αλγόριθμους, τα δεδομένα δεν χρειάζεται να διαβαστούν στη μνήμη, επειδή η ροή από SSD είναι μια χαρά.

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

Hot: Spark

Όχι: Hadoop

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

Φυσικά πολλοί άνθρωποι συγχωνεύουν τα δύο χρησιμοποιώντας την ταχύτητα επεξεργασίας του Spark σε δεδομένα που είναι αποθηκευμένα στο κατανεμημένο σύστημα αρχείων του Hadoop. Οι Hadoop και Spark είναι συχνότερα συνεργάτες από τους ανταγωνιστές.

Hot: Διαμόρφωση βάσης δεδομένων

Όχι: Προγραμματισμός λογισμικού

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

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

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

Hot: Πλαίσια παιχνιδιών

Όχι: Εγγενής ανάπτυξη παιχνιδιών

Κάποτε, η ανάπτυξη παιχνιδιών σήμαινε την πρόσληψη πολλών προγραμματιστών που έγραψαν τα πάντα στο C από το μηδέν. Σίγουρα, κόστισε ένα δισεκατομμύριο δολάρια, αλλά φαινόταν υπέροχο και έτρεχε σαν τον άνεμο. Τώρα, κανείς δεν μπορεί να αντέξει την πολυτέλεια του προσαρμοσμένου κώδικα. Οι περισσότεροι προγραμματιστές παιχνιδιών εγκατέλειψαν την υπερηφάνεια τους πριν από χρόνια και χρησιμοποιούν βιβλιοθήκες όπως Unity, Corona ή LibGDX για να χτίσουν τα συστήματά τους. Δεν γράφουν C κώδικα τόσο ως οδηγίες για τις βιβλιοθήκες.

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

Hot: Στατικές γεννήτριες ιστότοπων

Όχι: Εφαρμογές ιστού μίας σελίδας

Θυμάσαι πότε οι διευθύνσεις URL δείχνουν ιστοσελίδες γεμάτες στατικό κείμενο και εικόνες; Στη συνέχεια, οι δυναμικές εφαρμογές ιστού μιας σελίδας ήρθαν και τις αντικατέστησαν όλες με μια έξυπνη εφαρμογή ιστού που θα έπαιρνε τα εν λόγω δεδομένα. Μάντεψε? Το εκκρεμές αιωρείται προς τα πίσω και όλα τα παιδιά χτίζουν στατικές γεννήτριες τοποθεσίας. Υπάρχουν δεκάδες από αυτά. Είναι σαν ένα υβρίδιο. Βάζετε όλα τα δεδομένα σε ένα σωρό και μετά γράφετε έναν κώδικα που κολλά τα δεδομένα σε ορισμένα πρότυπα, έτσι ώστε να υπάρχει ένα αρχείο HTML για κάθε στατική διεύθυνση URL και αυτό προήλθε από κάθε σειρά στον πίνακα δεδομένων.

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

Καυτό: GraphQL

Όχι: REST

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

Hot: Cloud IDE

Όχι: Τοπικά IDE

Πριν από πολύ καιρό, οι άνθρωποι χρησιμοποίησαν έναν μεταγλωττιστή γραμμής εντολών. Τότε κάποιος το ενσωμάτωσε με έναν επεξεργαστή και άλλα εργαλεία για να δημιουργήσει το IDE. Τώρα είναι καιρός το IDE να εκλείψει (ha) από εργαλεία που βασίζονται σε πρόγραμμα περιήγησης που σας επιτρέπουν να επεξεργαστείτε τον κώδικα, ακόμη και τον κώδικα ενός λειτουργικού συστήματος. Εάν δεν σας αρέσει ο τρόπος λειτουργίας του WordPress, συνοδεύεται από έναν ενσωματωμένο επεξεργαστή που σας επιτρέπει να αλλάξετε τον κώδικα εκεί και πέρα. Το Microsoft Azure σάς επιτρέπει να γράφετε κώδικα κόλλας JavaScript απευθείας στην πύλη της. Αυτά τα συστήματα δεν προσφέρουν τα καλύτερα περιβάλλοντα εντοπισμού σφαλμάτων και υπάρχει κάτι επικίνδυνο για την επεξεργασία κώδικα παραγωγής, αλλά η ιδέα έχει τα πόδια.

Μπορείτε να ξεκινήσετε με το AWS Cloud9, το Codenvy και το WebIDE του Mozilla, αλλά συνεχίστε να το εξερευνάτε. Τα διαδικτυακά εργαλεία γίνονται όλο και πιο ισχυρά. Είναι δυνατό, για παράδειγμα, να δημιουργήσετε ένα ολόκληρο μεγάλο έργο ανάλυσης δεδομένων στον ιστότοπο της Microsoft Azure. Και αν αρχίσετε να εξερευνάτε επιλογές χωρίς διακομιστές, θα καταλάβετε γρήγορα ότι μπορείτε να γράψετε όλο τον κώδικά σας σε ένα στοιχείο φόρμας σε μια ιστοσελίδα. Ένα που δεν είναι πολύ μεγαλύτερο από τη φόρμα που χρησιμοποιείτε για να ενημερώσετε τους φίλους σας στο Facebook.

Καυτό: GPU

Όχι: CPU

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

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

Καυτό: GitHub

Όχι: Περίληψη

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

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

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