ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Νέα από τον πλανήτη…planet.ellak.gr: Το χρήμα, ο κώδικας και το μέλλον μιας κοινότητας

by: Cerebrux

Θα σας πω μια ιστορία, που αφορά για το ποιος κατέχει τα κοινά αγαθά της γλώσσας προγραμματισμού JavaScript, του NodeJS, του npm, πώς φτάσαμε εδώ και γιατί το τι πρέπει να αλλάξει. Είναι μια ιστορία τόσο για τα χρήματα όσο και για την ίδια την Javascript. Είναι μια ιστορία για χρήματα για ιδιοκτησία και έλεγχο.

Με αυτόν τον ιδιαίτερο τρόπο, ξεκινάει την ιστορία της η C. J. Silverio, πρώην CTO της NPM.Inc, της εταιρείας που έχει τον απόλυτο έλεγχο του Node Package Manager. Η ιστορία αυτή, μπορεί να αφορά την JavaScript, το Node.js ή το npm, αλλά την βλέπουμε να επαναλαμβάνεται συχνά πυκνά και σε άλλα έργα ανοιχτού κώδικα, οπότε μας αφορά όλους.

Συνεχίζοντας αναφέρει…

» Αλλά μπορώ να σας πω μια καλή εκδοχή αυτής της ιστορίας, γιατί ήμουν μέρος της. Ήμουν στο κέντρο της ιστορίας, επειδή μέχρι πέρυσι ήμουν ο CTO της npm Inc, της εταιρεία που τρέχει το μητρώο πακέτων της Javascript…» Αυτή είναι μια ιστορία για τα χρήματα, για τους ανθρώπους που έχουν χρήματα, καθώς και για το γεγονός πώς οι άνθρωποι που κερδίζουν χρήματα από το λογισμικό ανοιχτού κώδικα δεν είναι συνήθως οι άνθρωποι που γράφουν ανοιχτού κώδικα λογισμικό. Είναι μια ιστορία μιας τυχαίας απόφασης που κάνατε χωρίς να το γνωρίζετε, και μια απόφαση που εγώ έκανα συνειδητά, και για τις συνέπειες αυτής της απόφασης σήμερα. Είναι μια ιστορία για την ιδιοκτησία, τον έλεγχο και τις συνέπειές τους.» Advertisements

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

Δεν θα μπω σε λεπτομέρειες, μιας και έχω αναλύσει τις διαφορές του εκτενώς στα παρακάτω λινκ, αλλά θα αναφέρω για την οικονομία της συζήτησης μια «επικίνδυνα» ίσως πρόχειρη διατύπωση της διαφοράς τους. Όταν ο κώδικας μας είναι υπό την άδεια «ΕΛ» ( ελεύθερου λογισμικού π.χ. GPL) τότε διατηρείται επ’ αόριστον το πνευματικό δικαίωμά μας στον κώδικα και δεν μπορεί να αλλάξει η άδεια χρήσης του σε αντίθεση με μια άδεια Λ.Α.Κ (ανοιχτού κώδικα π.χ. BSD, MIT κλπ) όπου «αποποιούμαστε» των δικαιωμάτων μας και ο επόμενος μπορεί και έχει δικαίωμα να μην δημοσιεύει τις όποιες αλλαγές που κάνει στον αρχικό κώδικά μας ή και να αλλάξει την άδεια χρήσης του (βλέπε Darwin του Mac OSX που βασίζεται στον NeXTSTEP, BSD, Mach kernel). Για περαιτέρω λεπτομέρειες διαβάστε:

Κατανεμημένο σύστημα η Συγκεντρωτικό

Αφού έχουμε ξεκαθαρίσει στο μυαλό μας τις «άδειες λογισμικού», ας δούμε πως μια απόφαση ευχρηστίας/βολικότητας που κάνουμε συχνά, διακινδυνεύει το μέλλον κάποιου project.

Ένας από υπαλλήλους της Yahoo παραιτήθηκε από τη δουλειά του έτσι ώστε να γράψει έναν διαχειριστή πακέτων ανοικτού κώδικα για το node.js που απο το 2009 και έπειτα άρχισε να γίνεται αρκετά δημοφιλής. Αυτός ο συγκεκριμένος προγραμματιστής ήταν αρκετά έξυπνος αφού συμμετείχε βαθιά στο έργο του node.js και αυτό τον επέτρεπε να εργαστεί για την υλοποίηση του spec module της CommonJS για το node.js.


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

