Sunday, September 09, 2007

Τρέξε όσο γρήγορα μπορείς: Grails

Το δίκτυο περνά 2η άνοιξη. Έχεις ιδέες, θες να τις υλοποιήσεις, δεν έχεις λεφτά, θες να βγάλεις, αλλά δεν προλαβαίνεις να ρίξεις στην αγορά την ιδέα σου. Πιστεύεις ότι χρειάζεσαι λεφτά, αλλά δεν χρειάζεσαι. Ξέρεις Java αλλά σου τη σπάει ότι για να φτιάξεις πχ μια στοιχειώδη web εφαρμογή του στυλ: Οργανώνω τα CD μου, οργανώνω τις συνταγές μου, τα βιβλία μου, τις επαφές μου κτλ χρειάζεσαι γύρω στις 5000 γραμμές κώδικα (Java+XML), κατέβασμα πολλών βιβλιοθηκών, σετάρισμα server, ενορχήστρωση των 10+ frameworks που θα χρειαστείς:
  • Hibernate(period)
  • Tomcat OR Jetty OR JBoss
  • Struts(μπλιαχ) OR JSF(double μπλιαχ) OR Tapestry (χμ..) OR WebWork(ουφ)
  • Spring anyone?
  • Junit OR TestNG
  • Tiles OR Sitemesh
  • MySQL OR Derby OR HSQLDB OR ...
  • JSPs? Facelets?
  • REST OR SOAP, JAX-WS OR Axis
  • Ant OR Maven OR Let Eclipse decide
  • (Packaging, Deploying, Starting, Stopping, Fixing, Repackaging, Redeploying, Restarting, Restopping, Refixing)+
  • AJAX? Ας μην γράψω άλλα τόσα μόνο για αυτό το bullet.
Ε, εντάξει το κούρασα δε τα χρειάζεσαι όλα αυτά για να φτιάξεις τα CD σου, από την άλλη πλευρά όμως κατά τη διαδικασία του development κάτι από όλα θα σου λείψει, αλλά θα είναι πολύ σπασμένος για να το κάνεις integrate. Και ίσως αναρωτηθείς "Γιατί δε το έκανα σε PHP;" (και μάλλον θα απαντήσεις ότι το έκανες σε Java γιατί ήθελες να το κάνεις σε Java, έτσι από άποψη).

Δοκίμασε Grails!!! Δε λέω τίποτα περισσότερο, ψάξε το μόνος σου και πες μου.

Labels:

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: