Τι είναι το λογισμικό ανοιχτού κώδικα και γιατί έχει σημασία;
Οι Geek συχνά περιγράφουν τα προγράμματα ως "ανοιχτού κώδικα" ή "ελεύθερου λογισμικού". Αν αναρωτιέστε τι ακριβώς σημαίνουν αυτοί οι όροι και γιατί έχουν σημασία, διαβάστε παρακάτω. (Όχι, το "ελεύθερο λογισμικό" δεν σημαίνει μόνο ότι μπορείτε να το κατεβάσετε δωρεάν.)
Το αν ένα πρόγραμμα είναι ανοικτού κώδικα ή όχι δεν έχει σημασία μόνο για τους προγραμματιστές, αλλά τελικά έχει σημασία και για τους χρήστες. Οι άδειες λογισμικού ανοικτού κώδικα δίνουν στους χρήστες ελευθερίες που δεν θα είχαν διαφορετικά.
Image Credit: Quinn Dombrowski στο Flickr
Ο ορισμός του ανοιχτού κώδικα
Εάν ένα πρόγραμμα είναι ανοικτού κώδικα, ο πηγαίος κώδικας του είναι ελεύθερα διαθέσιμος στους χρήστες του. Οι χρήστες του - και οποιοσδήποτε άλλος - έχουν τη δυνατότητα να λαμβάνουν αυτόν τον πηγαίο κώδικα, να το τροποποιούν και να διανέμουν τις δικές τους εκδόσεις του προγράμματος. Οι χρήστες έχουν επίσης τη δυνατότητα να διανέμουν τόσα αντίγραφα του αρχικού προγράμματος όπως θέλουν. Οποιοσδήποτε μπορεί να χρησιμοποιήσει το πρόγραμμα για οποιοδήποτε σκοπό. δεν υπάρχουν τέλη αδείας ή άλλοι περιορισμοί στο λογισμικό. Το OSI έχει έναν πιο λεπτομερή ορισμό του "ανοικτού κώδικα" στην ιστοσελίδα του.
Για παράδειγμα, το Ubuntu Linux είναι ένα λειτουργικό σύστημα ανοιχτού κώδικα. Μπορείτε να κατεβάσετε το Ubuntu, να δημιουργήσετε τόσα αντίγραφα όπως θέλετε και να τα δώσετε στους φίλους σας. Μπορείτε να εγκαταστήσετε το Ubuntu σε απεριόριστο αριθμό υπολογιστών. Μπορείτε να δημιουργήσετε remixes του δίσκου εγκατάστασης του Ubuntu και να τα διανείμετε. Εάν είστε ιδιαίτερα παρακινημένοι, μπορείτε να κατεβάσετε τον πηγαίο κώδικα ενός προγράμματος στο Ubuntu και να τον τροποποιήσετε, δημιουργώντας τη δική σας προσαρμοσμένη έκδοση αυτού του προγράμματος - ή του ίδιου του Ubuntu. Οι άδειες ανοιχτού κώδικα σας επιτρέπουν να το κάνετε αυτό, ενώ οι άδειες κλειστού κώδικα θέτουν περιορισμούς σε εσάς.
Το αντίθετο από το λογισμικό ανοιχτού κώδικα είναι το λογισμικό κλειστού κώδικα, το οποίο διαθέτει μια άδεια που περιορίζει τους χρήστες και διατηρεί τον πηγαίο κώδικα από αυτούς.
Τα Firefox, το Chrome, το OpenOffice, το Linux και το Android είναι μερικά δημοφιλή παραδείγματα λογισμικού ανοιχτού κώδικα, ενώ τα Microsoft Windows είναι ίσως το πιο δημοφιλές λογισμικό κλειστού κώδικα.
Ανοικτού κώδικα έναντι Ελεύθερου Λογισμικού
Οι εφαρμογές ανοιχτού κώδικα είναι γενικά ελεύθερα διαθέσιμες - αν και δεν υπάρχει τίποτα που να εμποδίζει τον προγραμματιστή να χρεώνει αντίγραφα του λογισμικού αν επιτρέπουν την ανακατανομή της εφαρμογής και του πηγαίου κώδικα της.
Ωστόσο, αυτό δεν αναφέρεται στο "ελεύθερο λογισμικό". Το "δωρεάν" στο ελεύθερο λογισμικό σημαίνει "ελεύθερο ως ελεύθερο" και όχι "ελεύθερο όπως στη μπύρα". Το στρατόπεδο ελεύθερου λογισμικού, με επικεφαλής τον Richard Stallman και το Ίδρυμα Ελεύθερου Λογισμικού, επικεντρώνεται στη δεοντολογία και τα ηθικά της χρήσης λογισμικού που μπορεί να είναι ελέγχεται και τροποποιείται από τον χρήστη. Με άλλα λόγια, το στρατόπεδο ελεύθερου λογισμικού επικεντρώνεται στις ελευθερίες των χρηστών.
Richard Stallman. Εικόνα από το Fripog στο Flickr.
Το κίνημα λογισμικού ανοιχτού κώδικα δημιουργήθηκε για να επικεντρωθεί σε πιο ρεαλιστικούς λόγους για την επιλογή αυτού του τύπου λογισμικού. Οι υποστηρικτές του ανοικτού κώδικα ήθελαν να επικεντρωθούν στα πρακτικά οφέλη από τη χρήση λογισμικού ανοιχτού κώδικα που θα απευθύνονταν περισσότερο στις επιχειρήσεις, αντί της δεοντολογίας και της ηθικής.
Τελικά, τόσο οι υποστηρικτές ανοιχτού κώδικα όσο και οι δωρεάν υποστηρίζουν το ίδιο είδος λογισμικού, αλλά διαφωνούν σχετικά με την ανταλλαγή μηνυμάτων.
Τύποι αδειών χρήσης
Υπάρχουν πολλές διαφορετικές άδειες χρήσης που χρησιμοποιούνται από έργα ανοιχτού κώδικα, ανάλογα με τα οποία οι προγραμματιστές προτιμούν το πρόγραμμά τους.
Η γενική δημόσια άδεια GPL ή GNU χρησιμοποιείται ευρέως από πολλά έργα ανοιχτού κώδικα, όπως το Linux. Εκτός από όλους τους παραπάνω ορισμούς του ανοιχτού κώδικα, οι όροι της GPL ορίζουν ότι εάν κάποιος τροποποιεί ένα πρόγραμμα ανοιχτού κώδικα και διανέμει παράγωγο έργο, πρέπει επίσης να διανέμει τον πηγαίο κώδικα για το παράγωγο έργο του. Με άλλα λόγια, κανείς δεν μπορεί να χρησιμοποιήσει κώδικα ανοιχτού κώδικα και να δημιουργήσει από αυτό ένα πρόγραμμα κλειστού κώδικα - πρέπει να απελευθερώσει τις αλλαγές του πίσω στην κοινότητα. Η Microsoft ανέφερε το GPL ως "ιό" για αυτό το λόγο, καθώς αναγκάζει προγράμματα που ενσωματώνουν κώδικα GPL να απελευθερώνουν τον δικό τους πηγαίο κώδικα. Φυσικά, οι προγραμματιστές ενός προγράμματος μπορούν να επιλέξουν να μην χρησιμοποιήσουν τον κώδικα GPL αν αυτό είναι ένα πρόβλημα.
Ορισμένες άλλες άδειες, όπως η άδεια BSD, επιβάλλουν λιγότερους περιορισμούς στους προγραμματιστές. Εάν ένα πρόγραμμα διαθέτει άδεια βάσει της άδειας BSD, οποιοσδήποτε μπορεί να ενσωματώσει τον πηγαίο κώδικα του προγράμματος σε άλλο πρόγραμμα. Δεν χρειάζεται να απελευθερώσουν τις αλλαγές τους στην κοινότητα. Μερικοί άνθρωποι βλέπουν ότι αυτό είναι ακόμη πιο "ελεύθερο" από την άδεια GPL, καθώς δίνει στους προγραμματιστές την ελευθερία να ενσωματώσουν τον κώδικα στα δικά τους προγράμματα κλειστής πηγής, ενώ μερικοί θεωρούν ότι είναι λιγότερο "ελεύθεροι" επειδή παίρνουν τα δικαιώματα μακριά από τους τελικούς χρήστες του παραγόμενου προγράμματος.
Οφέλη για τους χρήστες
Αυτό δεν είναι όλα ξηρά, ασήμαντα πράγματα που έχουν σημασία μόνο για τους προγραμματιστές. Το πιο προφανές όφελος του λογισμικού ανοιχτού κώδικα είναι ότι μπορεί να είχε δωρεάν. Το παράδειγμα του Ubuntu Linux παραπάνω καθιστά αυτό σαφές - σε αντίθεση με τα Windows, μπορείτε να εγκαταστήσετε ή να διανείμετε όσα αντίγραφα του Ubuntu θέλετε, χωρίς περιορισμούς. Αυτό μπορεί να είναι ιδιαίτερα χρήσιμοι εξυπηρετητές - αν ρυθμίζετε ένα διακομιστή, μπορείτε απλά να εγκαταστήσετε το Linux σε αυτό. εάν ρυθμίζετε ένα virtualized cluster servers, μπορείτε εύκολα να αντιγράψετε ένα μόνο διακομιστή Ubuntu. Δεν χρειάζεται να ανησυχείτε για την αδειοδότηση και πόσες περιπτώσεις Linux επιτρέπεται να εκτελούνται.
Ένα πρόγραμμα ανοιχτού κώδικα είναι επίσης πιο ευέλικτο. Για παράδειγμα, η νέα διεπαφή των Windows 8 απογοητεύτηκε από πολλούς χρήστες υπολογιστών που χρησιμοποιούν Windows Desktop. Επειδή τα Windows είναι κλειστού τύπου, κανένας χρήστης των Windows δεν μπορεί να πάρει τη διασύνδεση των Windows 7, να την τροποποιήσει και να λειτουργήσει σωστά στα Windows 8. (Μερικοί χρήστες των Windows προσπαθούν, αλλά αυτή είναι μια επίπονη διαδικασία αντιστροφής μηχανικής και τροποποίησης δυαδικών αρχείων. )
Όταν μια επιφάνεια εργασίας Linux, όπως το Ubuntu, εισάγει μια νέα διεπαφή επιφάνειας εργασίας που ορισμένοι χρήστες δεν είναι οπαδοί των χρηστών, οι χρήστες έχουν περισσότερες επιλογές. Για παράδειγμα, όταν κυκλοφόρησε το GNOME 3, πολλοί χρήστες desktop Linux απενεργοποιήθηκαν εξίσου. Κάποιοι πήραν τον κώδικα στην παλιά έκδοση, το GNOME 2, και το τροποποίησαν για να τρέξουν στις πιο πρόσφατες διανομές Linux - αυτό είναι το MATE. Κάποιοι πήραν τον κώδικα στο GNOME 3 και το τροποποίησαν για να λειτουργήσουν με τον τρόπο που προτιμούσαν - αυτό είναι το Κανέλα. Μερικοί χρήστες απλώς άλλαξαν σε υπάρχουσες εναλλακτικές επιφάνειες εργασίας. Εάν τα Windows ήταν ανοικτού κώδικα, οι χρήστες των Windows 8 θα είχαν περισσότερες επιλογές και ευελιξία. Απλά ρίξτε μια ματιά στο CyanogenMod, μια δημοφιλής, κοινότητα-καθοδηγούμενη διανομή Android που προσθέτει χαρακτηριστικά και υποστήριξη για νέες συσκευές.
Το λογισμικό ανοιχτού κώδικα επιτρέπει επίσης στους προγραμματιστές να «στέκονται στους ώμους των γίγαντων» και να δημιουργούν το δικό τους λογισμικό. Είναι μάρτυρες του Android και του Chrome OS, τα οποία είναι λειτουργικά συστήματα που βασίζονται στο Linux και άλλα λογισμικά ανοιχτού κώδικα. Ο πυρήνας του OS X της Apple - και γι 'αυτό iOS - χτίστηκε επίσης με κώδικα ανοιχτού κώδικα. Η βαλβίδα εργάζεται απερίσκεπτα για τη μεταφορά της πλατφόρμας παιχνιδιών του Steam στο Linux, καθώς αυτό θα τους επέτρεπε να δημιουργήσουν το δικό τους υλικό και να ελέγχουν το δικό τους προορισμό με τρόπο που δεν είναι δυνατό στα Windows της Microsoft.
Αυτό δεν είναι μια εξαντλητική περιγραφή - ολόκληρα βιβλία έχουν γραφτεί για αυτό το θέμα - αλλά τώρα θα πρέπει να έχετε μια καλύτερη ιδέα για το τι πραγματικά είναι το λογισμικό ανοιχτού κώδικα και γιατί είναι χρήσιμο για εσάς.