18 Μαΐου 2008

Ελευθερο Λογισμικό και Λογισμικό Ανοιχτού Κώδικα: η διαφορά



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

Η ιστορία του λογισμικού ανοιχτού κώδικα, γεννήθηκε παράλληλα με την ανάπτυξη των ηλεκτρονικών υπολογιστών και των πρώτων λογισμικών, περίπου τη δεκαετία του 60΄ και 70΄. Εκείνο τον καιρό οι ηλεκτρονικοί υπολογιστές χρησιμοποιούνταν ως επί το πλείστον για στρατιωτικούς ή επιστημονικούς σκοπούς. Στην περίοδο αυτή, οι προγραμματιστές μοιράζονταν λογισμικό και τεχνογνωσία ελεύθερα. Η κατάσταση άρχισε να αλλάζει με την εισαγωγή του ηλεκτρονικού υπολογιστή στην καθημερινότητα του ανθρώπου, τόσο σε επαγγελματικό επίπεδο, όσο και στην ιδιωτική του ζωή. Από την πρώτη στιγμή φάνηκε ότι μπορεί να αποτελέσει ένα νέο ευπώλητο προϊόν. Έτσι, σταδιακά δημιουργούνται οι πρώτες εταιρείες λογισμικού, οι οποίες άρχισαν να διαχειρίζονται το λογισμικό ως προϊόν, με στόχο την εξασφάλιση κέρδους. Η πρόσβαση στον πηγαίο κώδικα δεν ήταν πλέον δεδομένη. Κατά συνέπεια εξαλείφονταν πια η δυνατότητα για ελεύθερη μελέτη, τροποποίηση ή και διανομή του εκάστοτε λογισμικού. Παράλληλα, εμφανίστηκαν και τα πνευματικά δικαιώματα.



Για να αντιστρέψουν αυτή την κατάσταση διάφορες κοινότητες χρηστών, κυρίως φοιτητές και επαγγελματίες προγραμματιστές με εναλλακτικό τρόπο σκέψης, θέλησαν να επιτύχουν τη συνεχή βελτίωση των εκάστοτε λογισμικών, διαθέτοντας δωρεάν τις γνώσεις τους και τα έργα τους. Στα πλαίσια αυτά ο Richard Stallman ίδρυσε το 1983 το GNU project, με στόχο την υλοποίηση, από το μηδέν, ενός ελεύθερου λειτουργικού συστήματος. Έτσι, ο Richard Stallman ως ιδρυτής του Ιδρύματος Ελεύθερου Λογισμικού (Free Software Foundation - FSF) και του GNU’s Not Unix, ήταν αυτός που αποτύπωσε, αρχικά, τον όρο ελεύθερο λογισμικό – free software. Κατά τον Stallman «το ελεύθερο λογισμικό πραγματεύεται την ελευθερία των χρηστών να το τρέξουν, να το αντιγράψουν, να το διανείμουν, να το μελετήσουν, να το αλλάξουν και να το βελτιώσουν». Ειδικότερα, ως ελεύθερο λογισμικό ορίζεται το λογισμικό που διανέμεται, έτσι ώστε ο χρήστης του να έχει συγκεκριμένες «ελευθερίες».




Στο σημείο αυτό, θα πρέπει να διευκρινιστεί, ότι ένα από τα κυριότερα προβλήματα της κοινότητας του ελεύθερου λογισμικού είναι η αδυναμία της αγγλικής ορολογίας να μεταδώσει στον υπόλοιπο κόσμο, όσα αυτοί εννοούν με τον όρο free. Η λέξη free έχει δύο έννοιες ελεύθερο και δωρεάν. Ο ίδιος ο Stallman διευκρινίζει: "Για να καταλάβετε την ιδέα, θα πρέπει να σκέφτεστε τη λέξη "free" σαν "free speech" (ελευθερία λόγου), και όχι σαν "free beer" (δωρεάν μπύρα)». Κατά συνέπεια, το ελεύθερο λογισμικό είναι θέμα ευρύτερης ελευθερίας και όχι θέμα κόστους.


