Το Facebook ήταν κατασκευασμένο σε PHP. Στην αρχή ήταν αρκετή. Αλλά όσο αυξάνονταν τα εκατομμύρια των χρηστών, η γλώσσα άρχιζε να δείχνει τις αδυναμίες της. Περισσότεροι servers χρειάζονταν για να τα βγάλουν πέρα, αλλά ήταν και δύσκολη στην διαχείριση και στην διόρθωση των λαθών.
Μετά από ένα σημείο είναι καλύτερη μια γλώσσα στατικών τύπων (ο έλεγχος των τύπων γίνεται στην διάρκεια της μεταγλώττισης) όπως είναι η Java, όπου προσεκτικά καθορίζεις τους τύπους των μεταβλητών. Μια τέτοια γλώσσα χρειάζεται λιγότερους servers για να τρέξει και είναι πιο εύκολα διαχειρίσιμη σε βάθος χρόνου. Δεν μπορείς όμως να κινηθείς γρήγορα, γιατί πρέπει να κάνεις κάθε φορά μεταγλώττιση πριν να εκτελέσεις τον κώδικα.
Η PHP αντίθετα, επειδή είναι γλώσσα δυναμικών τύπων (ο έλεγχος των τύπων γίνεται στην διάρκεια της εκτέλεσης), προσφέρει μεγαλύτερη ταχύτητα.
Η Facebook, για να αντιμετωπίσει το πρόβλημα των servers ανέπτυξε ένα σύστημα που λέγεται HHVM (Hip Hop Virtual Machine). Ένα Open Source σύστημα εικονικών μηχανών πάνω στο οποίο τρέχει η PHP με πολύ καλύτερες επιδόσεις. Έτσι χρειάζονται λιγότεροι servers.
Για να λυθεί όμως και το πρόβλημα της διαχείρισης και της διόρθωσης των λαθών, 3 μηχανικοί της Facebook (Bryan O’Sullivan, Julien Verlaguet, Alok Menghrajani), ανέπτυξαν μια νέα γλώσσα, την Hack.
H Hack είναι κάτι σαν μια νέα έκδοση της PHP. Τρέχει και αυτή πάνω στο HHVM, αλλά επιτρέπει στους προγραμματιστές να χρησιμοποιούν ταυτόχρονα και δυναμικούς και στατικούς τύπους. Αυτό λέγεται Gradual Typing και μέχρι τώρα υπήρχε μόνο σε ακαδημαϊκές δοκιμές.
Η Hack είναι η πρώτη γλώσσα, σε επίπεδο πραγματικής παραγωγής, που χρησιμοποιεί το Gradual Typing.
Αυτό επέτρεψε την Facebook να αντικαταστήσει σταδιακά τον υπάρχοντα κώδικα της PHP, σε Hack. Να μετακινηθεί από το παλιό σύστημα δυναμικών τύπων, σε ένα σύστημα στατικών τύπων. Αυτή την στιγμή όλο το Facebook τρέχει δηλαδή σε Hack. Το ότι 1.2 δις άτομα χρησιμοποιούν το Facebook, δείχνει ότι η Hack έχει περάσει επιτυχημένα και το τεστ της χρήσης της σε πραγματικές συνθήκες. Και μάλιστα πολύ ζόρικες συνθήκες.
Έτσι οι μηχανικοί της Facebook μπορούν πλέον να γράφουν ακριβέστερο κώδικα, καλύτερα οργανωμένο, με λιγότερα λάθη και σε βάθος χρόνου να είναι διαχειρίσιμος. Ενώ μπορούν να έχουν μεγάλη ταχύτητα ανάπτυξης, αφού η Hack τρέχει χωρίς να χρειάζεται μεταγλώττιση, σε αντίθεση με τις συνηθισμένες γλώσσες στατικών τύπων. Αλλάζεις ένα αρχείο, κάνεις reload την σελίδα και βλέπεις άμεσα το αποτέλεσμα. Όπως με την PHP.
Η Hack είναι Open Source, ώστε οποιοσδήποτε να μπορεί να την χρησιμοποιήσει, αλλά και να την βελτιστοποιήσει.
Άμεσοι ενδιαφερόμενοι θα είναι οι προγραμματιστές που γράφουν ήδη σε PHP και οι εφαρμογές γραμμένες σε αυτήν, αφού η μετάβαση μπορεί να γίνει εύκολα και σταδιακά. Ενώ και όσοι δεν έγραφαν σε PHP, εξαιτίας των μειονεκτημάτων της, μπορούν τώρα να σκεφτούν την Hack, η οποία τα αντιμετωπίζει.
Πηγή: Wired