💾 Archived View for magaz.hellug.gr › 15 › 01_kdevelop › index.gmi captured on 2024-02-05 at 09:44:13. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Μιχάλης Καμπριάνης(mailto:kabrianis@hellug.gr) Απρ 1999
Το Kdevelop[1], είναι ένα Intergrated Development Environment που τρέχει σε Linux μηχανήματα με τις KDE libraries και την QT και έχει την δυνατότητα να παράγει C++ προγράμματα, τα οποία είτε στηρίζονται σε KDE, ή σε QT, ή τέλος απλά προγράμματα κονσόλας.
1: http://www.cs.uni-potsdam.de/~smeier/kdevelop/index.html
1. Εμφάνιση
2. Λειτουργία - Ευκολίες.
3. Visual
4. Τι λείπει...
5. Επίλογος
Το κεντρικό παράθυρο του Kdevelop χωρίζεται σε τρία επιμέρους παράθυρα. Επίσης έχει δύο toolbars, και βέβαια μία σειρά από μενού. Ας ξεκινήσουμε με τα υποπαράθυρα.
Το αριστερό τμήμα, έχει 4 ταμπέλες, με ονόματα CV (Class Viewer), LFV (Logical File Viewer), RFV (Real File Viewer) και DOC (Documentation Tree).
Στο Class Viewer βλέπουμε ιεραρχικά τις classes που έχει το πρόγραμμά μας, μαζί με τα elements της κάθε class, όπως constructor, destructor, functions που έχουμε φτιάξει εμείς, αλλά και τα δεδομένα. Έτσι έχουμε μία περιληπτική εικόνα μίας class που έχουμε δημιουργήσει, η οποία μπορεί να δημιουργεί τελικά 500-600 γραμμές κώδικα (constructor, functions κλπ). Το Application Wizard του Kdevelop έχει αναλάβει να μας φτιάξει τον ορισμό της Class σε ένα .h αρχείο, και την υλοποίηση σε ένα .cpp. Με ένα απλό κλικ πάνω σε ένα από τα elements, θα μεταφερθούμε στο δεξί παράθυρο, στο element αυτό. Αν κάνουμε κλικ πάνω σε ένα Class, ή σε μία μεταβλητή του class θα μεταφερθούμε στο header αρχείο, ενώ αν κάνουμε κλικ πάνω σε μία function θα μεταφερθούμε στο source αρχείο. Επίσης στο Class Viewer εμφανίζονται και οι global variables, functions και structures.
Στο Logical File Viewer βλέπουμε τα αρχεία που αποτελούν το project μας, χωρισμένα "θεματικά". Δηλαδή χωριστά τα sources, χωριστά τα headers, χωριστά το Documentation. Πάλι πατώντας σε κάποιο αρχείο, μεταφερόμαστε στο δεξί παράθυρο σε αυτό το αρχείο.
Στο Real File Viewer βλέπουμε όλα τα αρχεία όπως θα τα βλέπαμε από ένα File Manager, δηλαδή με το directory structure που είναι στον δίσκο μας.
Τέλος, στο Documentation Tree έχουμε το manual και το tutorial του Kdevelop, το documentation της QT-Library και των KDE-Classes, ένα C/C++ Reference και (φυσικά) το documentation του δικού μας project. Για να τα δούμε όλα αυτά βέβαια, πρέπει να έχουμε εγκαταστήσει και τα απαραίτητα αρχεία. Αντίστοιχα με όσα είδαμε προηγουμένως, ένα κλικ σε κάποιο στοιχείο, μας μεταφέρει στο δεξί παράθυρο, στο στοιχείο αυτό.
Το τμήμα αυτό ενεργοποιείται με τον συνδυασμό πλήκτρων Ctrl-T
Το δεξί τμήμα έχει επίσης 4 ταμπέλες, με ονόματα Header/Resource Fles, C/C++ Files, Documentation-Browser και Tools.
Ανάλογα με το τι έχουμε επιλέξει από το αριστερό παράθυρο, μεταφερόμαστε στο σχετικό τμήμα του δεξιού. Αν δηλαδή επιλέξουμε κάτι που πρέπει να μας στείλει σε ένα header θα βρεθούμε στο Header/Resource File τμήμα, ενώ αν επιλέξουμε μία Function, θα βρεθούμε στο C/C++ Files τμήμα. Τα δύο αυτά τμήματα είναι editable, ενώ το Documentation-Browser και το Tools είναι "Read-Only". Στο μεν Documentation-Browser βλέπουμε (όπως λέει και το όνομα) documentation, ενώ το Tools φαίνεται να είναι ένα Virtual παράθυρο, στο οποίο ανοίγουν κάποια εξωτερικά προγράμματα (πιο πολλά για αυτό παρακάτω).
Το τμήμα αυτό είναι πάντα ορατό και δεν μπορεί να απενεργοποιηθεί.
Τέλος, το τρίτο μέρος (το κάτω), έχει τρεις ταμπέλες με ονόματα STDIN, STDERR και STDOUT. Όπως καταλαβαίνετε και από τα ονόματα, είναι η είσοδος, έξοδος και error του προγράμματός μας (και από το λίγο που είδα, δεν κάνουν αυτόματο redirect αν το κάνουμε εμείς από το πρόγραμμα).
Το τμήμα αυτό ενεργοποιείται με τον συνδυασμό πλήκτρων Ctrl-G
Εξ ορισμού το Kdevelop ανοίγει με δύο toolbars, με το ένα να έχει τα κλασικά File Open, File Save, Open Project, Print File, Undo, Redo, Cut, Copy, Paste, και τα πιο ειδικά, Compile file, Make, Rebuild, Debug, Run και Context-sensitive Help. Όλα αυτά παρέχονται για ευκολία, αφού οι ίδιες επιλογές (και περισσότερες όπως θα περιμέναμε) παρέχονται στο menu-bar.
Το δεύτερο toolbar είναι πιο ειδικό, αφού παρέχει μία αντίστοιχη λειτουργία με το Class Viewer του αριστερού τμήματος της οθόνης.
Στα menus θα βρούμε τις επιλογές για να καλέσουμε τον Application Wizard, να προσθέσουμε ένα νέο αρχείο στο project μας, να δημιουργήσουμε μία νέα class, επίσης να "τρέξουμε" το autoconf, το configure ή να κάνουμε ένα απλό distclean, να δώσουμε execution arguments στο project μας, και τέλος να δημιουργήσουμε documentation. Υπάρχουν βέβαια όσες λειτουργίες υπάρχουν και στο πρώτο toolbar που αναφέραμε παραπάνω, καθώς και τα search, goto-line, configure (kdevelop, editor, printer, tools).
Πρόκειται για ένα interactive tool, το οποίο μας επιτρέπει μέσα από 6 βήματα, να δημιουργήσουμε τον σκελετό για την εφαρμογή μας. Οι επιλογές είναι Full KDE Application (με menu bar και toolbar), KDE mini-application (χωρίς menu bar και toolbar, μόνο τα βασικά Widgets του KDE για τη δημιουργία παραθυρικού περιβάλλοντος), QT application (με menu bar και toolbar, φτιαγμένα από Widgets της QT) και τέλος C/C++ application (καθόλου παραθυρικό interface).
Σε κάθε περίπτωση, ο Application Wizard δημιουργεί τη standard δομή αρχείων για την εφαρμογή μας, ένα main window αν πρόκειται για παραθυρική εφαρμογή, και "κανονίζει" τα autoconf, automake κλπ ούτως ώστε μόλις η εφαρμογή μας είναι έτοιμη να μπορεί να γίνει ένα tar.gz όπως όλες οι εφαρμογές για KDE που βλέπουμε και να μπορεί να διανεμηθεί.
Δίνοντάς του τα στοιχεία μας (ονοματεπώνυμο, e-mail, όνομα εφαρμογής, version εφαρμογής), μπορεί επίσης να μας δημιουργήσει templates, με ένα κάποιο standard κείμενο στην αρχή (το οποίο εμείς ορίζουμε), για τα sources και τα headers της εφαρμογής.
Επίσης δημιουργεί κάποια τυπικά αρχεία τα οποία περιέχονται (ή πρέπει να περιέχονται) σε κάθε εφαρμογή, όπως το README, ένα .lsm αρχείο, ένα changelog, ένα todo και ένα authors. Μόλις ο Application Wizard τελειώσει την δουλειά του, έχουμε και το Documentation του προγράμματός μας σχεδόν έτοιμο, εφόσον δημιουργεί και τον κορμό για αυτό.
Σε περίπτωση που κατεβάσουμε το QT documentaion, τα KDE-libs και το c/c++ reference που υπάρχει στην σελίδα του Kdevelop, το Kdevelop τα βρίσκει (είτε αυτόματα, ή με λίγη βοήθεια από εμάς και το configuration) και μας παρέχει τη δυνατότητα να έχουμε στα χέρια μας ένα πολύ ισχυρό εργαλείο, αφού έχουμε το documentation μέσα στην ίδια την εφαρμογή. Αν δε δεν βαριόμαστε και κατεβάσουμε και το glimpse, φτάνουμε στο σημείο να έχουμε και ένα real-time searching του documentation για λέξεις - κλειδιά, με την απλή επιλογή lookup που παρέχεται στο δεξί πλήκτρο του ποντικιού μας. Όλο το documentation είναι σε HTML format, με hyperlinks που παραπέμπουν στις αντίστοιχες κλάσεις και functions. Η χρησιμότητα αυτού είναι βέβαια εμφανής, και θα πάψει να είναι τόσο χρήσιμο μόνο για όσους έχουν ένα βιβλίο reference της QT.
Το Kdevelop συνεργάζεται άψογα με τα Kdbg, Kiconedit, Kdialog και Κdoc, σε περίπτωση βέβαια που τα έχουμε στον υπολογιστή μας εγκατεστημένα. Όλα αυτά τα εργαλεία μπορούν να κληθούν από το menu-bar, αφού πρώτα οριστούν από ένα Tools-configuration menu-item, και εφόσον κληθούν εκτελούνται στο τμήμα Tools του δεξιού παραθύρου της εφαρμογής. Το Kdbg που το δοκίμασα εκτενώς με ικανοποίησε απόλυτα, και σε ότι αφορά τις debugging λειτουργίες του (front-end για το gdb) αλλά και σε ότι αφορά το integration με το Kdevelop. Δοκίμασα επίσης το Kdialog, το οποίο είναι ο "visual dialog editor" για το KDE. Δεν ξέρω αν έκανα εγώ κάποιο λάθος (αρκετά πιθανό) αλλά το Kdialog μου φάνηκε "λίγο" για dialog editor. Οι επιλογές του είναι πολύ λίγες (δηλαδή τα widgets που παρέχει), αλλά πολύ promising. Έχει μόλις 7 QΤ-widgets, αλλά έχει property editor, και auto-generation του source code. Αν θυμηθούμε βέβαια ότι το Kdevelop είναι ακόμα σε Alpha έκδοση, και το KDialog παρέχεται μόνο στα snapshots (και όχι στην alpha-release) τα παραπάνω φαίνονται λίγο - πολύ λογικά.
Όχι, το KDevelop δεν είναι visual IDE, τουλάχιστον όχι όπως το έμαθα εγώ με την Visual Basic 1.0 του 1992 (το μόνο Visual κάτι που έχω δουλέψει, άρα το μόνο με το οποίο μπορώ να συγκρίνω). Αν περιμένετε drag and drop δημιουργία dialogs, θα χρειαστεί να περιμένετε μέχρι τουλάχιστον μία beta έκδοση. Από την άλλη μεριά, για πολύ "μπερδεμένα" dialogs μπορείτε να χρησιμοποιήσετε το QTarchitect, και για πολύ απλά, η QT είναι τόσο εύκολη, που μπορείτε να τα φτιάξετε με το χέρι...
Η μόνη σοβαρή παράλειξη που βρήκα, ήταν ένα CVS τύπου σύστημα, ενσωματωμένο μέσα στο Kdevelop. Πιστεύω ότι σε μετέπειτα εκδόσεις αυτό θα είναι διαθέσιμο, μια που είναι πολύ σημαντικό εργαλείο για όποιον γράφει κώδικα.
Το 1992 δοκίμασα την τότε Visual Basic έκδοση 1.0 Αν και ήξερα δυο τρία πράγματα από Basic, πρέπει να παραδεχτώ ότι είχα χάσει τον μπούσουλα. Ναι μεν έγραφα προγράμματα, ναι μεν εγώ (νόμιζα ότι) έγραφα τον κώδικα, αλλά και για την παραμικρή αλλαγή έπρεπε να ανοίξω την Visual Basic γιατί δεν καταλάβαινα τι και από που έπρεπε να το πειράξω... Με λίγα λόγια, μη γνωρίζοντας όσα έπρεπε για προγραμματισμό, κατάφερα να γράψω έναν file-manager!!! Έτσι, ποτέ δεν ήμουνα υπέρ των "Visual κάτι", γιατί πίστευα ότι "χαλάνε" την πιάτσα (και τους μισθούς) των προγραμματιστών (όχι, εγώ ΔΕΝ είμαι προγραμματιστής), δίνοντας την δυνατότητα στον κάθε άσχετο (όπως εγώ τότε) να φτιάξει κάτι. Αυτό όμως που παρέχει το Kdevelop το εκτίμησα, επειδή απλά μου γλύτωσε 2-3 ώρες που θα έπρεπε να φάω, για να φτιάξω τα standard αρχεία, τα templates κλπ. Μου "οργάνωσε" την δουλειά μου, κάτι πολύ χρήσιμο, τουλάχιστον για μένα!!! Επίσης, μου έδωσε τη δυνατότητα να μπορώ να ανατρέξω στο documentation της QT εύκολα και γρήγορα, απαιτώντας από εκεί και πέρα από εμένα, να καταλάβω τι είναι αυτά που διαβάζω... Με λίγα λόγια, το Kdevelop είναι για προγραμματιστές, ή για όσους σκαμπάζουν δυο-τρία πράγματα. ΔΕΝ είναι για να το πιάσει ένα παιδάκι και να "γράψει" μία εφαρμογή. Αν και πιστεύω ότι στις τελικές εκδόσεις θα φτάσει να είναι ένα τέτοιο πράγμα, (επαναλαμβάνω, δυστυχώς κατ' εμέ), πάλι θα είναι ένα ισχυρότατο εργαλείο για προγραμματιστές. Το προτείνω ανεπιφύλακτα στους απανταχού KDE-QT προγραμματιστές, με όσο βάρος μπορεί να έχει η γνώμη ενός hobbίστα προγραμματιστή.