Είμαι σίγουρος ότι έχετε ακούσει και τους δύο όρους «Ελεύθερο Λογισμικό«, «Λογισμικό Ανοιχτού Κώδικα«, ενώ θα τα έχετε δει να αναφέρονται και συνδυαστικά με τα αρχικά τους ως ΕΛ/ΛΑΚ. Κατά πόσο όμως είναι διαφορετικοί; Πότε χρησιμοποιούμε τον έναν και πότε τον άλλον όρο;
Εύλογα θα αναρωτηθείς αν τελικά:
έχει σημασία το πως θα αναφέρεσαι σε έναν κώδικα που είναι δημόσια προσβάσιμος ;
Δεν είναι και λίγες οι φορές που έχω δει σε κώδικα που είναι δημόσια διαθέσιμος να αναφέρεται ως ελεύθερο λογισμικό ενώ δεν είναι ελεύθερο αλλά ανοιχτό λογισμικό. Είναι σημαντικό να έχουμε μια ξεκάθαρη εικόνα για τους δύο όρους, διότι όπως είδαμε στο άρθρο Γιατί είναι τόσο σημαντικό το Licensing στον ανοιχτό κώδικά μας μπορεί να βρεθούμε προ εκπλήξεων στο μέλλον.
Με άλλα λόγια, παρόλο που οι όροι «ελεύθερο λογισμικό» και «λογισμικό ανοιχτού κώδικα» στην βάση τους έχουν το ίδιο αποτέλεσμα στο κώδικα (είναι δημοσία προσβάσιμος) παρόλα αυτά έχουν διαφορετική επίπτωση στο πως θα χρησιμοποιηθεί αυτός ο κώδικας.
Ιστορικές διαφορές Ελεύθερου και Ανοιχτού λογισμικού
Η έννοια του «ελεύθερου λογισμικού» (Free Software) αναπτύχθηκε από τον Richard Stallman στη δεκαετία του ’80. Ως έννοια το ελεύθερο λογισμικό είναι ξεκάθαρο εξαρχής ότι ο τελικός χρήστης έχει την ελευθερία να τρέχει, να αντιγράφει, να διανέμει (για εμπορικούς η μη σκοπούς), να μελετά, να αλλάζει και να βελτιώνει το λογισμικό, υπό τον όρο ότι οφείλει να διανέμει με ακριβώς τις ίδιες ελευθερίες το οποιοδήποτε παράγωγο προκύψει από τις αλλαγές που θα κάνει.

