Παιδιά, νομίζω ότι και οι δύο σας έχετε μπλέξει την φιλοσοφία του Open Source με τις άδειες του Open Source. Είναι εντελώς διαφορετικά πράγματα. Άλλο πράγμα επίσης είναι πως χρησιμοποιούν οι εταιρείες το open source. Ακόμα και στις άδειες, αυτό που λέει ο thrylos είναι απλά ένα από τα είδη αδειών που κυκλοφορούνε. Υπάρχουν άλλα πολύ πιο χαλαρά.
Η φιλοσοφία του open source είναι ότι σου δίνω τη δουλειά μου έτσι ώστε να ξέρεις τί έχει γίνει και να μπορέσεις να την επεκτείνεις.
Η διαδικασία του open source είναι ότι ένα project το φτιάχνουν διάφοροι άνθρωποι, με μάλλον χαλαρό τρόπο και με κατεύθυνση η οποία δεν υπαγορεύεται από μία εταιρεία. Εδώ, δεν αναφέρομαι στις εταιρείες οι οποίες φτιάχνουν μία εφαρμογή και την δίνουν μετά open source, κρατώντας τον έλεγχο του προϊόντος και της εξέλιξης του.
Οι άδειες αφορούν το πως θα χρησιμοποιηθεί η δουλειά. Το GPL license έχει σκοπό να εξασφαλίσει ότι οι εταιρείες δεν θα εκμεταλλευτούν το open source χωρίς να συνεισφέρουν, και κυρίως ότι δεν θα τον κλέψουν για να φτιάξουν τα δικά τους προϊόντα. Οι άδειες της Microsoft, σου δίνουν τον κώδικα και κάνε ότι θέλεις. Μην ξεχνάμε βέβαια, ότι τις περισσότερες φορές δεν τροποποιείς τον κώδικα, αλλά τον χρησιμοποιείς ως έχει. Π.χ. αν φτιάξεις μία εφαρμογή που χρησιμοποιεί MySQL δεν είσαι υποχρεωμένος να δώσεις και τον κώδικα της εφαρμογή.
Η χρήση τέλος? Κάποιοι θα φτιάξουν προϊόντα βασισμένα σε GPL open source και θα τα πουλήσουν κάνοντας τις πάπιες. Κάποιοι θα συνεισφέρουν τις αλλαγές. Άλλοι απλά θα χρησιμοποιήσουν τον κώδικα ως μία φτηνή λύση.
Υπάρχουν κι εκείνοι οι οποίοι θα εκμεταλλευτούν το open source για να αυξήσουν τα υπερκέρδη τους (αν ήμουν αγενής, θα έλεγα για αισχροκέρδεια). Είχα αναφέρει παλιά την περίπτωση ακαδημαϊκού ιδρύματος το οποίο είχε πουλήσει σε δημόσιο οργανισμό εφαρμογή φτιαγμένη από κακοπληρωμένους φοιτητές, με open source εφαρμογές, με πολλές καθυστερήσεις στην ανάπτυξη, στην τιμή ... του Biztalk Server. Η εφαρμογή αυτή δεν χρειαζόταν κάτι παραπάνω από Access (γιατί είχε και λίγα reports), ενώ προσωπικά θα ντρεπόμουν να ζητήσω πάνω από 1000 γι αυτή (όσο ο μικτός του κάθε φοιτητή). Αυτό ήταν μία ξεκάθαρη περίπτωση εκμετάλλευσης των φοιτητών, η οποία τίποτε δεν είχε να κάνει με τη χρήση open source. Απλά το ίδρυμα βρήκε την ευκαιρία να φάει όσο περισσότερα μπορούσε από το δημόσιο.
Φυσικά, υπάρχει και ο φανατισμός του Open Source. Με μία νοοτροπία φιλάθλου, πολλοί αντιμετωπίζουν το open source όπως την ομάδα. Αλίμονο σε όποιον την πιάσει στο στόμα του και δεν πει καλά λογια. Θυμάμαι ότι όταν ανέφερα την εκμετάλλευση των φοιτητών από το εν λόγω ίδρυμα, κάποιοι θεώρησαν ότι έθιξα το Open Source! Μάλιστα, σε κάποιο άλλο forum κάποιοι φοιτητές πρέπει να είχα κάνει λοβοτομή όταν άρχισα να ασχολούμαι με .NET!
Πως βλέπω εγώ το open source? Εξαιρετικά χρήσιμο για διάφορους λόγους.
- Δίνει σε όλους την ευκαιρία να δει παραδείγματα καλού, πραγματικού κώδικα. Όχι samples και tutorials, αλλά πραγματικού κώδικα σε λειτουργία. Οι πολιτικοί μηχανικοί μπορούν να δουν τα καλά και τα σκάρτα κτίρια, να δουν τους καθεδρικούς και τα μνημεία, να δουν και τις παράγκες. Εμείς κατά κανόνα δεν μπορούμε να δουμε παραδείγματα καλών ή κακών εφαρμογών.
- Συνήθως παρέχει μία αρκετά καλή λύση σε ένα πρόβλημα. Το NHibernate είναι ένα πολύ καλό ORM, με αρκετά προβληματάκια βέβαια, αλλά είναι μία λύση good enough.
- Είναι ένα ισχυρό αντίδοτο στο σύνδρομο Not-Invented-Here! Ένας από τους συχνότερους λόγους που διάφοροι προγραμματιστές ξανα-ανακαλύπτουν τον τροχό είναι επειδή φοβούνται ότι δεν θα μπορέσουν να τροποποιήσουν μία έτοιμη λύση αν χρειαστεί.
- Μπορείς να το χρησιμοποιήσεις χωρίς άδεια από τον project manager και το τμήμα προμηθειών! Έχω ακούσει άπειρες φορές από PMs ότι δεν μπορούμε να χρησιμοποιήσουμε το ένα ή το άλλο εργαλείο, δεν μπορούμε να στήσουμε bug tracking, πρέπει να χρησιμοποιήσουμε το (άσχετο) προϊόν της εταιρείας γι αυτό, δεν, δεν, δεν, μη, μη, μη. To Bugzilla ή το Subversion μπορώ να τα στήσω χωρίς να τα πάρει κανείς χαμπάρι.
- Υπάρχουν δεκάδες άνθρωποι οι οποίοι μπορούν να σε βοηθήσουν στη χρήση του. Το αν είναι καλοί βέβαια, είναι άλλη ιστορία.
Από την άλλη, έχει και τα προβλήματα του:
- Η ανάπτυξη των project είναι αργή, πολύ αργή. Μία εταιρεία δεν μπορεί να βασιστεί αποκλειστικά σε αυτό για την ανάπτυξη ενός προϊόντος. Παράδειγμα, η Netscape. Νόμισε ότι θα αντιμετώπιζε την Microsoft κάνοντας τον Netscape open source. Η ανάπτυξη του Mozilla όμως ήταν τόσο αργή, μα τόσο αργή, που στο τέλος η Netscape έκλεισε πρωτού καλά-καλά προλάβει να παραλάβει το προϊόν!
Άλλο παράδειγμα. Το NHibernate ακόμα δεν έχει βγάλει stable version για το .ΝΕΤ 2 (όχι ότι είναι κακή η version που υπάρχει). Τα εμπορικά ORM όμως είχαν βγάλει υποστήριξη για generics κλπ εδώ και 1 χρόνο.
- Η υποστήριξη δεν είναι σίγουρη. Αγοράζοντας ένα προϊόν, έχεις και μία εγγυημένη υποστήριξη, σύμφωνα με το συμβόλαιο και την άδεια που έχεις αγοράσει. Μπορείς άνετα να αγοράσεις υποστήριξη που θα σου εξασφαλίσει ένα μηχανικό αποκλειστικά για την εταιρεία σου. Με το open source συνήθως πρέπει να στηριχθείς στην καλή θέληση των μελών του project.
Πληρώνοντας βέβαια, μπορείς να αγοράσεις υποστήριξη για κάποια από τα πιο πετυχημένα προϊόντα, ακριβώς όπως θα αγόραζες και για άλλα εμπορικά προϊόντα.
Αυτά τα ολίγα από μέρους μου. Και μία θερμή παράκληση. Μην κάνουμε αυτή τη συζήτηση ποδοσφαιρικό αγώνα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos