Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Προηγούμενο  Περιεχόμενα

2. Πώς μπορεί το αποτέλεσμα να είναι ποιοτικό;

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

Για να καταλάβουμε την απάντηση πρέπει πρώτα να δούμε τί είναι το GPL. Το GPL (GNU General Public Licence ή αλλιώς copyleft) είναι ένας τρόπος έκδοσης και διανομής προγραμμάτων που διασφαλίζει την ελευθερία στο λογισμικό. Όπως αναφέρει και το κείμενο που περιγράφει το GPL, όταν λέμε ελευθερία δεν εννοούμε μόνο χωρίς χρέωση, αλλά την ελευθερία να διανέμει κανείς το χωρίς χρέωση λογισμικό (και να πληρώνεται για αυτό αν το επιθυμεί) την δυνατότητα να δει τον πηγαίο κώδικα, να τον αλλάξει ή και να χρησιμοποιήσει τμήματά του σε άλλα προγράμματα και όλα αυτά τα δικαιώματα να είναι κατοχυρωμένα από τον νόμο.

Το Linux για παράδειγμα είναι κατοχυρωμένο με το GPL. Ο αρχικός δημιουργός του, ο Linus Torvalds, λειτουργεί περισσότερο σαν μάνατζερ του όλου εγχειρήματος: είναι αυτός που δέχεται τις τροποποιήσεις και τις νέες δυνατότητες, τις ενσωματώνει ή τις απορίπτει και εκδίδει την νέα έκδοση του κυρίως μέρους του Linux, του πυρήνα όπως λέγεται. Ο πηγαίος κώδικας (που από το GPL ορίζεται ως η μορφή στην οποία μπορούν να γίνουν ευκολότερα αλλαγές στο πρόγραμμα) είναι διαθέσιμη σε όποιον ενδιαφέρεται να την δει και να την τροποποιήσει.

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

  • Ένα καλό πρόγραμμα έχει ανάγκη από χρήστες και μόνο αυτοί μπορούν να προσδιορίσουν με ακρίβεια τις ανάγκες τους.
  • Όταν μιλάμε για μεγάλα προγράμματα, δεν είναι δυνατό η υλοποίηση να γίνει χωρίς λάθη (bugs), είτε στην λογική (στον αλγόριθμο) είτε στην συγραφή του προγράμματος. Λυπηρό ίσως, αλλά ΔΕΝ ΥΠΑΡΧΕΙ ΤΕΛΕΙΟ ΠΡΟΓΡΑΜΜΑ !!!
  • Ένα καλό πρόγραμμα πρέπει να συνοδεύεται από κατατοπιστικά εγχειρίδια που θα βοηθήσουν τους χρήστες του.
  • Πρέπει να μπορεί να προσαρμόζεται με νέες εκδόσεις στα δεδομένα που επικρατούν στον χώρο και τα οποία αλλάζουν κάθε τόσο.

Η αντιμετώπιση όλων των παραπάνω στον χώρο του Linux, με την βοήθεια του GPL είναι πραγματικά εντυπωσιακή.

Η πολιτική του ελεύθερου λογισμικού και της αναγνώρισης όσων βοηθούν με τον ένα ή τον άλλο τρόπο κάνουν πολλούς από τους χρήστες να αισθάνονται ότι είναι και μέρος της ομάδας ανάπτυξης του προγράμματος. Έτσι διασφαλίζεται μία συνεχής ροή παρατηρήσεων, εντοπισμού λαθών τροποποιήσεων και ιδεών προς τους προγραμματιστές. Τα bugs εντοπίζονται πολύ γρήγορα και συχνά η αναφορά για αυτά συνοδεύεται και από τον προσδιορισμό του κοματιού του πηγαίου κώδικα που είναι ελλατωματικός καθώς και από την προτεινόμενη διόρθωση (βλέπετε ο πηγαίος κώδικας δεν είναι επτασφράγιστο μυστικό όπως στην περίπτωση των εμπορικών προγραμμάτων!). Όπως λέει και ο Eric S. Raymond στο άρθρο του The Cathedral and the Bazzar http://www.kde.org/food/cathedral/cathedral-paper.html, "Δοθέντων αρκετών ματιών, όλα τα bugs είναι ρηχά". Το παράδειγμα του Linux είναι αρκετό για να πείσει και τον πιο δύσπιστο: Θεωρείται από τα πιο σταθερά λειτουργικά συστήματα!

Νομίζω ότι ενδιαφέρον είναι και αυτό που απάντησε σε μία σχετική ερώτηση ο ίδιος ο Linus ( σε μια συνέντευξή του.) "Όταν μιλάμε για λογισμικό προτιμώ σαφώς το ελεύθερο λογισμικό γιατί πολύ σπάνια έχω δεί ένα πρόγραμμα που να δουλεύει αρκετά καλά για τις ανάγκες μου και το να έχεις τον πηγαίο κώδικα μπορεί να σε γλιτώσει."

Ένα άλλο θέμα είναι η ταχύτητα με την οποία αναπτύσεται μία εφαρμογή. Ειδικά στα εμπορικά προγράμματα, είναι δεδομένο ότι η επιτυχία ενός προγράμματος μπορεί να κριθεί από το αν βγήκε στην διανομή έγκαιρα, που σημαίνει ότι η ταχύτητα με την οποία το πρόγραμμα θα αναπτυχθεί είναι κρίσιμος παράγοντας. Στην περίπτωση του ελεύθερου λογισμικού (GPL) οι προγραμματιστές έχουν ένα ακόμη πλεονέκτημα: μπορούν να χρησιμοποιήσουν κώδικα που είναν γράψει άλλοι! Όπως λένε, οι καλοί προγραμματιστές ξέρουν τί να γράψουν, οι μεγάλοι προγραμματιστές ξέρουν τί να ξαναγράψουν (και να ξανα χρησιμοποιήσουν).

Η ελεύθερη πρόσβαση στον πηγαίο κώδικα, η εύκολη και άμμεση επικοινωνία με τους προγραμματιστές καθώς και το κλίμα αλληλοβοήθειας που επικρατεί στον χώρο του ελέυθερου λογισμικού επιτρέπουν και οδηγούν πολλούς από τους χρήστες να γράψουν εγχειρίδια χρήσης και άλλα βοηθητικά κείμενα σχετικά με το πρόγραμμα. Όποιος έχει αμφιβολία για αυτό, ας ρίξει μία ματιά στο http://sunsite.unc.edu/LDP για να δει το πλήθος και ποιότητα των κειμένων σχετικά με την χρήση και εγκατάσταση του Linux.

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

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


Valid HTML 4.01!   Valid CSS!