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

Η γλώσσα προγραμματισμού Hack του Facebook ενσωματώνει την ασφάλεια κώδικα στο PHP

Το Facebook έχει κυκλοφορήσει μια γλώσσα προγραμματισμού που ονομάζεται Hack, η οποία παντρεύεται την ευκολία της PHP με τους αυστηρούς ελέγχους ασφαλείας παλαιότερων γλωσσών όπως το C ++.

Οι προγραμματιστές της PHP πρέπει να κατανοήσουν εύκολα το Hack, το οποίο αναπαράγει πολλά από τα ίδια χαρακτηριστικά και λειτουργίες της PHP, και προσθέτει μερικά από τα δικά του για μεγαλύτερη παραγωγικότητα, δήλωσε ο Bryan O'Sullivan, μηχανικός του Facebook για το έργο.

[Εργαστείτε πιο έξυπνα, όχι πιο δύσκολα - κατεβάστε τον Οδηγό επιβίωσης των προγραμματιστών από όλες τις συμβουλές και τις τάσεις που πρέπει να γνωρίζουν οι προγραμματιστές. | Παρακολουθήστε τις τελευταίες ειδήσεις προγραμματιστών με το ενημερωτικό δελτίο του Developer World. ]

Κατά το παρελθόν έτος, το Facebook μετέτρεψε σχεδόν όλη τη βάση του κώδικα PHP σε Hack, το οποίο αποτελεί τον πυρήνα της ιστοσελίδας του.

Κατά τη δημιουργία του Hack, το Facebook υιοθέτησε μια προσέγγιση παρόμοια με αυτήν της Microsoft με TypeScript, η οποία είναι βασικά ένα υπερσύνολο JavaScript που, όπως το Hack, προσθέτει στατική πληκτρολόγηση.

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

Τα άτομα θα επωφεληθούν επίσης χρησιμοποιώντας το Hack, είπε ο O'Sullivan, τόσο όσον αφορά την αύξηση της απόδοσης των ιστότοπών τους όσο και τη βελτίωση της συνολικής ποιότητας του κώδικα τους.

Το Hack απαιτεί την εκτέλεση του HHVM (Hip Hop Virtual Machine) του Facebook. Το HHVM είναι μια εικονική μηχανή που μεταγλωττίζει PHP, συνήθως μια ερμηνευμένη γλώσσα, σε κώδικα byte, ώστε να μπορεί να εκτελείται πιο γρήγορα.

Το Hack είναι βασικά μια επέκταση της γλώσσας PHP με ενσωματωμένη στατική πληκτρολόγηση, μια δυνατότητα που βρίσκεται σε πιο παραδοσιακές γλώσσες προγραμματισμού όπως C / C ++ και Java, δήλωσε ο O'Sullivan.

Πολλές από τις νεότερες γλώσσες προγραμματισμού προσανατολισμένες στο Web, όπως η PHP και η JavaScript, δεν έχουν στατική πληκτρολόγηση, επομένως αναφέρονται ως δυναμικά δακτυλογραφημένες γλώσσες. Με τη δυναμική πληκτρολόγηση, "δεν υπάρχουν σαφείς πληροφορίες στον πηγαίο κώδικα που να περιγράφει τι είδους πληροφορίες αντιμετωπίζει το πρόγραμμα", δήλωσε ο O'Sullivan.

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

"Υπάρχουν ορισμένα είδη σφαλμάτων και σφαλμάτων που μπορούν να προκύψουν", εάν ο προγραμματιστής δεν είναι προσεκτικός σχετικά με τα δεδομένα που έχουν εκχωρηθεί σε μεταβλητές, είπε ο O'Sullivan. "Αυτά τα λανθάνοντα σφάλματα μπορούν να κρύψουν για μεγάλο χρονικό διάστημα σε δυναμικά δακτυλογραφημένες γλώσσες."

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

"Συντακτικά, το Hack είναι πολύ κοντά στην PHP. Επιτρέψαμε να είναι δυνατή η εκτέλεση κώδικα PHP και Hack δίπλα-δίπλα, ώστε να μπορείτε να μετατρέπετε σταδιακά τη βάση κώδικα της γλώσσας σας από PHP σε Hack", δήλωσε ο O'Sullivan.

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

Το Hack έρχεται επίσης με έναν αριθμό προσθηκών που δεν βρέθηκαν στο PHP. Ο ένας είναι Συλλογές, ένας τρόπος δημιουργίας συστοιχιών με περισσότερη απόχρωση από τη λειτουργία πίνακα που προσφέρει η ίδια η PHP, δήλωσε ο O'Sullivan.

Το Hack διευκολύνει επίσης τη χρήση κλεισίματος μέσω της χρήσης εκφράσεων Lambda. Τα κλεισίματα, τα οποία προστέθηκαν στο Java 8, "διευκολύνουν τη σύντομη σύνταξη αρκετά περίπλοκων μετασχηματισμών δεδομένων", δήλωσε ο O'Sullivan.

Οι εκφράσεις του Lambda του Hack παρέχουν έναν τρόπο δημιουργίας κλεισίματος "με λιγότερους πλήκτρα, κάτι που αποτελεί μεγάλη νίκη για την παραγωγικότητα", είπε.

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

Ο O'Sullivan δεν αποκάλυψε συγκεκριμένα σχέδια για να προσφέρει τις αυξήσεις Hack στους κατόχους της PHP, αν και σημείωσε ότι η εταιρεία σκοπεύει να "συνεργαστεί στενά με την κοινότητα ανοιχτού κώδικα" για την περαιτέρω ανάπτυξη της γλώσσας.

Το Joab Jackson καλύπτει επιχειρηματικά λογισμικά και πρωτοποριακές ειδήσεις τεχνολογίας Η Υπηρεσία Ειδήσεων. Ακολουθήστε τον Joab στο Twitter στο @Joab_Jackson. Η διεύθυνση e-mail του Joab είναι [email protected]