Το “cloud”, οι “apps”, το… χάλι μας το μαύρο

Η μεγαλύτερη καταστροφή που έφεραν οι σύγχρονοι browsers και τα smartphones ήταν η κυριαρχία του λεγόμενου cloud και των apps. Γιατί “καταστροφή”; Well…

Τα παλιά-παλιά εκείνα χρόνια που ο Donkey Kong ήταν ό,τι πιο “hot” στο χώρο των παιχνιδιών και εμάς τους thirty-something μας έντυνε, ακόμη, η μαμά μας, οι “ψαγμένοι” αλληλο-κράζονταν για θα θετικά και αρνητικά κάποιων γλωσσών προγραμματισμού. Δεν θα μπω σε βάθος στην όλη υπόθεση, αρκεί μια αναφορά στη βασική διαφορά τους: οι μεν “έτρεχαν μέσω parser”, οι δε “έπρεπε να γίνουν compile”. Κάπου εδώ μάλλον έχασα τα τρία τέταρτα από εσάς, μα… Δεν είναι τόσο πολύπλοκο όσο φαντάζεστε.

Οι γλώσσες “που έτρεχαν μέσω parser”, όπως για παράδειγμα η BASIC, ήταν γλώσσες στις οποίες αφού έγραφες ένα πρόγραμμα, όταν ήθελες να το τρέξεις, το έκανες μέσω ενός parser. Μέσω ενός “μεταφραστή”, που έπαιρνε τον κώδικα σου και τον μετέτρεπε “σε κώδικα που καταλάβαινε ο υπολογιστής”, σε πραγματικό χρόνο.

Αντίθετα, οι γλώσσες “που ήθελαν compile”, όπως για παράδειγμα η C, ήταν γλώσσες που, για να τρέξει ο κώδικας σου, έπρεπε να τον “πακετάρεις” σε ένα εκτελέσιμο αρχείο. Το “πακετάρισμα” ήταν η διαδικασία μετατροπής του κώδικα “ώστε να τον καταλαβαίνει ο υπολογιστής”.

Στην πρώτη περίπτωση, κάθε φορά που έτρεχες το πρόγραμμα σου, κάθε φορά ο υπολογιστής το ξανα-μανα-μετέφραζε “στη δική του γλώσσα”, “για να μπορεί να το καταλάβει”. Στη δεύτερη, όποτε το έτρεχες, δεν χρειαζόταν καμία πρόσθετη κίνηση: το είχες ήδη “μεταφράσει στη γλώσσα του υπολογιστή”, όταν το είχες “πακετάρει” (“κάνει compile”).

Όλες οι γλώσσες προγραμματισμού, ανεξαρτήτως του αν χρειάζονται parser, μπορούν να τοποθετηθούν σε μια κλίμακα, βάσει δυο κριτηρίων: το πόσο γρήγορα τρέχουν τα προγράμματα που γράφονται σε αυτές και το πόσο εύκολο είναι να τις μάθει κανείς. Αυτά τα δυο είναι αλληλένδετα: όσο “ευκολότερη” είναι μια γλώσσα προγραμματισμού, τόσο απομακρύνεται από τη “μηχανική” λογική του υπολογιστή και πλησιάζει την ανθρώπινη λογική (για αυτό, άλλωστε, και είναι ευκολότερη). Ταυτόχρονα όμως, όσο απομακρύνεται από τη “μηχανική” λογική του υπολογιστή, τόσο περισσότερο κόπο χρειάζεται να καταβάλλει αυτός για “να την καταλάβει”.

Με άλλα λόγια, γράφεις πρόγραμμα με μια “εύκολη” γλώσσα; Θα τρέχει αργά. Με μια “δύσκολη”; Θα τρέχει γρήγορα. Προσθέστε, τώρα, πως συνήθως οι “εύκολες” γλώσσες είναι και αυτές που “τρέχουν μέσω parser”, ο οποίος επιφέρει πρόσθετη καθυστέρηση. Αποτέλεσμα; Στον ίδιο υπολογιστή, με το ίδιο σετ προϋποθέσεων, ενώ με μια “γρήγορη” γλώσσα έχεις το Crysis, με μια “εύκολη” γλώσσα που τρέχει μέσω parser έχεις… well, στην καλύτερη, το κλασσικό Duke Nuke’em.

Τι σχέση έχουν όλα αυτά με το θέμα μας; Τεράστια!

Page 1 of 612345...Last »
...γνωστός και ως Οδυσσέας Κουράφαλος, αρχικός υπεύθυνος για το unregistered. Συντάκτης, γραφίστας, "μαλτιμηντιάς", φανατικός της science fiction και των αστείων γατιών στου ιντερνέτ. "Δηλώνω graphics whore" (παίζω Ms. Pac-Man στο MAME με 2xSAL και το πρώτο Max Payne με FXAA antialiasing). Load "unreg*",8,1.
  • Όμορφο δε λες τίποτα Οδυσσέα. Οι χαμηλές επιδόσεις των web applications υπάρχει και στα flash προγραμματάκια. Ειδικά στα παιχνίδια τύπου facebook, δε μπορείς να είσαι σίγουρος ότι θα μπεις να παίξεις άνετα, χωρίς κολλήματα. Εδώ μπαίνει και το ψυχολογικό γίγνεσθαι ενός νέου χρήστη, που θα πάει να αγοράσει ακριβό hardware και θα δει το Farmville να κολλάει. Τότε είναι που θα νομίζει ότι τον περιορίζει το hardware που αγόρασε με τον ιδρώτα του. Πρόσφατα η μητέρα ενός φίλου μου αγόρασε κάρτα γραφικών για τον υπολογιστή της για να παίζει… Farmville. Που να ήξερε ότι το hardware acceleration που διαφημίζεται, τις περισσότερες φορές είναι διακοσμητικό στοιχείο.