Ο διαχειριστής πακέτων node ή npm άρχισε να διανέμεται μαζί με το node.js αντί να ζει ως ξεχωριστό πράγμα τρίτου μέρους. Αυτό το «επίσημο καθεστώς: που χορηγείται από το έργο node.js συνεχίζεται μέχρι σήμερα.

Κάπου εκείνη την εποχή, η Joyent αγόρασε node από τον Ryan Dahl για ένα ασήμαντο χρηματικό ποσό. Ο άνθρωπος που εφηύρε το node.js, το εργαλείο που χρησιμοποιείται καθημερινά από εκατομμύρια ανθρώπους για την ανάπτυξη κώδικα σε Javascript, απλά έβγαλε μερικές δεκάδες χιλιάδες δολάρια κέρδος. Ιδιαίτερα λιγότερα αν σκεφτεί κανείς τη συνολική αξία που παράγει το node.js ως έργο.

Φυσικά ο προγραμματιστής που έγραψε το npm προσλήφθηκε επίσης από την Joyent για να εργαστεί σε node, αλλά – σημαντικό σημείο εδώ – ο προγραμματιστής έχει διατηρήσει την κυριότητα του ονόματος τομέα npmjs.org, του πηγαίου κώδικα npm και οποιωνδήποτε εφευρέσεων σε αυτό ως δική του πνευματική ιδιοκτησία. Δεν το παρέδοσε στην Joyent με τον τρόπο που η πηγή του node παραδόθηκε στην Joyent. Η απόφαση αυτή έχει σημασία αργότερα, οπότε λάβετε την υπόψη.

Το σημαντικότερο στοιχείο του npm είναι το κεντρικό μητρώο πακέτων/βιβλιοθηκών (npm registry). Στην πραγματικότητα, το cli τμήμα του npm είναι ίσως το λιγότερο σημαντικό μέρος άσχετα αν εσείς συχνά αλληλεπιδράτε με αυτό. Από την αρχή, το μητρώο ήταν εκεί, τρέχοντας μέσα σε μια βάση δεδομένων CouchDB, στον ίδιο τομέα που βρίσκεται και σήμερα. Ένα «μητρώο» είναι μια λίστα με πολλά πακέτα Javascript, με τα ονόματά τους, τους συγγραφείς τους, τις πολλές εκδόσεις τους κλπ. Αυτό το μητρώο βοήθησε στο να είναι εύκολο να βρεθεί και να γίνει εγκατάσταση κάποιο πακέτο γρήγορα και αξιόπιστα.

Εδώ λοιπόν βλέπουμε τα πλεονεκτήματα του Συγκεντρωτικού μοντέλου. Το μητρώο npm (αποθετήριο) είναι συγκεντρωμένο σε ένα μέρος. Αυτό προσφέρει κάποια προφανή πλεονεκτήματα από άποψη χρηστικότητας αφού πάτε σε ένα μόνο μέρος για να αναζητήσετε κάτι. Αυτό το ένα μέρος μπορεί να επιβάλει κάποιους κανόνες για τα πράγματα που ψάχνετε. Η επικέντρωση υπήρξε μέχρι πρόσφατα μια τεράστια τάση για το Διαδίκτυο. Το blogging, για παράδειγμα, μεταφέρθηκε σε κεντρικές πλατφόρμες φιλοξενίας που, όπως το Tumblr και το Medium. Τα κοινωνικά μέσα μαζικής ενημέρωσης συγκεντρώθηκαν σε μονοπόλια. Το open source συγκεντρώνεται στο Github, παρόλο που το gitως εργαλείο, στην ουσία του δημιουργήθηκε για την προώθηση της αποκέντρωσης.

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

Οι διακομιστές κοστίζουν χρήματα. Από πού προέρχονταν τα χρήματα;

Για χρόνια, ο διαχειριστής πακέτων κόμβου έτρεξε με δωρεές φιλοξενίας. Γράφτηκε με τη βοήθεια κάποιων από τους ανθρώπους που ασχολούνταν με την εφαρμογή του CouchDB, οπότε η CouchDB ήταν η βάση δεδομένων του, και αποτελούσε για μεγάλο χρονικό διάστημα, διαφήμιση για το CouchDB και τις υπηρεσίες που προσφέρει η IrisCouch. Η IrisCouch αγοράστηκε από την NodeJitsu και συνέχισαν να φιλοξενούν το μητρώο npm ως μια φτηνή διαφήμιση για τις υπηρεσίες CouchDB και φιλοξενίας node servers.

Ο μοναδικός ιδιοκτήτης της npm αποφάσισε να δοκιμάσει κάτι που άλλοι διαχειριστές πακέτων γλωσσών δεν είχαν δοκιμάσει: αποφάσισε να πάρει χρηματοδότηση από το VC (επενδυτές) και να μετατρέψει το λογισμικό του σε εταιρεία. Είχε δει πόσο λίγα χρήματα η Joyent έδωσε στον Ryan Dahl, και πόσο το node.js αποδείχθηκε ότι αξίζει. Έτσι εγκατέλειψε την Joyent, ίδρυσε μια εταιρεία – npm, Inc. – και πήρε κεφάλαια από μια εταιρεία VC.

Το έργο του Node.js αποφάσισε να συνεχίσει να χρησιμοποιεί το npm της Npm.Inc (εταιρείας πλέον) και να δίνει ειδικά προνόμια σε αυτήν ως λογισμικό που είναι συσκευασμένο μαζί με τον node.js.

Ας κάνουμε μια παύση εδώ και ας σκεφτούμε λίγο πόσες φορές, έχουμε ακούσει ή έχουμε πει :

Όχι αγαπητέ μου αναγνώστη… δεν θα ήταν καθόλου μα καθόλου καλό για εμάς αλλά και το ευρύτερο καλό της κοινότητας και της τεχνολογίας.

Δωροδοτική κοινωνία (gift based economy)

Ας συνεχίσουμε την ιστορία… και ας μιλήσουμε για τα χρήματα:

  • Γιατί ο Ryan Dahl δεν ζει σε ένα τροπικό νησί;
  • Γιατί δεν κάνει το ίδιο ο James Halliday ;
  • Γιατί ο Dominic Tarr ζει σε ένα γιοτ αντί για ένα ιστιοφόρο;
  • Γιατί ο Jan Lehnardt πηγαίνει κάθε μέρα στην δουλεία ;»

«Γνωρίζετε αυτά τα ονόματα; Αυτοί είναι κάποιοι από τους προγραμματιστές του λογισμικού που έχετε αυτή τη στιγμή στους φορητούς σας υπολογιστές, σε λογισμικό που αποτελεί την καρδιά χιλιάδων προγραμμάτων ανοιχτού κώδικα που χρησιμοποιείτε καθημερινά. Και όχι μόνο εσείς … κάθε εταιρεία του Fortune 500 τρέχει το λογισμικό που έχουν γράψει αυτοί οι άνθρωποι καθώς και δεκάδες άλλοι που συνέβαλαν με λογισμικό στο node.js και στο npm τις πρώτες τους μέρες. Δεν έγιναν και δεν είναι πλούσιοι, παρά την τεράστια αξία που δημιούργησε το λογισμικό που έγραψαν.»

Ο καπιταλισμός υποτίθεται ότι ανταμείβει τους ανθρώπους σαν αυτούς, αλλά στην πράξη δεν το κάνει.

Νομίζω ότι αυτοί οι άνθρωποι που έφτιαξαν τα κοινά του Javascript το έκαναν χωρίς να περιμένουν ή να θέλουν χρήματα σε αντάλλαγμα. Ίσως θα ήθελαν να είχαν τα δικά τους τροπικά νησιά, αλλά ποτέ δεν τα περίμεναν. Τα χρήματα δεν ήταν στο μυαλό τους όταν έγραψαν αυτές τις βιβλιοθήκες, πίσω στις πρώτες ημέρες του node.js, όταν οι προγραμματιστές γνώριζαν ο ένας τον άλλο.

Έκαναν κάτι άλλο. Αντάλλασσαν δώρα με τους συντρόφους τους σε ένα είδος οικονομίας που δεν έχει να κάνει με τα χρήματα.

Οι ιθαγενείς λαοί της Βορειοδυτικής ακτής του Ειρηνικού των Η.Π.Α. και του Καναδά είχαν μια οικονομική πρακτική που βασιζόταν στην ανταλλαγή δώρων. Ονόμασαν την πρακτική τους potlatch. Το Potlatch ως κοινωνικό σύστημα καταπολεμήθηκε βίαια από δυτικούς αποικιοκράτες, αλλά η λέξη μένει μαζί μας. Η κουλτούρα του Potlatch ήταν αυτό που έφτιαξε το node.js όταν οι πρώτοι προγραμματιστές αντάλλαζαν βιβλιοθήκες μεταξύ τους, ως δώρα για το καλό όλων.

