Σάββατο 12 Μαρτίου 2016

Διασκεδαστικά μαθηματικά



Τρίτη 1 Μαρτίου 2016

Η σκοτεινή μεταλλαγή της JavaScript σε ECMAScript


Η JavaScript είναι μια γλώσσα προγραμματισμού που αναπτύχθηκε το 1995 από τον Brendan Eich σε διάστημα δέκα ημερών προκειμένου να εμπλουτιστεί ο NetScape με κάποιου είδους «λογική», καθώς εκείνη την εποχή ο ανταγωνισμός των browsers ήταν φοβερός. Ο Eich, παρόλο που είχε ελάχιστο χρόνο στη διάθεσή του -ίσως, μάλιστα, εξ αυτού του λόγου- ανέπτυξε μια γλώσσα που παρείχε τα απολύτως απαραίτητα προκειμένου κάποιος να μπορεί εύκολα και γρήγορα να προσθέσει «λογική» σε ιστοσελίδες. Η γλώσσα, χωρίς να παρέχει όλα όσα παρέχουν οι class oriented αντικειμενοστρεφείς γλώσσες προγραμματισμού, είναι ωστόσο αντικειμενοστρεφής, καθώς παρέχει πρότυπα, μεθόδους και όλα όσα χρειάζεται ένας προγραμματιστής από μια prototype-based αντικειμενοστρεφή γλώσσα προγραμματισμού.

Η JavaScript σημείωσε τεράστια επιτυχία και μέσα σε διάστημα 20 χρόνων έγινε η πλέον συχνά χρησιμοποιούμενη γλώσσα προγραμματισμού, με χιλιάδες πακέτα και βιβλιοθήκες να ξεφυτρώνουν σαν μανιτάρια, ενώ μετά την εμφάνιση του Node.js, η JavaScript έβαλε το πόδι της για τα καλά και στον χώρο των servers, καθώς μέχρι το 2010 περιοριζόταν αυστηρά στο client-side programming, με έμφαση κυρίως στους browsers, στο user interface και στη διαχείριση του DOM. Ωστόσο, με την εκρηκτική διάδοση της γλώσσας, κυρίως στο διάστημα 2005-2015, εμφανίστηκαν τάσεις αυστηροποίησης, επέκτασης και αναβάθμισης που κατέληξαν στο σχεδιασμό μιας νέας γλώσσας με το παράξενο όνομα ECMAScript.

Παρακολουθώντας στενά την πορεία της γλώσσας, έχω την πεποίθηση ότι η επιτυχία της οφείλεται αποκλειστικά και μόνον στην απλότητα και στην πληρότητα που είχε από τον αρχικό σχεδιασμό της. Ωστόσο, τα τελευταία χρόνια νιώθω ότι η απλότητα τείνει πια να χαθεί και αυτό γίνεται αμέσως φανερό διαβάζοντας τα βιβλία του Nicholas Zachas και ακούγοντας τις διαλέξεις του Douglas Crockford. Πράγματι, αυτοί οι γκουρού της γλώσσας έχουν πλέον ξεφύγει σε πολύ εξεζητημένα ζητήματα με αποτέλεσμα να δημιουργείται όλο και μεγαλύτερη εσωστρέφεια, που κατά την ταπεινή μου άποψη, αντί να βελτιώνουν τη γλώσσα, τελικά συντείνουν στην απαξίωσή της. Καταλήγω λοιπόν στη διαπίστωση ότι η ευρεία διάδοση της γλώσσας και η τεράστια επιτυχία που σημείωσε τα τελευταία χρόνια, έχει δημιουργήσει κλίμα υπερβολικής ευφορίας και αυτοπεποίθησης που οδηγεί αναπόφευκτα σε αλαζονεία και σε όσα αυτή συνεπάγεται. Το έργο το έχουμε ξαναδεί τόσο με τη C, όσο και με την PHP, όπου η αρχική απλότητα χάθηκε με τον καιρό, με αποτέλεσμα τη δραματική μείωση της εκρηκτικής διάδοσης που είχαν οι γλώσσες αυτές στην αρχή της ζωής τους. Διακινδυνεύω, λοιπόν, την πρόβλεψη ότι προϊόντος του χρόνου η JavaScript (πλέον ECMAScript) θα ακολουθήσει κατιούσα πορεία.