BETA

Ανοιχτός κώδικας, εταιρείες, ολίγη ηλιθιότητα προγραμματιστών και μερικές σκέψεις

Εικόνα Soulrain

Ο κώδικας, καλά μου παιδάκια, έχει ένα κοινό γνώρισμα με την καρδιά και το μυαλό: όσο πιο ανοιχτός είναι, τόσο περισσότερο καλό μπορεί να κάνει. Σε εμάς και τους γύρω μας. Δεν είναι μόνο οι λίγες παραπάνω γραμμές που κερδίζει ένας προγραμματιστής αλλά, ίσως περισσότερο, όλα τα υπόλοιπα οφέλη. Η χαρά της συνύπαρξης και της συνεργασίας, η ανταλλαγή ιδεών, η αλληλοβελτίωση, το όμορφο αίσθημα που νιώθεις όταν γνωρίζεις ότι κάτι στο οποίο έβαλες κι εσύ το μικρό σου λιθαράκι, γιγαντώθηκε και έφτασε στα πέρατα του κόσμου. Γιατί, όταν οι άνθρωποι θέλουν, μπορούν. Αν δεν ασχολείστε με τις λεπτομέρειες, να σας ενημερώσω ότι ο πυρήνας Linux είναι ένα από τα μεγαλύτερα συνεργατικά έργα ανοιχτού κώδικα και τον ερχόμενο Σεπτέμβριο θα σβήσει 25 κεράκια. Νομίζω δε χρειάζεται να σας πω τι έχει πετύχει και προσφέρει αυτό που ξεκίνησε από ένα δωμάτιο και δεν προοριζόταν να γίνει «μεγάλο και επαγγελματικό». Χιλιάδες προγραμματιστές σε ολόκληρο τον κόσμο, «κακές» εταιρείες και ο γυαλάκιας που καντηλιάζει τους πάντες, όλοι αυτοί μπορούν να συνεργάζονται και να παράγουν κάτι αξιόλογο. Το κατορθώνουν γιατί κατανοούν ότι αυτό που κάνουν είναι σημαντικό. Οι υπόλοιποι τα λέμε καλά στα λόγια αλλά στην πράξη δε μπορούμε ούτε με το γείτονα να τα βρούμε.

Σήμερα όμως δε θα μιλήσουμε για τα καλά του ανοιχτού κώδικα αλλά για μια «άσχημη» πτυχή του. Θα πούμε και για το γεγονός ότι αρκετοί προγραμματιστές εκεί έξω ακολουθούν «ερασιτεχνικές» πρακτικές (με την κακή έννοια) κι αυτό ενίοτε γυρίζει μπούμερανγκ, όπως επίσης και για την αρνητική επίδραση που μπορεί να έχει μια «δύσκαμπτη» εταιρεία στην ανάπτυξη της τεχνολογίας.

Μήπως σας λέει κάτι το όνομα Azer Koçulu; Μάλλον όχι, ε; Πιθανότατα δε λέει τίποτα και σε αρκετούς προγραμματιστές, παρ’ όλο που οι δημιουργίες τους βασίζονται σε κάτι δικό του.

Ο Azer Koçulu λοιπόν είναι ένας ταπεινός προγραμματιστής από την Καλιφόρνια. Θα εξακολουθούσε να παραμένει άγνωστος στο ευρύ κοινό αν δεν έκανε, άθελά του, μια μεγάλη ζημιά. Τι έκανε ο παλιάνθρωπος; Κατάφερε να σπείρει πανικό, «γονατίζοντας» πρόσκαιρα σημαντικά κομμάτια του διαδικτύου. Πώς το έκανε; Διαγράφοντας απλά 11 γραμμές κώδικα. Γιατί το έκανε; Για να προστατεύσει το έργο του.

Ας δούμε όμως τις λεπτομέρειες του «εγκλήματος». Αυτοδίδακτος και ασπαζόμενος τη φιλοσοφία του ανοιχτού κώδικα, θέλησε να προσφέρει στο γνωστό npm. Για όσους/ες δε γνωρίζετε, το npm είναι ένας διαχειριστής πακέτων για τη γλώσσα προγραμματισμού JavaScript, η οποία -καλώς ή κακώς- παρουσιάζει μεγάλη άνθηση, με πολλά τμήματα του διαδικτύου αλλά και web εφαρμογές να πατάνε πάνω σε αυτή. Ένα από τα δημιουργήματά του είναι το kik, το οποίο χρησιμοποιούν αρκετοί προγραμματιστές για να φτιάχνουν πρότυπα για τα έργα τους. Ίσως να σας θυμίζει κάτι η ονομασία και αυτό ακριβώς ήταν το πρώτο πρόβλημα.

Βλέπετε, υπάρχει μια εφαρμογή μηνυμάτων που ονομάζεται Kik. Δυστυχώς για τον Koçulu, η συγκεκριμένη ονομασία είναι σήμα κατατεθέν αυτής της εφαρμογής, αν και το δικό του έργο μάλλον προϋπήρχε. Αυτό είχε σαν αποτέλεσμα να λάβει ένα e-mail από δικηγόρο της εταιρείας, που τον καλούσε να αλλάξει ονομασία. Η αρχική του απάντηση ήταν ένα λιτό

Λυπάμαι αλλά φτιάχνω ένα έργο ανοιχτού κώδικα με αυτό το όνομα.

Είναι γνωστό τοις πάσι ότι οι εταιρείες σέβονται απόλυτα άλλους δημιουργούς, γι’ αυτό και έλαβε την εξής ευγενική απάντηση:

Δε θέλουμε να είμαστε μα@#$ες αλλά είναι καταχωρημένο σήμα στις περισσότερες χώρες του κόσμου και αν πραγματικά διαθέσεις ένα έργο ανοιχτού κώδικα που να λέγεται kik, οι δικηγόροι μας θα σου χτυπούν την πόρτα, θα «κατεβάσουν» λογαριασμούς σου και τέτοια -και δε θα είχαμε επιλογή παρά να κάνουμε όλα αυτά γιατί πρέπει να επιβάλεις τα σήματα κατατεθέντα (trademarks) ή να τα χάσεις. 

Για να σας προλάβω, ένα trademark -από μόνο του- δεν είναι κακό. Αντίθετα, υπάρχει για να προστατεύει ένα έργο. Καταχωρημένο σήμα είναι και το «Linux», όταν πρόκειται για τεχνολογικά έργα. Το κακό είναι ότι πάρα πολλοί χρησιμοποιούν ένα trademark με κακό τρόπο.

Συνεχίζοντας την όμορφη συζήτηση, ο Koçulu απάντησε

Χα χα, γίνεσαι στ’ αλήθεια μα@#$ας. Γι’ αυτό άντε γα%^&ου. Μη μου ξαναστείλεις e-mail.

Μετά από αυτό, ο δικηγόρος προσφέρθηκε να πληρώσει για την ονομασία και ο Azer ζήτησε 30.000 δολάρια, ως αποζημίωση για την ταλαιπωρία του να σταματήσει ένα αγαπημένο του έργο για ένα μάτσο εταιρικούς μα@#$ες. Κι εκεί μπήκε μια άνω τελεία.

Ερχόμαστε τώρα στο δεύτερο πρόβλημα. Όπως είπαμε, ο Koçulu δούλευε πάνω στο npm. Το npm είναι μεν ανοιχτού κώδικα, εντούτοις η ιδιοκτήτρια εταιρεία -με την ίδια επωνυμία- είναι κερδοσκοπική. Καταλαβαίνετε λοιπόν ότι ήταν κομματάκι δύσκολο να πάρει το μέρος του «δικού της» προγραμματιστή. Όπως και συνέβη. Χωρίς πολλά-πολλά, ο γενικός διευθυντής της εταιρείας συμφώνησε να παραχωρήσει την ονομασία στο Kik. Ίσως βέβαια και να μη μπορούσε να κάνει κάτι διαφορετικό, όμως θα έλεγα ότι ήταν ανήθικη η στάση που κράτησε απέναντι σε έναν προγραμματιστή που προσέφερε στην εταιρεία του.

Η ειρωνεία εδώ είναι ότι ήταν ακριβώς η αγάπη του Azer Koçulu για τον ανοιχτό κώδικα και τη φιλοσοφία γύρω από αυτόν που τον οδήγησε στο npm αλλά και ο λόγος που δεν ήθελε πια να έχει καμία σχέση με αυτό. Έτσι, ζήτησε από την εταιρεία να «κατεβάσει» όσα δικά του πακέτα ήταν καταχωρημένα στη registry του npm ή να τον ενημερώσουν πώς να το κάνει ο ίδιος.

Στο σημείο αυτό, θα ήθελα να τονίσω ότι, αν και δεν ήταν ιδανική η αντίδρασή του, αυτή του η ενέργεια δεν αντιβαίνει στη φιλοσοφία του ανοιχτού κώδικα. Δε θέλησε να «κλείσει» τα έργα του, απλά να τα προστατεύσει από την κακοδιαχείριση, όπως και τον εαυτό του ως δημιουργός. Κάτι που φυσικά είναι απόλυτα θεμιτό και σεβαστό.