Από την άλλη το «ανοιχτού κώδικα λογισμικό» (Open source) επικεντρώνεται στις πρακτικές συνέπειες για αποτελεσματική συνεργασία στην ανάπτυξη λογισμικού. Το 1997, το τεράστιο δοκίμιο του Eric Raymond » Ο καθεδρικός ναός και το παζάρι » επικεντρώθηκε στην επιρροή που έχει το ελεύθερο λογισμικό στη μεθοδολογία ανάπτυξης λογισμικού. Σταδιακά οι εταιρίες ανάπτυξης λογισμικού προτίμησαν τον όρο ανοιχτού κώδικα ίσως επειδή αυτό το «free» στο free software ήταν «κακό» για το marketing των λογισμικών τους μιας και δεν θέλανε να θυμίζει το «τσάμπα» λογισμικό.
Στα αγγλικά το free μπορεί ανάλογα με την πρόταση να σημαίνει δωρεάν ή ελεύθερο.
Ίσως τα πράγματα να ήταν εντελώς διαφορετικά αν ο Stallman είχε προτιμήσει τον όρο Libre Software στο οποίο η λέξη Libre (Λατινικά) σημαίνει ελεύθερο, δεν θα είχε δημιουργηθεί αυτή η παρεξήγηση ότι το free software σημαίνει ΚΑΙ δωρεάν λογισμικό (κάτι που δεν ισχύει).
Στο «Γιατί Ο ανοιχτός Κώδικας χάνει το νόημα του Ελεύθερου Λογισμικού«, ο Stallman εξηγεί:
«Οι δύο όροι περιγράφουν σχεδόν την ίδια κατηγορία λογισμικού. Αλλά αντιπροσωπεύουν κάποιες απόψεις βασισμένες σε βασικές διαφορετικές αξίες. Ο ανοιχτός κώδικας είναι μία μεθοδολογία ανάπτυξης. Το ελεύθερο λογισμικό είναι ένα κοινωνικό κίνημα. Για το κίνημα ελεύθερου λογισμικού, το ελεύθερο λογισμικό είναι μία ηθική προσταγή, επειδή μόνο το ελεύθερο λογισμικό σέβεται την ελευθερία του χρήστη. Σε αντίθεση, η φιλοσοφία του ανοιχτού κώδικα σε σχέση με θέματα για το πως να κάνει το λογισμικό “καλύτερο”—με καθαρά πρακτικό τρόπο μόνο.»
Περιορισμοί του Ελεύθερου Λογισμικού και του Ανοιχτού κώδικα
Ίσως να φανεί οξύμωρο, να μιλάμε για κάτι ανοιχτό η ελεύθερο και να υπάρχουν περιορισμοί.
Στην πραγματικότητα και οι δύο όροι έχουν τους περιορισμούς τους ανάλογα με τις επιμέρους άδειες που χρησιμοποιούνται. Χωρίς όμως να μπούμε στις επιμέρους άδειες θα αναφέρω κάποιους απλούς κανόνες «περιορισμού» για το τι πρέπει να προσέχουμε όταν χρησιμοποιούμε τον έναν ή τον άλλον όρο.
Με το ελεύθερο λογισμικό:
- Δεν μπορούμε να απαγορεύσουμε την εμπορική χρήση του κώδικα είτε μας ανήκει είτε συμμετέχουμε στην ανάπτυξή του
- Ανάλογα με την έκδοση της άδειας, δεν μπορούμε να το ενσωματώσουμε σε συσκευές και ταυτόχρονα να περιορίσουμε τους πελάτες που αγοράζουν την συσκευή να τροποποιήσουν την συμπεριφορά της συσκευής.
- Εάν ένας κώδικας έχει ξεκινήσει με άδεια ελεύθερου λογισμικού (π.χ. GPLv2) και σε αυτή έχουν συνεισφέρει και άλλοι, για να μπορεί να αλλάξει άδεια χρήσης (π.χ. GPLv3) θα πρέπει να την συνυπογράψουν την αλλαγή, όλοι όσοι έχουν συνεισφέρει κώδικα στο έργο.
Με το ανοιχτό λογισμικό:
- Ανάλογα και με την εκδοχή της άδειας, το ότι είναι δημόσιος ένας κώδικας δεν σημαίνει ότι ήμαστε ελεύθεροι στο να το ενσωματώσουμε στον δικό μας κώδικα.
- Αρκετές άδειες ανοιχτού κώδικα επιτρέπουν στον τελικό χρήστη να τον χρησιμοποιήσει σε δικά τους έργα και να τον κλείσει, χωρίς δηλαδή να είναι υποχρεωμένος να δημοσιεύσει τον παράγωγο κώδικα.
Επίλογος
Ελπίζω με τα παραπάνω να έγινε ξεκάθαρο το τι σημαίνει «ελεύθερο» και τι «ανοιχτό» λογισμικό.
Σε γενικές γραμμές μπορώ να πω ότι οι εταιρίες είναι αυτές που κυρίως παράγουν ανοιχτό κώδικα και επιλέγουν μια αντίστοιχη άδεια ανοιχτού λογισμικού για να μπορούν να διατηρήσουν έναν τυπικό έλεγχο του δημοσιευμένου κώδικα. Σε αντίθεση οι μικρές ανεξάρτητες ομάδες που παράγουν κώδικα, προτιμούν το ελεύθερο λογισμικό ως άδεια μιας και πέρα από τα πρακτικά οφέλη ενδιαφέρονται και για το ηθικό του ζητήματος.
Αν κάποιος προσφέρει σε Λ.Α.Κ. είναι σχεδόν σαν να χαρίζει κάτι από τον χρόνο του σε μία εταιρία και στους χρήστες αυτής της εταιρίας για όσο διάστημα αυτή υπάρχει (το οποίο δεν είναι απαραίτητα κακό).
Αντίθετα, αν κάποιος προσφέρει σε Ελεύθερο Λογισμικό εγγυάται ότι η προσφορά του μπορεί να είναι χρήσιμη σε όλο τον κόσμο και θα διατηρηθεί υποχρεωτικά διαθέσιμη για όλους και στο μέλλον.