Την κορυφαία μηχανή αναζήτησης στο Διαδίκτυο σίγουρα όλοι την γνωρίζουμε. Ο λόγος για την μηχανή της Google, ονόματι «Google Search». Η Google συμμετέχει στην καθημερινότητα και μέσω άλλων προγραμμάτων / υπηρεσιών, όπως οι Χάρτες (Google Maps), ο κειμενογράφος (Google Docs), το ηλεκτρονικό ταχυδρομείο Gmail και φυσικά με τη δημοφιλέστερη υπηρεσία διαμοιρασμού βίντεο YouTube. Πέραν αυτών, η Google παρέχει μια ποικιλία εφαρμογών για τον σύγχρονο χρήστη, που καλύπτουν πολλαπλές ανάγκες.

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

ΔΙΑΦΗΜΙΣΤΙΚΟΣ ΧΩΡΟΣ

Πρόσφατα η Rachel Potvin, στέλεχος της Google, αποκάλυψε αυτόν τον αριθμό: 2 δισεκατομμύρια γραμμές κώδικα! Πιο συγκεκριμένα, οι 2 δισεκατομμύρια γραμμές βρίσκονται μέσα σε 250.000 αρχεία. Για να καταλάβουμε το τεράστιο μέγεθος της Google από πλευράς προγραμματιστικών γραμμών, αρκεί να αναφέρουμε ότι το πιο πολύπλοκο Λειτουργικό Σύστημα για υπολογιστές στον κόσμο, το Microsoft Windows, απαρτίζεται από περίπου 50 εκατομμύρια γραμμές κώδικα, δηλαδή η Google έχει 40 φορές παραπάνω γραμμές κώδικα. Ακολούθως, το γνωστό Facebook αποτελείται από 20 εκατομμύρια γραμμές, ενώ το Λειτουργικό Σύστημα Linux, αποτελείται από 15 εκατομμύρια γραμμές σε 40.000 διαφορετικά αρχεία. Έτσι λοιπόν, μπορούμε να αναλογιστούμε την υπερ-προσπάθεια που έχει καταβάλλει η Google, δια των 25.000 προγραμματιστών-μηχανικών που διαθέτει. Όσο αφορά τους τελευταίους, πραγματοποιούν περί τις 15 εκατομμύρια αλλαγές/παρεμβάσεις/βελτιώσεις κάθε εβδομάδα. Επίσης, περίπου 45 χιλιάδες αλλαγές λαμβάνουν χώρα κάθε μέρα!

ΔΙΑΦΗΜΙΣΤΙΚΟΣ ΧΩΡΟΣ

Πόσο όγκο καταλαμβάνει ο κώδικας των 2 δισεκατομμυρίων γραμμών; Η απάντηση της Rachel Potvin προκαλεί ίλιγγο: περίπου 85 TeraByte χωρητικότητας (ή αλλιώς 85.000 GigaByte), που βρίσκονται διάσπαρτα στα 10 διαφορετικά κέντρα δεδομένων της Google στον πλανήτη.

Λογικό είναι να φαντάζεστε ότι οι προγραμματιστές-μηχανικοί της Google, είναι πλημμυρισμένοι από έναν άτακτο και αχανή όγκο πληροφοριών και γραμμών κώδικα, ψάχνοντας απεγνωσμένα να βρουν μια άκρη. Η αλήθεια απέχει μακράν και αυτό διότι τα 2 δισεκατομμύρια γραμμών κώδικα, είναι συγκεντρωμένα σε μια αυτοτελή «οντότητα», τη οποία θα μπορούσαμε να παρομοιάσουμε με ένα πανύψηλο δέντρο με αμέτρητα φύλλα. Αυτή η ενιαία οντότητα ονομάζεται «Piper». Κάθε προγραμματιστής-μηχανικός έχει πρόσβαση σε αυτό το δέντρο, ταυτόχρονα με τους χιλιάδες συναδέλφους του. Έτσι, όποια αλλαγή γίνεται στον προγραμματιστικό κώδικα, αυτόματα εμφανίζεται και σε όλους τους προγραμματιστές. Κατ΄ επέκταση λοιπόν, όλες οι εφαρμογές και υπηρεσίες της Google είναι «ζωντανές», αφού κάθε μέρα οι προγραμματιστές βρίσκονται στα εσωτερικά του κώδικά τους, συνεχώς διορθώνοντας, βελτιώνοντας και γράφοντας νέες γραμμές προγραμματισμού. Κάποια κομμάτια του ενιαίου προγραμματιστικού κώδικα δεν είναι προσβάσιμα από όλους τους μηχανικούς, παρά μόνο σε πολύ συγκεκριμένους, όπως το κομμάτι που αφορά τον αλγόριθμο αναζητήσεων με την ονομασία «PageRank». Παράλληλα, άλλα δύο κομμάτια εντελώς αυτόνομα και ξεχωριστά, είναι οι κώδικες για τα Λειτουργικά Συστήματα Android και Chrome, που ανήκουν σε διαφορετικές ενιαίες «οντότητες-δέντρα».

Τέλος, η Google και το Facebook, συνεργάζονται ώστε να προσφέρουν στους απανταχού προγραμματιστές μια ενιαία οντότητα διαχείρισης γραμμών κώδικα. Βασιζόμενη σε μια ήδη υπάρχουσα ονόματι «Mercurial», η προσπάθεια αποσκοπεί σε ένα σύστημα που θα είναι διαθέσιμο στον καθένα, μέσω «ανοιχτού κώδικα» (δηλαδή οποιοσδήποτε θα έχει το δικαίωμα να παρέμβει και να βελτιώσει τον τρόπου που θα λειτουργεί αυτή η οντότητα). Άπαξ οι Google – Facebook τα καταφέρουν, τότε οι προγραμματιστές ανά την υφήλιο θα έχουν ένα πολύ ισχυρό και εξυπηρετικό εργαλείο στα χέρια τους.

Περισσότερες πληροφορίες:

http://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place

Λευτέρης Ξυκομηνός

σχόλια αναγνωστών
oδηγός χρήσης