Monday, May 21, 2007

Consumer Java Run Time και σκέψεις για τo μέλλον της Java στο desktop

Απο τις αρχές του 2000 θυμάμαι συζητήσεις στο theserverside και στο javalobby για το μικρό JRE. Τι είναι το μικρό JRE; Μια κομμένη έκδοση του Java Run time για τον υπολογιστή σου που μπορεί να έχει μέχρι και 60% μικρότερο μέγεθος κάνοντας πια την διαδικασία εγκατάστασης Java στο μηχάνημα σου πιο γρήγορο και εύκολη + φυσικα με όλα τα καλούδια when it comes to perfomance! Αν σε ενδιαφέρει το μέλλον της Java στο desktop (αν λέμε) τότε καλό ειναι να διαβάσεις τι γράφει o Chet Haase στο blog του για το τι έρχεται. Αν δεις κάποια στιγμή στην σελίδα λέει ότι μπορουν να κόψουν το μέγεθος του JRE μέχρι και 60%, για μια εφαρμογή όπως το Limewire χρειάζεσαι 3 φορές μικρότερο JRE φαντάζεσαι; Φυσικά θα υπάρχει και ένας έξυπνος μηχανισμός ο οποίος θα κατεβάζει αυτόματα κομμάτια του JRE τα οποία δεν θα είναι στο μικρό install, αλλά μπορεί να τα χρειάζεται η εφαρμογή σου! Ίσως αργά; Δεν ξέρω..αλλά η Sun φαίνεται ότι πραγματικά καταλαβαίνει τα αδύναμα σημεία της Java στο Desktop και προσπαθεί να αναστρέψει την κατάσταση. Μια τεχνολογία η οποία είναι dominant εργαλείο ανάπτυξης για enteprise εφαρμογές και μια τεράστια κοινότητα προγραμματιστών, μπορεί να αποτελέσει πολύ εύκολα μια καλή βάση για το come back στο desktop.

Επίσης μην ξεχνάτε το εξής...μπορεί να μην βλέπετε την Java στο desktop σας αρκετά (εξαιρέσεις το limewire η το Azureus) αλλά αυτό δεν σημαίνει οτι δεν βρίσκεται κάπου μεταξύ των service σας, να σας παρέχει υπηρεσίες, μέσα σε πολύπλοκες εφαρμογές απο την τράπεζα σας, την αεροπορική σας εταιρία, τα online shop σας. Είναι ενα γενικό misconception...για το που ειναι η Java, η Java είναι σε πολλά μέρη απλά δεν μπορείς να την δεις - αυτό δεν σημαίνει ότι δεν κάνει την δουλειά της - την κάνει και μάλιστα καλά!

Παράλληλα λοιπόν θα ήταν λάθος να πούμε..ααα ποιος δουλεύει Unix Linux σε αυτό τον κόσμο 90% των μηχανημάτων που βλέπω είναι Windows, true. Αλλά μην ξεχνάς ότι οι πιο πολλές διαδικτυακές enterprise ή μη εφαρμογές στον κόσμο τρέχουν πάνω σε διάφορες εκδόσεις Unix και Linux, δεν μπορείς να πεις ότι αυτά τα λειτουργικά δεν υπάρχουν, υπάρχουν και παρά υπάρχουν και είναι η κινητήρια δύναμη πολλών πραγμάτων που εμείς στο desktop ως clients θεωρούμε δεδομένα.

Είμαι ένας server side Java Developer , παρόλα αυτά αισθάνομαι ικανοποίηση που η πλατφόρμα της επιλογής μου προσπαθεί να εξελιχθεί και να διορθώσει λάθη απο το παρελθόν, η και να δημιουργήσει νέες αγορές η νέες δουλειές για μένα! Αυτό που χρειάζεται είναι και λίγο βοήθεια απο εμάς λιγο πιο καλή ενημέρωση.

Πριν 3 μέρες ένας συνάδελφος ήθελε να τρέξει μια Java εφαρμογή στο Fedora workstation του. Δεν είχε ιδιαίτερη σχέση με την Java και φυσικά υιοθετούσε την άποψη (όχι άδικα) πω πω το desktop app σε Java ειναι αργό! Πρόσεχε όμως τι κάνει η κακή ενημέρωση. Βάζει λοιπόν την εφαρμογή, με defautl JVM στο linux το ημιτελές GNU Java (GCJ, κτλ κτλ), η φυσικα το αποτέλεσμα που έβλεπε ήταν άθλιο! Όταν για αστείο μου είπε, έλα να δεις πως σέρνεται η Java, ένιωσα λίγο παράξενα μιας και ηξερα ότι ειχε καλό μηχάνημα και θα περίμενα να παίζει τουλάχιστον decent κάθε Java application. Βλέπω το χάλι που έβλεπε και αυτός και στο terminal που είχε ανοιχτό γράφω java -version..βουαλά GNU μπλα μπλα μπλα! Μετά από λίγο και σύντομη ενημέρωση για το τι προσπάθησε να κανει η GNU java, σε τι κατάσταση είναι η Java τώρα, εγκατέστησε την Java Run Time 1.6 και την επόμενη μέρα ομολόγησε ότι τα πράγματα δεν είναι τόσο άσχημα in fact ήταν αρκετά καλά!

Αν είσαι Java developer δεν είναι κακό να ενημερώνεις ολους αυτούς που έχουν μια ξεχασμένη άποψη για την Java και για το πόσα πολλά βήματα έχει κάνει τα τελευταία 5 χρόνια! Δεν μπορείς να πιστέψεις πόσος κόσμος υπάρχει εκεί έξω που νομίζει ότι επειδή δεν βλέπει Java στο desktop του, δεν υπάρχει πουθενά Java, η πόσος κόσμος κολλημένος στο τρυπάκι η Java είναι αργή δεν καταλαβαίνει ότι οι επιδόσεις της ειναι αρκετά decent ακόμα και σε desktop περιβάλλον. Την επόμενη φορά που θα πατήσεις το Buy now or Book now θυμήσου ότι κατα πάσα πιθανότητα ένα χαμογελαστό EJB κάπου μέσα σε κάποιο σκοτεινό μαύρο Unix box θα σε εξυπηρετήσει....;)


Viva la Java!



2 comments:

  1. "Δεν μπορείς να πιστέψεις πόσος κόσμος υπάρχει εκεί έξω που νομίζει ότι επειδή δεν βλέπει Java στο desktop του, δεν υπάρχει πουθενά Java, η πόσος κόσμος κολλημένος στο τρυπάκι η Java είναι αργή δεν καταλαβαίνει ότι οι επιδόσεις της ειναι αρκετά decent ακόμα και σε desktop περιβάλλον"

    nai re gmt, apo marketing sto tomea tou aplou xrhsth den paei katholou kala!elpizw na alaksei to prama!

    ReplyDelete
  2. Το βασικό πρόβλημα της Java δεν είναι τόσο το μέγεθος του JRE το οποίο αφ'ενός εγκαθιστάται μια φορά, αφ'ετέρου τώρα που η Java είναι Open Source μπορεί να συμπεριλαμβάνεται σε περισσότερα λειτουργικά συστήματα (βλ. linux, *BSD, κλπ.) χωρίς νομικά ή τεχνικά προβλήματα. Τέλος με τις όλο και γρηγορότερες συνδέσεις δεν είναι τίποτα το να κατεβάσεις το JRE.

    Εκεί που έχεις απόλυτο δίκιο είναι το θέμα της επίδοσης. Όμως τα προβλήματα της Java στο desktop, όπως σωστά γράφεις, λίγο έχουν να κάνουν με την επίδοση της Java αυτής καθεαυτής αλλά με την επίδοση του Swing (και σε κάποιο βαθμό του SWT) καθώς και τις δυνατότητες των toolkits αυτών, οι οποίες μέχρι στιγμής δεν έχουν να επιδείξουν κάτι το αξιόλογο ούτε συγκρίνονται με τη δουλειά που έχει πέσει σε άλλους τομείς της πλατφόρμας, π.χ. το VM, το J2EE. Με την 6 κάτι πάει να γίνει και αν αποτελέσει προτεραιότητα ίσως να έχουν κάτι πραγματικά εντυπωσιακό σε 2 ή 3 χρόνια.

    Συμφωνώ επίσης πως η Sun φαίνεται να προσπαθεί να διορθώσει τα κακώς κείμενα στη σχέση Java-Desktop (κάτι που έπρεπε να είχε κάνει από το 1999-2000) αλλά δεν είμαι βέβαιος πως κατανοεί επαρκώς τα προβλήματα της πλατφόρμας σε σχέση με τον ανταγωνισμό αλλά και το state of the art, ούτε πως μπορεί να το καταφέρει δεδομένου πως πλέον η Microsoft αλλά και πληθώρα γλωσσών-πλατφόρμων ανοιχτού λογισμικού έχουν να προσφέρουν ιδιαίτερα ελκυστικές λύσεις για πολλά προβλήματα που ίσως κάποτε θα απαιτούσαν τη χρήση της Java. Τέλος μη ξεχνάμε πως ολοένα και μεγαλύτερο μέρος της desktop καθημερινότητας κατοικεί στο Web 1.01. :)

    Ελπίζω πραγματικά η Sun να καταφέρει να καταστήσει τη Java μια από τις βασικές επιλογές για ανάπτυξη λογισμικού desktop (σήμερα σε καμία περίπτωση δεν αποτελεί βασική επιλογή για τη συντριπτική πλειοψηφία). Είμαι όμως πραγματιστής: Φοβάμαι πως θα είναι πολύ δύσκολο, πως είναι σχετικά αργά και πως θα χρειαστεί σημαντική αναθεώρηση των 'βολικών' συμβάσεων, τόσο από πλευράς βιβλιοθηκών όσο και από πλευράς επαναπροσδιορισμού των προτεραιοτήτων ανάπτυξης της πλατφόρμας, κάτι που η Sun αμφιβάλλω αν διατίθεται (δεδομένης της σημασίας του J2EE στο bottom line της) ή μπορεί να κάνει επαρκώς (δεδομένης της παντελούς έλλειψης εμπειρίας και ικανότητας στο desktop) ώστε να προσφέρει κάτι πραγματικά ανταγωνιστικό για το desktop σήμερα.

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

    ReplyDelete