Native Client: η επανάσταση του Internet, από την Google

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

Εν συντομία, η ίδια η είδηση έχει ως εξής: η Google στις 12 Μαίου παρουσίασε το Native Client SDK, το οποίο μας “θύμισε” χθες το Gizmodo – το οποίο, όμως, δεν εμβάθυνε στο “τι ακριβώς σημαίνει αυτό για το μέλλον των υπολογιστών” όσον αφορά εμάς, ως χρήστες. Ούτε εξήγησε “τι ακριβώς είναι αυτό” με τρόπο που να είναι ευρέως αντιληπτός. Εδώ, λοιπόν… ερχόμαστε εμείς.

Εν αρχή, ο κώδικας

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

Φαντασθείτε πως ο κεντρικός επεξεργαστής του υπολογιστή είναι ένας εξωγήινος, ένα… ρομπότ από άλλο πλανήτη, που “μιλάει τη δική του γλώσσα”. ΟΚ; Τέλος παρένθεσης.

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

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

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

Και, με το παραπάνω, μόλις εξηγήσαμε τη βασική διαφορά των περισσότερων γλωσσών προγραμματισμού: κάποιες είναι “πιο ανθρώπινες”, άλλες είναι “πιο κομπιουτεράδικες”. Οι πρώτες είναι “ευκολότερες” για τον άνθρωπο, άλλες είναι πολύ δυσκολότερες να τις μάθει. Η πιο διαδεδομένη από όλες, πάντως, είναι η C/C++.

Η C/C++ δεν είναι η ευκολότερη γλώσσα, αλλά δεν είναι και “η γλώσσα του ρομπότ”, και με αρκετό κόπο μπορεί κανείς να τη μάθει. Το βασικότερο πλεονέκτημα της είναι πως, λόγω του ότι είναι αρκετά “κοντινή στη λόγική της δικής του γλώσσας”, το ρομπότ, ο επεξεργαστής του υπολογιστή μας, μπορεί να “την καταλάβει ευκολότερα” και, άρα, “να την μιλήσει καλύτερα”. Αυτό μεταφράζεται ως “τα προγράμματα που είναι γραμμένα σε C/C++ συνήθως `τρέχουν` πολύ γρηγορότερα από ό,τι όσα έχουν γραφτεί σε μια άλλη γλώσσα, π.χ. στη JAVA”.

Page 1 of 41234
...γνωστός και ως Οδυσσέας Κουράφαλος, αρχικός υπεύθυνος για το unregistered. Συντάκτης, γραφίστας, "μαλτιμηντιάς", φανατικός της science fiction και των αστείων γατιών στου ιντερνέτ. "Δηλώνω graphics whore" (παίζω Ms. Pac-Man στο MAME με 2xSAL και το πρώτο Max Payne με FXAA antialiasing). Load "unreg*",8,1.