Ελεύθερο λογισμικό
Αν δεν ασχολείστε με τους Η/Υ και δεν το έχετε ακουστά, μην αγχώνεστε: Μάλλον δεν θα σας ενδιαφέρει και πολύ, αν και σε συζητήσεις οι μη-κομπιουεράκιδες δείχνουν αρκετό ενδιαφέρον, ίσως λόγω της ηθικής/φιλοσοφικές χροιάς που έχει το θέμα (ή μπορεί απλά να θέλουνε να τελειώσει η κουβέντα το συντομότερο).
Αν ασχολείστε με Η/Υ και δεν το ξέρετε, τότε πρέπει να κοιτάξετε να βγείτε κάτω από την πέτρα που βρίσκεστε.
Οι παρακάτω παραγράφοι περιγράφουν με απλά λόγια το τι είναι το open source και την σκοπιμότητα του, για να έχουν κάποιο νόημα αυτές οι σελίδες σε όλους.
Ελεύθερο τι;
Ελεύθερο λογισμικό είναι το λογισμικό το οποίο διατίθεται ελεύθερα. Αυτό σημαίνει πως όταν κάποιος το αποκτήσει μπορεί να το χρησιμοποιήσει, να το αντιγράψει, να το μελετήσει, να το τροποποιήσει και να το διανέμει ελεύθερα. Τα παραπάνω ισχύουν τόσο για τον πηγαίο κώδικα όσο και για τα εκτελέσιμα αρχεία του προγράμματος.
Δεν καταλαβαίνω.
Τα εντελώς εισαγωγικά: Οι υπολογιστές, όπως θα ξέρετε ήδη, αποτελούνται από το hardware και το software. Το software γράφεται, όπως και πάλι θα ξέρετε ήδη, με τη βοήθεια των γλωσσών προγραμματισμού, οι οποίες είναι ενδιάμεσες γλώσσες που τις “καταλαβαίνουν” τόσο οι άνθρωποι όσο και τα computers, όπως οι C, Fortran (μπλιαχ) κλπ. Ο κώδικας αυτός λέγεται πηγαίος κώδικας (source code).
Όπως όμως οι άνθρωποι έχουν την κατ’ εξοχήν γλώσσα τους που την προτιμάνε, έτσι και τα computers έχουν τη δική τους: τη γλώσσα μηχανής. Όπως εσάς σας φαίνεται εξωφρενικό να πείτε “Για X από 1 μέχρι 4 φέρε ποτήρι νερό” αντί “Φέρε 4 ποτήρια νερό”, έτσι και στα computers φαίνεται παράξενο μάλλον να πούνε “Φέρε το τάδε από τη μνήμη” αντί να πούνε “101001010111”. Έτσι, όπως κάποιος που θέλει να φτιάξει ένα πρόγραμμα, ζητάει από κάποιον προγραμματιστή που καταλαβαίνει από γλώσσες προγραμματισμού να το γράψει, έτσι και στα computers πρέπει ένα ειδικό πρόγραμμα, ο μεταγλωττιστής (compiler) να μεταφράσει την γλώσσα προγραμματισμού σε γλώσσα μηχανής.
Το compilation από γλώσσα προγραμματισμού σε γλώσσα μηχανής, έχει ένα κακό όμως: Επειδή υπερ-αναλύει τη διαδικασία σε πολύ μικρά κομματάκια, “κρύβει” τις λεπτομέρειες υλοποίησης του προγράμματος από τους άλλους. Έτσι, από τη στιγμή που γίνεται compile ένα πρόγραμμα, δεν υπάρχει τρόπος να καταλάβει κανείς το πώς ο προγραμματιστής το έφτιαξε, ειδικά όταν μιλάμε για περίπλοκα προγράμματα.
Το πρόβλημα
Οι εταιρίες και οι προγραμματιστές από ένα σημείο και μετά έδιναν στους πελάτες τους μόνο τα εκτελέσιμα αρχεία (την γλώσσα μηχανής) ούτως ώστε οι ανταγωνιστές τους να βλέπουν μόνο το αποτέλεσμα και όχι την υλοποίηση των προγραμμάτων. Το κακό αυτής της προσέγγισης, η οποία έγινε η κατ΄εξοχήν πολιτική, είναι πως από τη στιγμή που δημιουργείται κάτι αρκετά περίπλοκο, είναι σχεδόν αδύνατο μια ανταγωνίστρια εταιρία να φτιάξει ένα ισάξιο προϊόν αφού πρέπει να “ξανα-εφεύρει τον τροχό” για ό,τι έφτιαξε η άλλη εταιρία.
Φανταστείτε να μπορούσε να γίνει αυτό σε όλες τις άλλες βιομηχανίες: Αν σε ένα αστείο (αλλά ρεαλιστικό και συγκρίσιμο) σενάριο, τα καπώ των αυτοκινήτων δεν άνοιγαν, πιθανώς μόνο μία ή δυο εταιρίες να είχαν χειρόφρενο ή τετράχρονους κινητήρες, αερόσακους και ζώνες ασφαλείας! Προφανώς όλοι θα προτιμούσαν τα -σαφώς ανώτερα- προϊόντα τους, θα δημιουργείτο μονοπωλιακή αγορά και αναπόφευκτα η τεχνολογία των αυτοκινήτων θα ήταν χρόνια πίσω συγκριτικά με την σημερινή αφού μια-δυο εταιρίες θα ανέπτυσσαν την τεχνολογία.
Αυτό, δυστυχώς ή ευτυχώς δεν απέχει και πολύ από την πραγματικότητα στον κόσμο των υπολογιστών. Η ίδια η φύση του λογισμικού των υπολογιστών, δημιούργησε ένα περιβάλλον στο οποίο ευδοκιμούν εταιρίες-κολοσσοί οι οποίες χρησιμοποιώντας το σύστημα του κλειστού κώδικα διατηρούν το μονοπώλιο τους συνεχώς. Περιορίζοντας την ελευθερία των άλλων να έχουν πρόσβαση στην καρδιά αυτού που χρησιμοποιούν, το source code, οι εταιρίες πουλάνε μόνο το αποτέλεσμα και όχι την υλοποίηση.
Οι προγραμματιστές καταλαβαίνουν ακριβώς τα προβλήματα σε όλα αυτά. Προφανώς μια θεραπεία που θα ήταν διαθέσιμη μόνο σε ένα ιατρείο στον κόσμο θα πείραζε όχι μόνο τους γιατρούς αλλά και τους ασθενείς. Ή ένα σύστημα ασφάλειας των επιβατών στα αυτοκίνητα που θα ήταν προνόμιο μιας μόνο αυτοκινητοβιομηχανίας θα ενοχλούσε όχι μόνο τους μηχανικούς αλλά και τους οδηγούς που θέλουν ένα άλλο αυτοκίνητο με παρόμοια επίπεδα ασφάλειας. Έτσι και ο περιορισμός στις επιλογές μας λόγω του μονοπωλίου μιας ή δύο εταιριών στους υπολογιστές, θα έπρεπε να πειράζει όλους μας και όχι μόνο τους προγραμματιστές.
Το ελεύθερο λογισμικό
Από αρκετά παλιά κάποιοι προέβλεψαν τα προβλήματα που θα δημιουργηθούν αν το closed-source γινόταν ο de facto τρόπος ανάπτυξης του software. Ένας από αυτούς ήταν ο Richard Stallman, ο οποίος από την αρχή έκανε γνωστό το πρόβλημα και έθεσε τις βάσεις για την ανάπτυξη ενός νέου είδους προγραμμάτων: Των ελεύθερων προγραμμάτων.
Αυτά τα προγράμματα, όταν τα αποκτήσει κανείς (πληρώνοντας ή όχι), έχει το δικαίωμα να δει τον κώδικα τους. Η ελευθερία του αυτή, είναι ίδια με την ελευθερία που έχουμε να φτιάχνουμε τα αυτοκίνητα μας στο δικό μας μηχανικό και αυτή που έχει μια αυτοκινητοβιομηχανία να “δει” το πώς έφτιαξε μια ανταγωνίστρια εταιρία μια τεχνολογία όπως το turbo ή την ζώνη ασφαλείας και το χειρόφρενο για να βελτιώσει τα δικά της μοντέλα.
Το open source και το free software υποστηρίζουν αυτό τον τρόπο ανάπτυξης προγραμμάτων. Το γιατί το FLOSS είναι καλύτερο από το closed-source μπορεί να το καταλάβει κανείς με λίγη ηθική και ορθολογική σκέψη. Επιπλέον, στο διαδίκτυο υπάρχει μια πληθώρα άρθρων και στηλών που παρουσιάζουν τα πλεονεκτήματα του open source, τα οποία περιγράφουν το θέμα πολύ καλύτερα απ’ ότι μπορώ να το κάνω εγώ.
Παραδείγματα ελεύθερων προγραμμάτων
Linux
Το πιο γνωστό παράδειγμα ελεύθερου λογισμικού είναι το λειτουργικό σύστημα Linux (ή GNU/Linux). Αναπτύσσεται από ένα πλήθος προγραμματιστών σε όλο τον κόσμο και το source code του είναι ελεύθερο για download από μια πληθώρα δικτυακών τόπων στο διαδίκτυο.
Συνοδεύεται από πολλά άλλα ελεύθερα προγράμματα, όπως τα X-Windows με τα KDE και GNOME (window managers), τον Mozilla (internet browser), το OpenOffice (σουίτα εφαρμογών γραφείου), και όλα όσα μπορεί να χρειαστούν σε ένα χρήστη υπολογιστή όπως email, IRC, μπλα μπλα.
Το linux διατίθεται σε διανομές, σύνολο πακέτων και προγραμμάτων δηλαδή, οι οποίες περιέχουν τον πυρήνα του linux και μια πληθώρα εφαρμογών. Περισσότερα για αυτό το θέμα μπορείτε να βρείτε στο distrowatch και να κατεβάσετε κάποια διανομή από το linuxiso.org.
Mozilla Firefox
Για τον firefox δεν χρειάζονται πολλές συστάσεις. Είναι πολύ απλά, ο καλύτερος φυλλομετρητής (browser) που υπάρχει. Τρέχει σε όλα τα γνωστά λειτουργικά συστήματα (ναι, τρέχει και σε windows) οπότε δεν χάνετε τίποτε απολύτως να τον κατεβάσετε και να τον εγκαταστήσετε και να δείτε από μόνοι σας πώς θα έπρεπε να είναι το σερφάρισμα σας από την αρχή.
Mozilla Thunderbird
Από τους δημιουργούς του Mozilla Firefox, ένας πολύ καλός email client. Σαφώς καλύτερος από εκείνη την υποψία λειτουργικότητας που έρχεται δωρεάν με τα windows. Τρέχει κι αυτός σε όλα τα γνωστά λειτουργικά συστήματα και υπόσχεται να σας κάνει να δείτε τα email σας με άλλο μάτι.
Άλλα προγράμματα
Μερικά ακόμη ελεύθερα προγράμματα που θα σας φανούν χρήσιμα:
- Openoffice.org: Πλήρης σουίτα εφαρμογών επεξεργασίας κειμένων, παρουσιάσεων, spreadsheets, και βάσης δεδομένων.
- Gimp & Inkscape: Προγράμματα σχεδίασης εικόνων/επεξεργασίας φωτογραφιών και σχεδίασης διανυσματικών εικόνων αντίστοιχα.
- N|vu: Σχεδίαση ιστοσελίδων.
Και φυσικά, το TheOpenCD, το οποίο είναι ένα έτοιμο CD με ελεύθερα προγράμματα, έτοιμα για εγκατάσταση στα windows. Περιέχει όλα τα παραπάνω.
Περισσότερες πληροφορίες
- Για πληροφορίες σχετικά με τα ελεύθερα προγράμματα, επισκεφτείτε τα GNU, FSF, opensource.org. Για πληροφορίες σχετικά με το linux, τα CyLUG, HeLLUG, linux.gr. Περισσότερα links στην ενότητα… links.
- Στην ενότητα Links μπορείτε να βρείτε αρκετούς σύνδεσμους σχετικά με FLOSS: Οι περισσότεροι μάλλον έχουν άμεση σχέση με αυτά.
- Στην ενότητα Stuff I like έχουν συμπεριληφθεί μερικά βιβλία που διάβασα σχετικά με το FLOSS και μου άρεσαν.