Πάμε τώρα να δούμε τη μεγάλη ζημιά. Μια-δυο ημέρες μετά την τελευταία συνομιλία με την εταιρεία npm, άρχισαν να παρουσιάζονται προβλήματα σε προγραμματιστές που χρησιμοποιούσαν τη JavaScript. Ο λόγος; Εμφανιζόταν ένα μήνυμα σφάλματος, που ανέφερε ότι ένα στοιχείο έλειπε από τη registry του npm. Όπως ίσως συμπεράνατε, το στοιχείο αυτό ήταν δημιουργία του Koçulu, η οποία είχε αφαιρεθεί από τον ίδιο. Ο πραγματικός λόγος όμως (σ.σ. ακολουθεί μίνι ξέσπασμα) είναι ότι, αν και το φαινόμενο υπήρχε από παλιά, τα τελευταία χρόνια έχει πάρει μεγάλες διαστάσεις, με την εμφάνιση της συνομοταξίας των «web developers». Το φαινόμενο που αναφέρω δεν είναι άλλο από το ότι, δυστυχώς, αρκετοί προγραμματιστές δεν έχουν επαρκείς γνώσεις -για να το πω ευγενικά- και δε διστάζουν να χρησιμοποιήσουν πάρα πολλά πράγματα που προσφέρουν «ευκολία». Έτοιμα frameworks και δε συμμαζεύεται, τα γνωρίζετε καλύτερα από εμένα όσοι/ες προγραμματίζετε. Ένας καλός άνθρωπος στο διαδίκτυο αποκαλεί τη συγκεκριμένη ευγενή τάξη «Μοδαμματιστές». Το θέμα όμως με την «ευκολία» είναι ότι, εκτός από το χρήστη, χαζεύει και τον προγραμματιστή. Εκτός αυτού, όταν βασίζεις τα έργα σου σχεδόν απόλυτα σε δημιουργίες άλλων και ενίοτε δεν το γνωρίζεις καν, αυτό δεν είναι ανοιχτός κώδικας αλλά ανοιχτή βλακεία και λογικό είναι κάποια στιγμή να αποκτήσεις πρόβλημα.

Όπως ακριβώς δε γνώριζαν αρκετοί που ασχολούνται με τη JavaScript τι στο καλό ήταν αυτό το «left-pad» που προκαλούσε το σφάλμα. Κι ας ήταν απλά 11 ολάκερες γραμμές κώδικα που τόλμησε να διαγράψει ο άτιμος ο Azer. Να, αυτές εδώ

Αυτές οι γραμμές βρίσκονταν σε πάρα πολλά πακέτα του npm, τα οποία χρησιμοποιεί πολύ μεγάλος αριθμός ιστοσελίδων, από μικρές και ασήμαντες μέχρι μεγάλες όπως το Facebook. Δεν ήταν πάντα άμεση η χρήση. Σε ορισμένες περιπτώσεις μπορεί να ήταν εξάρτηση κάποιου πακέτου κι αυτό με τη σειρά του κάποιου άλλου κ.ο.κ. Υπήρχαν όμως κάπου μέσα στον κώδικα των σελίδων. Και προφανώς οι προγραμματιστές τους κοιμούνταν με τα μάτια ανοιχτά. Το αστείο της υπόθεσης (θεία δίκη; κάρμα;) ήταν ότι αντιμετώπισαν προβλήματα ακόμα και προγραμματιστές του Kik. Με το κεφαλαίο K.

Ως φυσικό επακόλουθο, υπήρξαν σοβαρές αντιδράσεις και διαμαρτυρίες. Ο Koçulu από την πλευρά του, έκανε μια δημοσίευση όπου εξηγούσε τι συνέβη και γιατί. Οι της npm από τη δική τους, προχώρησαν στην -πρωτοφανή, όπως ανέφεραν οι ίδιοι- επαναδημοσίευση των σχετικών πακέτων, λέγοντας ότι

Αυτή η πράξη φέρνει το ευρύτερο συμφέρον της κοινότητας των χρηστών του npm σε αντίθεση με τις επιθυμίες του προγραμματιστή· επιλέξαμε τις ανάγκες των πολλών.

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