Ο όρος ανοιχτός κώδικας διαμορφώθηκε αρκετά αργότερα, το 1998 από τον Eric Raymond, έναν από τους κύριους συνεισφέροντες στο Open Source Initiative – OSI. Συγκεκριμένα, το λογισμικό ανοιχτού κώδικα δεν σημαίνει μόνο πρόσβαση στον πηγαίο κώδικα, αλλά και όρους διανομής, που παρέχουν τα ακόλουθα δικαιώματα και υποχρεώσεις: στην «Ελεύθερη Αναδιανομή – Free Redistribution», στον «Πηγαίο Κώδικα – Source Code», στις «Παράγωγες Εργασίες – Derived Works», στην «Ακεραιότητα του Πηγαίο Κώδικα του Δημιουργού – Integrity of the Author’s Source Code», στην διασφάλιση των δικαιωμάτων των χρηστών ώστε να μην είναι δυνατή «Καμία Διάκριση Ατόμων ή Ομάδων – No Discrimination Against Persons or Groups», καθώς και «Καμία Διάκριση μεταξύ Πεδίων Δραστηριοτήτων – No Discrimination Against Fields of Endeavor», στη «Διανομή της Άδειας – Distribution of License», στο ότι «Η Άδεια δεν Πρέπει να Αναφέρεται σε ένα Συγκεκριμένο Προϊόν – License Must Not Be Specific to a Product», στο ότι «Η άδεια δεν πρέπει να περιορίζει άλλο λογισμικό – License Must Not Restrict Other Software», και τέλος στο ότι «Η άδεια πρέπει να είναι τεχνολογικά ουδέτερη - License must be technology-neutral».


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


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


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


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


Με τη διάδοση του ελεύθερου λογισμικού, πολλοί ήταν αυτοί που υποστήριξαν ότι η ελεύθερη διανομή του πηγαίου κώδικα, επιτρέπει στους χρήστες να χρησιμοποιήσουν το λογισμικό για δική τους χρήση και κέρδος, χωρίς να ενημερώσουν την κοινότητα, όπως θα έπρεπε σύμφωνα με την ελευθερία 2 του ελεύθερου λογισμικού. Για αποφυγή αυτών των προβλημάτων ο Stallman εξασφάλισε τον πηγαίο κώδικα με μια δεσμευτική νομικά υποχρέωση την General Public License – GPL. Έτσι, αυτή η ισχυρή διορατικότητα του Stallman καθιέρωσε τα πνευματικά δικαιώματα στον κώδικα λογισμικού και στους δημιουργούς του, όχι όμως για να περιορίσει την πρόσβαση και να εκμεταλλευτεί τα οφέλη του για οικονομική ανταμοιβή, αλλά για να προφυλάξει και να διατηρήσει την ελεύθερη πρόσβαση σε όλους τους χρήστες.


Σήμερα υπάρχουν διάφορες άδειες χρήσης για το ελεύθερο λογισμικό και το λογισμικό ανοιχτού κώδικα. Τις κυριότερες από αυτές μπορούμε να τις βρούμε στο Free Software Foundation και στο Open Source Iniative. Παραδείγματα αυτών είναι «Η Γενική Δημόσια Άδεια (GNU General Public License – GPL)», η «BSD License», η «Apache License» κ.ά.


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


Με αφορμή τα δυσδιάκριτα όρια ανάμεσα στα δυο λογισμικά, πολλοί είναι αυτοί που δεν τα διαχωρίζουν ή που χρησιμοποιούν το συνδυασμό τους, χαρακτηρίζοντας τον, μάλιστα, ως Ελεύθερο Λογισμικό - Λογισμικό Ανοιχτού Κώδικα ή Ελεύθερο Ανοιχτό Λογισμικό με τη σύντμηση (ΕΛ/ΛΑΚ) και στην αγγλική ορολογία Free and Open Software με τη σύντμηση FOSS. Έτσι, το ελεύθερο λογισμικό - λογισμικό ανοιχτού κώδικα είναι ο όρος που χρησιμοποιείται για να περιγράφει συλλογικά το λογισμικό, που προσαρμόζεται στους ορισμούς που παράγονται από τις οργανώσεις Free Software Foundation και Open Source Initiative και αναγνωρίζει τουλάχιστον μια από τις άδειες λογισμικού που αναγνωρίζονται από αυτές τις οργανώσεις.


Ενδεικτική Βιβλιογραφία





1 σχόλιο:

aikker είπε...

Πολύ καλό και κατατοπιστικό άρθρο! Αποσαφηνίζει επαρκώς συχνότατα συγχεόμενες έννοιες.