Υπάρχει η ανάγκη του potlatch σε κάθε έργο ανοιχτού κώδικα που φτιάχτηκε από ανθρώπους που το έφτιαξαν μόνοι τους, χωρίς την υποστήριξη κάποιας εταιρείας. Άλλα αυτή η μοντέρνα έκφραση της κουλτούρας του potlatch δεν καταστέλλεται βίαια. Ο καπιταλισμός την λατρεύει! Γιατί; Επειδή βρήκε τον τρόπο να την στρέψει εναντίον μας. Η πηγή αυτής της εργαλειοποιησης είναι η οπτική του ανοικτού κώδικα όπως την εξέφρασε ο Eric Raymond.

Ίσως γνωρίζετε τη διαφορά μεταξύ του ελεύθερου λογισμικού – στο στυλ του Richard Stallman – και του ανοιχτού κώδικα – στο στυλ του Eric Raymond. Η άδεια χρήσης GNU του Stallman στοχεύει στο να απαιτεί από τους χρήστες του κοινόχρηστου πηγαίου κώδικα να δώσουν ό, τι χτίζουν μαζί του, ελεύθερα επίσης. Ή τουλάχιστον να δώσουν τον κώδικα τους ελεύθερα. Ο ανοικτός κώδικας στο στυλ του Eric Raymond έχει επικρατήσει έναντι του ελεύθερου λογισμικού.

Ο καπιταλισμός αγαπά τον ανοικτό κώδικα τύπου Eric.S.Ray-open-source επειδή οι εταιρείες παίρνουν πολλά καλά πράγματα δωρεάν. Ο καπιταλισμός το παίρνει και το πάει παραπέρα λέγοντάς σας ότι “Το Github είναι το βιογραφικό σου”, σου λένε, με το χέρι τεντωμένο για να πάρουν από εσένα τον κώδικα σου και να τον κάνουν ότι θέλουν.

Κάθε εταιρεία του Fortune 500 θα χρησιμοποιήσει τον μόχθο σου και εσύ δεν θα πάρεις τίποτα. Αυτή είναι η κανονικότητα μας.

Απόδοση επένδυσης (ROI – Return on Investment)

Έτσι είμαστε σε αυτή την κατάσταση που βρισκόμαστε τώρα, όπου η npm Inc δεν έχει πλήρως αποδώσει τα πρέποντα σε μερικούς ανθρώπους που δεν είναι προγραμματιστές Javascript (τους επενδυτές της). Ίσως να τα καταφέρει. Ίσως και όχι. Ίσως να αξιοποιήσει το τεράστιο όγκο δεδομένων χρήσης του npm στα τόσα χρόνια που χρησιμοποιείται από τους προγραμματιστές, δηλαδή την άποψή τους και τις συνήθειες στην ανάπτυξη κώδικα.

Όλοι γνωρίζουμε τώρα ότι η npm. inc δεν είναι φίλος κανενός, αλλά όλοι εξακολουθούμε να εγκαθιστούμε πακέτα μέσω αυτής. Προσωπικά βρίσκω αυτή την κατάσταση ανησυχητική. Υποψιάζομαι ότι δεν θα διαρκέσει πολύ.

Η ιστορία μας [node.js και npm] δεν έπρεπε να εξελιχθεί με αυτόν τον τρόπο. Οι κύριοι παράγοντες (χρήστες -προγραμματιστές- κοινότητα) θα μπορούσαν να έχουν επιλέξει διαφορετικά. Αλλά εδώ είμαστε. Τα κοινά αγαθά μας βρίσκονται στα χέρια κάποιου που δεν πιστεύω ότι μπορούμε να εμπιστευτούμε, γιατί τα κίνητρά της (npm.inc) δεν ευθυγραμμίζονται με αυτό που εμείς, ως κοινότητα προγραμματιστών Javascript, χρειαζόμαστε από αυτήν.

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

Επίλογος

Ίσως ο αναγνώστης, θεωρήσει οτι η ιστορία αυτή δεν τον αφορά, και αφορά τους προγραμματιστές της JavaScript.

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

Η ιστορία προέρχεται από την ομιλία της Silvero σε συνέδριο της JSConf

Παραπομπές

Πηγή άρθρου: https://planet.ellak.gr/ , https://cerebrux.net/

Leave a Comment

Social Media Auto Publish Powered By : XYZScripts.com