Τέλος πάντων, το πρόβλημα τελικά διορθώθηκε και όλα πλέον κυλούν ομαλά. Κάποιοι κατηγόρησαν το Kik, αναρωτώμενοι αν πραγματικά δεν υπήρχε κάποιος άλλος τρόπος για να βρεθεί λύση με την ονομασία. Κάποιοι άλλοι ρωτούσαν τι θα μπορούσε να συμβεί αν μεγάλες εταιρείες, όπως η Google και το Twitter, ζητούσαν τα δικαιώματα των (δικών τους) ομώνυμων πακέτων από το npm. Κάποιοι τρίτοι αστειεύτηκαν με το γεγονός ότι χρειαζόταν να υπάρχει ένα πακέτο με μόλις 11 γραμμές κώδικα.

Ο ίδιος ο επικεφαλής Mobile Development του Kik δήλωσε σε συνέντευξή του ότι μετάνιωσε που δεν προσπάθησε εξαρχής να έρθει σε επαφή με τον Azer Koçulu, λέγοντας μάλιστα

Για εμένα, ο ανοιχτός κώδικας, η κοινότητα, αφορά στο να βοηθάει ο ένας τον άλλο.

Αν δεν είναι ειρωνεία, αργά το θυμήθηκε.

Η ουσία όμως παραμένει: άσχετα με τη, το δίχως άλλο κατακριτέα, στάση των παραπάνω εταιρειών, ο τρόπος με τον οποίο αναπτύσσονται πολλά τεχνολογικά δημιουργήματα, ακόμα και ανοιχτού κώδικα, είναι εντελώς λανθασμένος και αρκετοί προγραμματιστές δεν ξέρουν πού τους παν’ τα τέσσερα. Σε αντίθεση με τόσες και τόσες άλλες περιπτώσεις, εδώ το μεγάλο πρόβλημα δεν ήταν μια εταιρεία που σταμάτησε κάποια έργα. Θα μπορούσαν όλες οι πλευρές, του δημιουργού συμπεριλαμβανομένου, να είχαν λίγο διαφορετική αντίδραση και το θέμα θα είχε λυθεί εν τη γενέσει του. Ο ίδιος άλλωστε διαθέτει τα πακέτα στο προσωπικό του αποθετήριο αλλά και είναι πρόθυμος να τα μεταβιβάσει σε όποιον/α επιθυμεί να τα αναλάβει. Ο κώδικας που αναφέραμε συνεχίζει επίσης να διατίθεται από το npm.

Το βαθύτερο πρόβλημα όμως ήταν και εξακολουθεί να είναι το γεγονός ότι αυτή η ρημάδα η «ευκολία» έχει διεισδύσει σε υπερβολικά πολλές πτυχές της ζωής μας κι αυτό μόνο κακό μπορεί να κάνει μακροπρόθεσμα. Σκεφτείτε, «έσπασε το internet» για μερικές γραμμές κώδικα που πολλοί δεν ήξεραν όχι απλά τι είναι αλλά ούτε καν ότι τις χρησιμοποιούσαν. Όποιοι/ες από εσάς χρησιμοποιείτε το Facebook, σίγουρα θα έχετε μάθει για κάποιες φορές που «έπεσε». Η συγκεκριμένη ήταν μία από αυτές. Και μπορεί τα παραπάνω να ανήκουν στον τεχνολογικό τομέα, αναλογιστείτε όμως πόσο βασίζουμε τις ζωές μας στην τεχνολογία και την «ευκολία» της. Κι αν αύριο-μεθαύριο συμβεί κάτι αντίστοιχο σε έναν κρισιμότερο τομέα; Παρατηρούμε επίσης ότι η ευελιξία και η ραγδαία εξάπλωση του ανοιχτού κώδικα, μπορούν -όταν δεν υπάρχει ορθή κρίση- να έχουν και αρνητικές συνέπειες. Αφού τον χρησιμοποιούν «πολλοί και παντού», μοιραία μέσα σε αυτούς θα βρίσκονται και λιγότερο έως καθόλου ικανοί στον κώδικα γενικά.

 

  • Σχόλια

2 Comments:

  1. Εικόνα Κώστας

    Γι αυτό και γω κατεβάζω όλο τον κώδικα και τον σερβίρω από το δικό μου σάιτ κι όχι να έχω εξαρτήσεις από διάφορα, βλέπε jquery, βλέπει γραμματοσειρές από google κλπ κλπ ;-)

  2. Εικόνα Ανώνυμος
    Ανώνυμος (χωρίς επαλήθευση)Απρ 13, 2016 20:31 ΜΜ

    Ωραίο άρθρο.

Scroll to Top