-
Πίνακες, δείκτες, γλώσσες και αζαγιές*

Έχω φτάσει σε ένα σημείο, σε μια ηλικία, κάπου τέλος πάντων, που βρίσκω από ηλίθια έως τραγικά, πολλά από τα χαρακτηριστικά θεμελιωδών, κατεστημένων, παραδοσιακών και συχνά διαιωνισμένων διεργασιών με τις οποίες αλληλεπιδρώ. Μία από αυτές είναι η Εκκλησία, μία άλλη είναι η κοινωνία, η δημοσιογραφία, το πολίτευμα…
Ο τρέχον ενεργός εκνευρισμός μου είναι με τις γλώσσες προγραμματισμού. Μετά από 10+ χρόνια προγραμματισμού, βρίσκω τη γραμματική και το λεξιλόγιο των γλωσσών υπερβολικά απλοϊκό, τη δομή τους περιοριστική, την φιλοσοφία τους επιρρεπή σε σφάλματα, τη δυσκολία κλιμακωσιμότητας τους εκθετική, την απεικόνιση προβλημάτων του πραγματικού κόσμου σε αυτές γεμάτη κενά και τις ίδιες καθόλου “διαισθητικές”, τόσο για τον προγραμματιστή (το ένα μέλος στο κανάλι επικοινωνίας που ορίζει η “γλώσσα”) όσο και τη μηχανή (το άλλο μέλος). Με λίγα λόγια, βρίσκω πως μας πέφτουν “λίγες”, πως οι δυνατότητες τους είναι τραγικά περιορισμένες. Πως είναι ασύμβατες με την ανθρώπινη νόηση, τη φύση. Ακόμη και με τα ίδια τα μαθηματικά!
Κάποια στιγμή, πρέπει να πεταχτούν εντελώς οι γλώσσες προγραμματισμού και να φτιαχτούν γλώσσες υπολογιστών. Που να στοχεύουν όχι στη δημιουργία προγραμμάτων αλλά στην επικοινωνία ανθρώπου-υπολογιστή.
Για αυτά όμως θα μιλήσω κάποια άλλη φορά, γιατί τώρα βαριέμαι. Κάποια φορά θα αναπτύξω το συλλογισμό αυτό και θα αιτιολογήσω τις “βλασφημίες” μου. Τώρα, θα αναφέρω ένα πολύ απλό παράδειγμα, το οποίο ίσως θα ακούγεται κουτό σε σχέση με τις βαρύγδουπες παραπάνω κουβέντες (και πάλι δε με νοιάζει, γιατί βαριέμαι).
Πόσο κουτό μου φαίνεται οι σύγχρονες γλώσσες προγραμματισμού να αναφέρονται στο πρώτο κελί ενός πίνακα με τον δείκτη
0αντί με το1. Το πρώτο στοιχείο είναι το0, το νιοστό στοιχείο είναι τον-1.Επειδή παλιά δηλαδή, η προσπέλαση στη μνήμη ήταν του στυλ <θέση μνήμης>[<μετατόπιση>] (πχ. το
0AFF[01]σήμαινε την επόμενη θέση μνήμης από την0AFF), πρέπει 40 χρόνια μετά να ακολουθούμε την ίδια “παραδοσιακή” (λέγε με αρχαία) τυπικότητα. Η οποία τυπικότητα παραξενεύει/δυσκολεύει κάθε νέο άτομο που επιχειρεί να “μιλήσει” με τις μηχανές και βάζει σε σκέψη κάθε έμπειρο που γράφει ένα βρόγχο για να σιγουρευτεί αν όλα είναι ΟΚ.Τόσο απλό. Και συνάμα τόσες γλώσσες το διατηρούν ακόμη…
* Αζαγιά: (κυπριακό) – Ο ιστός της αράχνης. Χρησιμοποιείται συχνά για τους ιστούς που βρίσκονται σε αντικείμενα που έχει καιρό να καθαριστούν.
Update: Θυμήθηκα μια συνέντευξη του Jaron Lanier, που διάβασα πριν 3 χρόνια σχετικά με τον τρόπο που γράφουμε προγράμματα “σήμερα”. Στο πνεύμα της καταχώρησης, μοιάζει περισσότερο επίκαιρη από ποτέ και μπορεί να δώσει μια ιδέα του συλλογισμού περί ριζικής αλλαγής του τρόπου που επικοινωνούμε με τους υπολογιστές. Must-read.
