Saturday, August 11, 2007

Δυσαρμονία και Java

Πολλά συμβαίνουν τελευταία στο χώρο της Java. Γνωρίζοντας ότι δεν έχω διαβάσει τα πάντα σχετικά με τη διαμάχη Apache/Sun, θα καταγράψω ότι έχω καταλάβει προκαλώντας εμπειρότερους να με διορθώσουν και ενδεχομένως να με συμπληρώσουν από τη μια, και από την άλλη ίσως λύσω κάποιες απορίες σχετικά με το θέμα για κάποιους άλλους.

Όλα ξεκινάν από την πεισματική άρνηση της Sun να χαρίσει την Java στο community (σαν open source), κάποια στιγμή στα τέλη του '90 (και γιατί να το έκανε άραγε). Το δικαιολογημένο επιχείρημα ήταν ότι δεν ήθελε να κατακερματιστεί η πλατφόρμα σε δεκάδες Javες που καμιά μεταξύ τους δε θα ήταν συμβατή. Από την άλλη όμως παίρνει feedback και να ενσωματώνει κώδικα από το community.

Τέλοσπάντων φτάσαμε στο 2007 και η Java είναι πλέον open source, με σκοτεινή εξαίρεση κομμάτια κώδικα τα οποία έχει κάνει license από τρίτους οι οποίοι δεν είναι διατεθιμένοι να τα μοιραστούν για όλους. (τελεία).

Εκτός από τη Sun υπάρχουν και άλλες εταιρείες που φτιάχνουν Java, εδώ και καιρό μάλιστα (most notably η ΒΕΑ). Για να μπορεί όμως η BEA να πουλήσει το προϊόν της σαν Java πρέπει να δώσει ένα σκασμό λεφτά στη Sun για να της δώσει η Sun ένα λογισμικό (το infamous JCK ή Java Compatibility Kit) το οποίο θα κρίνει αν το implementation της ΒΕΑ είναι συμβατό με τις προδιαγραφές της Java. Αν περάσει το τεστ, τότε μπορεί να πουλήσει και η ΒΕΑ το λογισμικό της σαν Java και να το σταμπάρει και με την κούπα του αχνιστού καφέ.

Αυτό το λογισμικό το δίνει πλέον δωρεάν η Sun σε ακαδημαϊκούς ή μη κερδοσκοπικούς οργανισμούς. Το θέμα είναι όμως ότι και να περάσεις τα τεστ, αν είσαι στη κατηγορία του ακαδημαϊκού ή μη κερδοσκοπικού οργανισμού, αν δεν έχεις στηρίξει τη δουλεία σου στη Java της Sun, όπως αυτή την άνοιξε για τον κόσμο σαν OpenJDK, τη στάμπα ότι αυτό που έφτιαξες είναι Java δεν την παίρνεις.

Ο πιο σοβαρός open source οργανισμός που είχει προσφέρει στo οικοσύστημα της Java είναι με μεγάλη διαφορά ο ASF (Apache Software Foundation). Ο ASF λοιπόν, αποφάσησε να φτιάξει το δικό του implementation της Java, το περίφημο Harmony. Έλα όμως που ακόμα και τα τεστ να περάσει (χωρίς να πληρώσει τίποτα) το Harmony δε πρόκειται να λέγεται Java (για το λόγο που είπαμε παραπανω). Βλέπετε μια αδικία εδώ ή μου φαίνεται;

Ο ASF πλέον όμως έχει πολύ δύναμη στο χώρο της Java. Ως ένα βαθμό μπορεί να επηρρεάσει της εξελίξεις των προδιαγραφών της Java (τα JSR). Αποφασίζει λοιπόν να μπλοκάρει την εξέλιξη της Java θέτοντας veto στο άνοιγμα νέων προδιαγραφών, ξεκινώντας απο spec της JEE6. Το προφανές επιχείρημα είναι "Όχι πια όλα της Sun". Σωστό; Ανώριμο;

