Τα πράγματα με τη C++ είναι πολύ διαφορετικά από την VB και την PHP. Άσε που "αυτοματοποιημένη" συγγραφή προγραμμάτων στη VB δεν υπάρχει, εκτός και αν μένεις στους event handlers που δημιουργούνται όταν κάνεις double click σε ένα κουμπί.
Επιπλέον, η C++ ΔΕΝ χρησιμοποιείται για δημιουργία UI-centric εφαρμογών, εκτός και αν πρόκειται για πάρα πολύ ειδική περίπτωση (π.χ. δημιουργία UI για embedded συσκευή). Χρησιμοποιείται κατά κόρον όμως σε high-performance programming, system programming και δημιουργία βιβλιοθηκών. Γι αυτό και δεν υπάρχει σοβαρή προσπάθεια standardization (καθόλου για την ακρίβεια ...) στο τομέα του UI.
Καταρχήν, ΔΕΝ υπάρχει κάποιο cross-platform UI εκτός ίσως από το ... Qt. Το κάθε λειτουργικό παρέχει τους δικούς του μηχανισμούς για windowing και UI γενικότερα, ενώ στο Linux ο κάθε Windows Manager είναι σε ένα βαθμό και ξεχωριστός μηχανισμός. Άλλο το Gnome, άλλο το παλιό-καλό X11 και φυσικά, άλλο ο μηχανισμός των Windows. Εντελώς χονδρικά, όλα τα windows συστήματα βασίζονται σε παράθυρα και ανταλλαγή μηνυμάτων μεταξύ τους.
Από εκεί και πέρα όμως, τα πάντα διαφέρουν, είτε μιλάμε για τη δομή των μηνυμάτων, είτε για τον τρόπο αποστολής και λήψης. Δεν συζητάμε καν για το είδος των widgets, τις ή δυνατότητες τους.
Πάνω από αυτούς τους μηχανισμούς κάθονται τώρα οι διάφορες γλώσσες και frameworks. Τα frameworks χαμηλού επιπέδου όπως η MFC για τα Windows παρέχουν wrappers πάνω από τα χύμα handles και messages. Το Qt παρέχει abstraction ανωτέρου επιπέδου το οποίο προσπαθεί να κρύψει τις διαφορές μεταξύ των συστημάτων. Γλώσσες όπως η VB και η Java κρύβουν εντελώς τον μηχανισμό του message loop που υπάρχει από κάτω και παρέχουν πράγματα όπως τα events, τα οποία ΔΕΝ υπάρχουν στο ίδιο το λειτουργικό.
Για να καταλάβεις για τί μιλάμε, αν δοκιμάσεις να φτιάξεις μόνος σου το UI o κώδικας που θα πρέπει να γράψεις για τη διαχείριση του UI μπορεί να φτάσει στο 80% όλης της εφαρμογής. Το Qt, η VB, η Java θα σου κρύψουν το 75% αυτού του κώδικα.
Όσο για το IDE τώρα, εξαρτάται από το λειτουργικό σου και τον compiler που θέλεις να χρησιμοποιήσεις. Από τη στιγμή όμως που δεν μπορείς να κάνεις "cross-platform" debugging, είναι μάλλον ανούσιο να συζητάς για cross-platform IDE. Στα Windows, το Visual Studio είναι ίσως ο γρηγορότερος απ' όλους και μπορείς να ενσωματώσεις compilers για άλλα λειτουργικά, με δυσκολία όμως.
Για Linux δεν ξέρω, αλλά είμαι 100% σίγουρος ότι αν ανοίξεις ένα package manager και επιλέξεις τα εργαλεία για C++ θα σου βάλει τουλάχιστον 3-4 διαφορετικά IDE. Έχε υπόψη όμως ότι πολύς κόσμος χρησιμοποιεί τον editor που προτιμά (π.χ. Emacs) και βασίζεται σε command line για το compile και build management
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos