Κυριακή 27 Δεκεμβρίου 2009

ARNOLD ROBBINS, ΕΝΑΣ ΑΚΟΥΡΑΣΤΟΣ ΕΡΓΑΤΗΣ

Αν δεν είστε προγραμματιστές Η/Υ, μάλλον θα σας κουράσει το παρακάτω άρθρο. Πράγματι, θα αναφερθώ σε κάποιον λαμπρό επιστήμονα της πληροφορικής που εδώ και πολλά χρόνια είναι ο συντηρητής του gawk, δηλαδή της GNU έκδοσης του φοβερού εργαλείου που ακούει στο όνομα awk (από τα ονόματα των δημιουργών του: Al Aho, Peter Weinberger και Brian Kerninghan). Ο awk είναι ένα κομψό και ελαφρύ πρόγραμμα που αποτελεί για το UNIX, το Linux και όλα τα υπόλοιπα UNIX-like συστήματα ένα από τα σημαντικότερα προγραμματιστικά εργαλεία γενικής χρήσης, και ως τέτοιο μετέχει σε χιλιάδες άλλα προγράμματα χωρίς όμως έτσι να φαίνεται άμεσα η χρησιμότητά του. Με λίγα λόγια, θα μπορούσε κάποιος να πει ότι ο awk είναι ο ελβετικός σουγιάς του προγραμματιστή. Βέβαια με την αλματώδη ανάπτυξη των υπολογιστικών συστημάτων και την συνακόλουθη αλλαγή στον τρόπο ανάπτυξης προγραμμάτων (σήμερα διατίθενται χιλιάδες απίστευτα προγραμματιστικά εργαλεία στη φαρέτρα του προγραμματιστή), η σημασία προγραμμάτων όπως ο awk ίσως έχει λίγο υποβαθμιστεί, πάντως ακόμη και σήμερα, ο awk συνεχίζει να λάμπει στο στερέωμα των Η/Υ ως ένα από τα ομορφότερα προγραμματιστικά διαμάντια που φτιάχτηκαν ποτέ. Σε μια πρόχειρη έρευνα που έκανα σε πρόσφατη διανομή του Linux, βρήκα ότι ο awk είναι «χωμένος» σε πάνω από εκατό προγράμματα του συστήματος, πράγμα που σημαίνει ότι μετέχει ενεργά σε χιλιάδες άλλα προγράμματα, καθώς τα προγράμματα του συστήματος χρησιμοποιούνται από άλλα προγράμματα συστήματος, προγράμματα εφαρμογών κοκ.

Μετά την αρχική ανάπτυξη και βελτίωση του awk κατά τις δεκαετίες 1970 και 1980, και με την ίδρυση του GNU project (πρόκειται για μια από τις μεγαλύτερες κατακτήσεις του ελεύθερου λογισμικού), δημιουργήθηκε ο gawk (GNU awk) ως παρακλάδι του awk. Ο gawk, ως GNU εργαλείο, έχει, φυσικά, ανοικτό κώδικα (μπορεί οποιοσδήποτε προγραμματιστής να δει ή να διορθώσει/βελτιώσει τον κώδικα) και έτσι παρουσιάζει πολλές βελτιώσεις έναντι του παρωχημένου πια awk. Με λίγα λόγια μπορούμε να πούμε ότι σήμερα όταν μιλάμε για awk εννοούμε ουσιαστικά τον gawk. Όπως και σε χιλιάδες άλλα προγράμματα «ανοικτού» κώδικα, έτσι και στην περίπτωση του awk φάνηκε αμέσως η δύναμη του ελεύθερου λογισμικού και γενικότερα της διεθνούς συνεργασίας (μέσω πάντα του web). Οι περισσότεροι από εσάς απολαμβάνετε τους καρπούς του ελεύθερου λογισμικού, χωρίς καν να το γνωρίζετε. Π.χ. ο Firefox της Mozilla είναι τελείως ανοικτός και αποτελεί ένα από τα πιο επιτυχημένα προϊόντα του ελεύθερου λογισμικού. Όσοι πάλι από εσάς προτιμάτε τον Internet Explorer της Microsoft, να σας πω ότι οι περισσότερες από τις (σημαντικές) βελτιώσεις του IE τα τελευταία χρόνια είναι επίσης προϊόν του ελεύθερου λογισμικού, καθώς προέκυψαν ως αποτελέσματα ανταγωνισμού απέναντι στον Firefox και άλλους browsers ανοικτού κώδικα. Με λίγα λόγια, η Microsoft αναγκάζεται να βελτιώσει τον IE, καθώς αν δεν το κάνει, θα χάσει μεγάλο κομμάτι των χρηστών του δικού της browser. Βεβαίως, οι περισσότερες βελτιώσεις που γίνονται στο χώρο του ιδιόκτητου (κλειστού) κώδικα είναι κατευθείαν αντιγραφές και μεταφορές ιδεών από προγράμματα ελεύθερου λογισμικού.

Το πράγμα βέβαια λειτουργεί και αντίστροφα. Πάρτε για παράδειγμα τον Gimp (GNU Image Processing), το φοβερό και τρομερό πρόγραμμα επεξεργασίας φωτογραφίας και εικόνας. Ο Gimp ενσωμάτωσε ήδη από το ξεκίνημά του όλες τις χρήσιμες λειτουργίες παρόμοιων προγραμμάτων ιδιόκτητου κώδικα, π.χ. του Adobe Photoshop. Βεβαίως σήμερα η κατάσταση έχει αντιστραφεί, καθώς χιλιάδες καλοί προγραμματιστές από όλο τον κόσμο μετέχουν στην ανάπτυξη του Gimp, οπότε τώρα είναι η Adobe που τρέχει να προλάβει τις εξελίξεις. Το ίδιο συμβαίνει και τους browsers Opera και Safari, όπου ανταγωνίζονται τον ανοικτό browser Chrome της Google, το ίδιο συμβαίνει και με τα προγράμματα εγγραφής CD, DVD και BlueRay. Πράγματι, κανείς δεν αμφισβητεί την κυριαρχία του Nero σ' αυτόν τον τομέα, ωστόσο δεν είναι διόλου εύκολο για την εταιρεία να ανταγωνίζεται τα πολλά και καλά παρόμοια προγράμματα ανοικτού κώδικα που κυκλοφορούν· εγώ, για παράδειγμα, χρησιμοποιώ το εξαιρετικό ImgBurn, ενώ στο χώρο του Linux τα Brasero και k3b είναι «άπαιχτα». Αρκετά όμως από το χώρο του ελεύθερου λογισμικού και του ανοικτού κώδικα. Το θέμα μου δεν είναι ο κώδικας, αλλά ένας ακούραστος εργάτης της πληροφορικής, ο Arnold Robbins. Ο Robbins είναι επαγγελματίας προγραμματιστής και συγγραφέας τεχνικών βιβλίων. Έζησε και εργάστηκε μέχρι πρόσφατα στην Ατλάντα των ΗΠΑ, ενώ πρόσφατα μετοίκησε στο Ισραήλ με την οικογένειά του (είναι Εβραίος) και εργάζεται εκεί ως προγραμματιστής της Intel. Εργάστηκε σε συστήματα UNIX από το 1980, ενώ από τον 1987 ανέλαβε επίσημα τη συντήρηση, ανάπτυξη και βελτίωση του gawk, συμμετέχοντας ενεργά στο GNU project. Το όλο gawk project είναι ανεβασμένο στο savannah, όπως και τα περισσότερα κομμάτια του GNU project. Είναι απίστευτο το πόσο πολλή δουλειά έχει κάνει, και συνεχίζει να κάνει, ο Arnold. Εγώ προσωπικά του χρωστάω πολλά, όχι μόνο για τις βελτιώσεις που έχει κάνει στον awk όλα αυτά τα χρόνια, αλλά και για το εξαιρετικό βιβλίο που έχει συγγράψει: Effective awk Programming. Πράγματι, πρόκειται για ένα από τα καλύτερα και αρτιότερα βιβλία πληροφορικής που έχω διαβάσει, και, πιστέψτε με, έχω διαβάσει πάρα πολλά!

Δεν αρκεί να φτιάξει κανείς ένα σημαντικό προγραμματιστικό εργαλείο. Εξίσου σημαντική είναι και η πλευρά της παρουσίασης και ανάδειξης του εργαλείου στην κοινότητα των προγραμματιστών. Γνωρίζω αρκετά αξιόλογα εργαλεία τα οποία δεν τυγχάνουν ευρείας αποδοχής, μόνο και μόνο επειδή δεν είναι γνωστά στον πολύ κόσμο. Εγώ προσωπικά, δούλευα τον gawk αγνοώντας πολλές από τις σημαντικές βελτιώσεις του Robbins, μέχρι που παρήγγειλα το βιβλίο. Από την ώρα εκείνη, η δουλειά μου με τον awk απογειώθηκε και μπορώ να πω με βεβαιότητα ότι πολλά από τα προγράμματα που ανέπτυξα τα τελευταία 6 χρόνια θα ήταν αδύνατο να τα αναπτύξω με την ευκολία και την ταχύτητα που τα ανέπτυξα χρησιμοποιώντας τον gawk σε όλη του τη μεγαλοπρέπεια. Αυτό όμως που με ώθησε να γράψω τούτο το άρθρο δεν είναι ο awk και οι τεράστιες δυνατότητες που παρέχει στον προγραμματιστή. Κύριος στόχος μου είναι ο ίδιος ο Robbins και ο απίστευτος όγκος δουλειάς που καταθέτει στον ανοικτό κώδικα. Διαβάζω και ξαναδιαβάζω τις εργασίες του και τα άρθρα που κατά καιρούς εμφανίζονται σε διάφορα sites του διαδικτύου και ομολογώ ότι μου είναι δύσκολο να συλλάβω το πού βρίσκει αυτός ο άνθρωπος χρόνο και «φέρνει βόλτα» όλα αυτά τα θηρία με τα οποία παλεύει εδώ και πάνω από δυο δεκαετίες· μην ξεχνάμε ότι η δουλειά του δεν έχει και πολλή σχέση με τον awk, είναι ένα τελείως διαφορετικό κεφάλαιο πάνω στη δομή και στην αρχιτεκτονική των μικροεπεξεργαστών.

Χθες κοινοποιήθηκαν στην επίσημη σελίδα του awk (το μυστηριώδες "Inside the Lawker room" προς το τέλος του sidebar του παρόντος ιστολογίου) δύο νέες αναφορές του Robbins· η πρώτη έχει να κάνει με τη μελλοντική πορεία του gawk, όπου ο Arnold ανακοινώνει στην κοινότητα τα σχέδιά του για το άμεσο και απώτερο μέλλον, ενώ η δεύτερη αναφορά είναι μια φόρμα που ετοίμασε ο Arnold ζητώντας τη συνδρομή της κοινότητας σε διάφορες επιλογές προκειμένου να αποφασίσει πώς ακριβώς θα προχωρήσει στις τομές που σκέφτεται να προωθήσει από δω και πέρα όσον αφορά στη συμπερίληψη αρχείων στον gawk, δηλώνοντας ωστόσο ότι η τελική απόφαση θα είναι δική του: The maintainer will make the final decision [sic]. Μπορεί αυτή η συμπεριφορά να φαντάζει κάπως αλαζονική, αλλά στον κόσμο του ελεύθερου λογισμικού μπορούν, ανά πάσα στιγμή, οι συμμετέχοντες σε οποιοδήποτε project να δημιουργήσουν νέο κλώνο του project, απομονώνοντας το συντηρητή που την έχει δει «Βοναπάρτης», και συνεχίζοντας απρόσκοπτα την ανάπτυξη των σχετικών προγραμμάτων. Τέτοιου είδους «ανταρσίες» είναι συνηθισμένες στο χώρο του ανοικτού κώδικα και ο χρόνος είναι αυτός που θα δείξει ποιος κλώνος θα επιβιώσει μέσα από την αποδοχή ή όχι του αντίστοιχου project από την κοινότητα που είναι και ο τελικός αποδέκτης των προϊόντων πληροφορικής. Τρανταχτό παράδειγμα κλωνοποίησης αποτελεί ο Iceweasel που δημιουργήθηκε ως κλώνος του Firefox όταν η Mozilla πήγε να τζογάρει, μεθυσμένη από την τεράστια επιτυχία του browser· αμέσως κινητοποιήθηκαν οι συμμετέχοντες και δημιούργησαν τον Iceweasel ως κλώνο του Firefox, αναγκάζοντας έτσι τη Mozilla να συμμαζευτεί, καθώς κινδύνευε να μείνει χωρίς προγραμματιστές. Ο Iceweasel παραμένει και συντηρείται ως κλώνος του Firefox ακόμη και σήμερα, αποτελώντας φόβητρο για τους επίδοξους χρηματιστές που σκέφτονται να τζογάρουν στον ανοικτό κώδικα.

Φυσικά και απάντησα αμέσως στη φόρμα του Arnold, στέλνοντάς του μάλιστα και ένα προσωπικό μνημόνιο στο οποίο του παραθέτω τις σκέψεις μου σε κάθε μια από τις επιλογές της φόρμας, καθώς, πριν δυο περίπου χρόνια, είχα συζητήσει μαζί του (μέσω email) εκτενώς την αναγκαιότητα της συμπερίληψης αρχείων στον gawk. Το θέμα όμως δεν είναι η συγκεκριμένη φόρμα. Το θέμα είναι ο τρόπος με τον οποίο λειτουργούν σήμερα άνθρωποι σαν το Robbins, όπου ο αρχιερέας ενός τόσο σημαντικού εγχειρήματος όχι απλώς δεν κάνει του κεφαλιού του, αλλά καταφεύγει στην κοινότητα ζητώντας ιδέες, απόψεις και κρίσεις, ώστε το προϊόν να είναι διαφανές και να τυγχάνει της αποδοχής όχι κάποιων γκουρού, αλλά της κοινότητας γενικά.

Έτσι δουλεύουν σήμερα αυτοί που έχουν πρόθεση και διάθεση να υπηρετήσουν το δημόσιο συμφέρον κκ. βουλευτές και αρμόδιοι διαφόρων επιτροπών και ινστιτούτων. Το «αποφασίζομεν και διατάσσομεν» έχει πεθάνει από το 1974, κ. Μπαμπινιώτη, αλλά μοιάζει να μην το έχετε πάρει χαμπάρι. Τα αποτελέσματα, κ. Λοβέρδο, τα νιώθουμε πια στην τσέπη μας και σε λίγο θα τα νιώθουμε και στο πετσί μας  κυριολεκτικά (πολλοί συνάνθρωποί μας τα νιώθουν ήδη). Αντί να αναθέσετε, ήδη από το 1981, σε ανθρώπους σαν τον Arnold κάθε ένα από τα πάμπολλα μικρά κομμάτια που συνιστούν αυτό το τέρας που λέγεται δημόσια διοίκηση, εσείς δώσατε βορά στους καρχαρίες, στις ύαινες και στα χιλιάδες τρωκτικά που κυκλοφορούν στις υπόγειες στοές και στους σκοτεινούς διαδρόμους των υπουργείων, την οργάνωση της Παιδείας, της Υγείας, της Ασφάλισης, της Οικονομίας και της Διοίκησης με αποτέλεσμα να ξοδευτούν (αναλωθούν είναι η σωστή λέξη) τεράστια κοινοτικά κονδύλια τα οποία τώρα οι πάροχοι ζητούν πίσω.

Μα πώς να σας δώσουμε πίσω αυτά που ζητάτε αξιότιμοι κκ. εταίροι, αφού τα λεφτά σας βρίσκονται σε καταθέσεις ιδιωτών στην Ελβετία, ή έχουν γίνει Mercedes, βίλες και πισίνες. Μπορούμε εμείς να ανοίξουμε τους λογαριασμούς του κ. Κόκαλη που ξεκοκάλιζε τόσα χρόνια τα κονδύλιά σας με τις ευλογίες των διαχειριστών του ΠΑΣΟΚ και της ΝΔ; Μήπως μπορούμε να βάλουμε το χέρι μας στην τσέπη της κ. Αγγελοπούλου-Δασκαλάκη η οποία διαχειρίστηκε τα τεράστια κονδύλια των ολυμπιακών αγώνων του 2004, που έγιναν τελικά παρανάλωμα σε φιέστες, χορούς και πανηγύρια; Μην πας μακρυά· μόλις πριν λίγες μέρες έγινε νέα «γιορτή των αγγέλων» στην πόλη μας και βγήκαμε όλοι πολύ ευχαριστημένοι από αυτήν την εξαίσια βραδυά, όπου ξοδεύτηκαν ένα κάρο λεφτά για να ακούσουμε τις μαλακίες του Χατζηγιάννη μεσούσης της φοβερής κρίσης, όπου ο Δ.Θ. χρωστάει δεκάδες εκατομμύρια σε προμηθευτές και δεκάδες έργα πνοής στους ταλαίπωρους κατοίκους αυτής της πόλης, παρέχοντας «ποδηλατόδρομους» και «δενδρόφυτες παραλίες» σε κρετίνους που δεν μπορούν να κρίνουν αν αποτελεί προτεραιότητα η Υγεία, το Ασφαλιστικό ή το να γίνει η «Θεσσαλονίκη μας μητροπολιτικός δήμος και οικονομικό κέντρο των Βαλκανίων» [sic]

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου