Qt Jambi

Εδω και μερικες μερες ασχολουμαι με το Qt Jambi που ειναι ουσιαστικα η υλοποιηση του Qt framework για Java. Για οσους non-techies αποφασισουν να συνεχισουν να διαβαζουν, το Qt ειναι η τεχνολογια στην οποια εχει βασιστει η αναπτυξη του KDE, ενος απο τα δυο κυριοτερα desktop environments για unix-like λειτουργικα συστηματα, οπως το λινουξ. Εκτος απο το KDE, το Qt εχει χρησιμοποιηθει και σε δημοφιλη εμπορικα προγραμματα οπως το Skype και το Google Earth.

Το Qt Jambi ερχεται να προστεθει στη συλλογη των widget tooklits για Java, οπως το Swing και το SWT. To Jambi, παει και λιγο παραπερα απο το να ειναι ενα windowing toolkit και περιεχει και μια σειρα απο βιβλιοθηκες σχετικες με SQL, xml και αλλα. Αυτο βεβαια μπορει να ειδωθει και σαν ξανα-ανακαλυψη του τροχου, αλλα οι πολλες επιλογες ποτε δεν εβλαψαν κανεναν. Την ιδια στιγμη, λειτουργει και σαν γενικο γραφικο toolikt για Java, ενω περιεχει και βιβλιοθηκες για 3d (αν δεν κανω λαθος, για OpenGL).

Το SWT δεν εχει τυχει να το δουλεψω, αλλα εχω δουλεψει με το Swing. Το Qt Jambi, με εξεπληξε με την απλοτητα και τη δυναμη του. Σε αντιθεση με το Swing που λειτουργει με το συστημα των listeners, το Qt —και αρα και το Qt Jambi— χρησιμοποιει ενα συστημα που το ονομαζουν "Signals and Slots" στο οποιο το widget που εκπεμπει ή λαμβανει ενα signal δεν ενδιαφερεται να ξερει πού ή απο πού παει ή ερχεται το signal. Απλα "συνδεουμε" ενα signal σε ενα slot (ουσιαστικα, δηλωνουμε ποια μεθοδος καλειται οταν εμφανιζεται ενα signal) και τελειωνουμε.



Ιδιαιτερη εντυπωση μου εκανε και ενα συγκεκριμενο χαρακτηριστικο του Qt Jambi, ο τροπος με τον οποιο μπορει να εχει προσβαση σε διαφορα resources του προγραμματος, οπως πχ εικονες κτλ. Εκει που παραδοσιακα στη Java θα γραφαμε:
Image img = Toolkit.getDefaultToolkit().createImage(
ClassLoader.getSystemResource(”images/logo.png“));

Στο Jambi πεταμε ενα:
QImage img = new QImage("classpath:images/logo.png");
και τελειωνει η ιστορια!

Επισης, πολυ ενδιαφερον χαρακτηριστικο του ειναι το οτι μπορει να φορτωνει μια σειρα απο διαφορετικα "skins" ωστε να παιρνει το look-and-feel ειτε των Windows, ειτε του MacOS, του KDE, του GNOME, μεχρι και Motif, CDE κτλ. Ταυτοχρονα, υποστηριζει και ενα ακομα ενδιαφερον feature, κατι σαν css για widgets.

Για αναπτυξη με Jambi, μπορει κανεις να κατεβασει και να εγκαταστησει ενα plugin για το Eclipse, το οποιο παρεχει και integration του Qt Designer μεσα στο Eclipse.

Το Jambi βρισκεται στο κλασικο licensing scheme της Trolltech, και ειναι διαθεσιμο και υπο την GPL αλλα και με proprietary license, για εμπορικο development. Η τελευταια εκδοση του εγινε στις 26 Απριλιου και ειναι ακομα σε beta σταδιο, με την stable εκδοση να την περιμενουμε μεσα στον Ιουνιο.

Tελος, μια σημειωση. Το beta του Qt Jambi προκειται ουσιαστικα για Qt4. Απο οσο επαιξα μαζι του, ειναι απιστευτα cool (που να δειτε τι κανει με τα dockables). Μετα απο αυτο που ειδα, πραγματικα περιμενω με μεγαλη ανυπομονησια το KDE4...