Τελικά η Java τί είναι; Specification με το JDK της SUN σαν reference implementation, ή ένα οpen source but do not touch προϊόν;

Αυτοί είναι κάποιοι σκόρπιοι προβληματισμοί μου τελευταία, που φοβάμαι όμως ότι δε θα προβληματίσουν ιδιαίτερα την παρέα μου..

Ενδιαφέρουσες ερωτήσεις του στιλ 1) Γιατί να χαρίσεις κάτι; 2) Και τι έγινε που δεν έχεις τη στάμπα Java αν είσαι 100% συμβατός, 3) Αφού στο δίνουν τζάμπα το JCK γιατί δε το παίρνεις; 4) Γιατί χρειάζονται πάνω από μια Java implementations;
είναι πέρα για πέρα ευπρόσδεκτες αν και νομίζω ότι δε θα μπορώ να απαντήσω με τρόπο που θα γινόμουν κατανοητός ή θα έπειθα.

Labels:

3 Comments:

Blogger Dimitris Athanasiadis said...

Θα γράψω κι εγώ μερικές σκόρπιες σκέψεις πάνω στα politics (μιας κ επί της ίδιας της γλώσσας και τα τεχνικά της θέματα δεν ξέρω πολλά).

Το θέμα της αδικίας από τη μεριά της Sun το βλέπω από τη μία αλλά και από την άλλη μου φαίνεται κάπως irrelevant. Κι αυτό με την έννοια ότι η Sun που έφτιαξε τη Java μπορεί να βάλει ό,τι περιορισμούς θέλει στη διανομή της. Η κρίση αν αυτοί οι περιορισμοί είναι λογικοί (οπότε και όλοι θα κερδίσουν από κάτι) ή καταστροφικοί για τη Sun (ή τη Java) θα αποδοθεί από την 'αγορά' με την ευρύτερη έννοια του όρου - κατά πόσο θα έχει απήχηση δηλαδή το προϊόν της Sun όπως το έχει 'στήσει'. Εκεί φαίνεται το όποιο δίκαιο ή όχι. Δε νομίζω ότι υπάρχει κάποια άλλη υποχρέωση από τη μεριά της Sun.

Από την άλλη η κίνηση του ASF (όπως την κρίνω μόνο από το εδώ άρθρο) είναι μάλλον ανώριμη μιας και είτε η Java θα συνεχίσει να εξελίσσεται (απλά χαοτικά, χωρίς κάποια στάνταρ) ή απλά θα τα βάλει κάποιος άλλος τα στάνταρ (πχ η Sun;)

Γενικά είμαι κατά του να μείνει κάτι τόσο χρήσιμο όπως η Java 'κλειστή' ή τόσο κλειστή. Από την άλλη, 'κάπως πρέπει να ζήσει κι αυτή' (για να συνεχίσει να παρέχει της υπηρεσίες της). Οπότε ναι, έχει νόημα να χαρίσεις ένα τμήμα αυτού που έκανες για να μπορέσουν να επωφεληθούν κι άλλοι. Αυτό *θα* σου γυρίσει πίσω και πρέπει να είσαι έτοιμος να το εκμεταλευτείς με εναλλακτικά μέσα (αντί απλά εμπορευόμενος το) που θα επιτρέπουν ταυτόχρονα να εξελίσσεται (κι αυτό κι εσύ). Όπως τα παρουσιάζεις πάντως δεν τα έχει καταφέρει και τόσο καλά η Sun.

Tue Aug 21, 05:20:00 PM 2007  
Anonymous Anonymous said...

Για όποιον ενδιαφέρεται, υπάρχει και εδώ υλικό.

Sat Sep 01, 09:13:00 PM 2007  
Anonymous Anonymous said...

εδώ..
http://www.javalobby.org/java/forums/t100867.html

Sat Sep 01, 09:14:00 PM 2007  

Post a Comment

<< Home