Παρακλάδι (πληροφορική)

Παρακλάδι (αγγλ. fork) στην πληροφορική ονομάζεται ένα έργο λογισμικού το οποίο προήλθε αρχικά από ένα άλλο έργο, ωστόσο έχει τροποποιηθεί στην πορεία και αναπτύσσεται ως ένα ξεχωριστό εγχείρημα.

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

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

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

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

Ο Έρικ Ρέιμοντ, στο δοκίμιό του Homesteading the Noosphere, δήλωσε ότι "Το πιο σημαντικό χαρακτηριστικό ενός παρακλαδιού είναι ότι δημιουργεί ανταγωνιστικά έργα που δεν μπορούν αργότερα να ανταλλάξουν κώδικα, διχάζοντας την δυνητική κοινότητα των προγραμματιστών".

Τα εργαλεία ελέγχου κατανεμημένης αναθεώρησης (DVCS) έχουν διαδώσει μια λιγότερο συναισθηματική χρήση του όρου "παρακλάδι", θολώνοντας τη διάκριση με την έννοια του κλάδου. Με ένα DVCS όπως το Mercurial ή το Git, ο κανονικός τρόπος για να συνεισφέρει κανείς σε ένα έργο είναι να δημιουργήσει πρώτα ένα προσωπικό κλάδο του αποθετηρίου, ανεξάρτητο από τον κύριο χώρο αποθήκευσης, και αργότερα να επιδιώξει να ενσωματώσει  εκεί τις αλλαγές που έκανε. Διαδικτυακές πλατφόρμες, όπως το GitHub, το Bitbucket και το Launchpad παρέχουν δωρεάν φιλοξενία DVCS που υποστηρίζει ανεξάρτητους κλάδους. Έτσι, τα τεχνικά, κοινωνικά και οικονομικά εμπόδια για τη διοχέτευση ενός αποθετηρίου πηγαίου κώδικα μειώνονται σημαντικά.

Ένα παρακλάδι συχνά επανεκκινεί την αρίθμηση των εκδόσεων από 0.1 ή 1.0, ακόμα κι αν το αρχικό λογισμικό ήταν στην έκδοση 3.0, 4.0 ή 5.0. Μια εξαίρεση είναι όταν το παρακλάδι έχει δημιουργηθεί με στόχο να αντικαταστήσει το αρχικό έργο, π.χ το MariaDB για το MySQL και το LibreOffice για το OpenOffice.org.

Οι άδειες BSD επιτρέπουν στα παρακλάδια να γίνουν εμπορικό λογισμικό. Οι υποστηρικτές του copyleft ισχυρίζονται ότι τα εμπορικά κίνητρα καθιστούν την εμπορικοποίηση του εγχειρήματος σχεδόν αναπόφευκτη. Παραδείγματα αποτελούν το macOS (βασισμένο στο εμπορικό NeXTSTEP και το FreeBSD ανοιχτού κώδικα), τα Cedega και CrossOver (εμπορικά παρακλάδια του Wine, αν και το CrossOver παρακολουθεί το εγχείρημα Wine και συνεισφέρει σημαντικά σε αυτό), το EnterpriseDB (ένα παρακλάδι του PostgreSQL που προσθέτει χαρακτηριστικά συμβατότητας με τις βάσεις δεδομένων Oracle). Μερικά από αυτά τα εγχειρήματα προσφέρουν τις αλλαγές τους στο πρωτότυπο έργο, ενώ κάποια διατηρούν τις αλλαγές τους ως δικά τους ανταγωνιστικά πλεονεκτήματα.

Παρακλάδια εμπορικού λογισμικού 
Στο εμπορικό λογισμικό, τα πνευματικά δικαιώματα κατέχονται συνήθως από την εταιρεία και όχι από  μεμονωμένους προγραμματιστές λογισμικού. Επομένως, ο ιδιόκτητος/εμπορικός κώδικας αποκτά συνήθως παρακλάδια όταν ο κάτοχος χρειάζεται να αναπτύξει δύο ή περισσότερες εκδόσεις του ίδιου λογισμικού, όπως μια γραφική έκδοση και μια έκδοση γραμμής εντολών, ή εκδόσεις για διαφορετικές πλατφόρμες, όπως για μηχανές συμβατές με IBM PC και για υπολογιστές Macintosh. Γενικά, τέτοια εσωτερικά παρακλάδια επιδιώκουν να έχουν την ίδια εμφάνιση, αίσθηση, μορφή δεδομένων και συμπεριφορά μεταξύ των πλατφορμών, έτσι ώστε ένας χρήστης που είναι εξοικειωμένος με τη μία έκδοση να μπορεί επίσης να είναι παραγωγικός ή να μοιράζεται έγγραφα που δημιουργούνται στην άλλη. Αυτή είναι σχεδόν πάντα μια οικονομική απόφαση για τη δημιουργία μεγαλύτερου μεριδίου αγοράς και, συνεπώς, την αποπληρωμή του σχετικού επιπλέον κόστους ανάπτυξης που δημιουργείται από το παρακλάδι.

Ένα αξιοσημείωτο παράδειγμα παρακλαδιών που δεν είναι αυτού του είδους είναι οι πολλές ποικιλίες του λειτουργικού συστήματος κλειστού κώδικα Unix. Σχεδόν όλες προέρχονται από την έκδοση AT&T Unix, δημιουργήθηκαν κατόπιν άδειας και ονομάστηκαν "Unix", αλλά μεταξύ τους όλα αυτά τα παρακλάδια του Unix είναι ολοένα και περισσότερο ασύμβατα.

Παραπομπές

Πληροφορική