Προγραμματισμός

Μια πρώτη ματιά στο JBuilder IDE του Borland

Τον Ιούνιο του 1995, όταν άκουσα για πρώτη φορά ότι ο Borland επρόκειτο να φτιάξει ένα εργαλείο Java, ήμουν πολύ ευχαριστημένος. Η Borland ήταν η μόνη εταιρεία που έβαλε τέρμα στο franchise της Visual Basic που είχε δημιουργήσει η Microsoft. Επιπλέον, το περιβάλλον ανάπτυξης των Δελφών του Borland θεωρείται από πολλούς (συμπεριλαμβανομένου του εαυτού μου) ως το καλύτερο εργαλείο ταχείας ανάπτυξης εφαρμογών (RAD) στην αγορά. Έτσι, με ενθουσιασμό αγόρασα το Borland C ++ 5.0 με υποστήριξη Java στα τέλη του 95.

Δυστυχώς, η προσπάθεια του Borland άφησε πολλά να είναι επιθυμητά. Ένα από τα μεγαλύτερα μειονεκτήματα του προϊόντος ήταν ότι η υποστήριξη Java ήταν μια πρόσθετη μονάδα στο C ++, αντί να είναι από μόνη της ένα εργαλείο. Το πρόβλημα με αυτήν την προσέγγιση είναι ότι η Java δεν μοιάζει πολύ με το C ++ όσον αφορά τις μονάδες συλλογής, τα αρχεία αντικειμένων και τους στόχους συλλογής. Στην Java μπορείτε να μεταγλωττίσετε ένα αρχείο κλάσης σε ένα αντικείμενο που μπορείτε να δημιουργήσετε άμεσα με άλλα αντικείμενα που βρίσκονται ήδη στο σύστημα. Δεν υπάρχουν στόχοι ".exe" και ".dll", που είναι το μοντέλο που χρησιμοποιείται από το γενικό C ++ IDE. Έτσι, τα μαθήματα οικοδόμησης ήταν δυσκίνητα, η τεκμηρίωση ήταν σχεδόν ανύπαρκτη και η εμπειρία ήταν εντελώς μη ικανοποιητική. Ο μεταγλωττιστής C ++ λειτούργησε πολύ καλά.

Στα τακούνια του πρόσθετου C ++, η λέξη έβγαλε γρήγορα για το "Latte", το όνομα κωδικού για ένα περιβάλλον IDE στο οποίο οι μηχανικοί από την ομάδα των Δελφών επρόκειτο να δουλέψουν και αυτό γράφτηκε εντελώς στην Java. Το φιλόδοξο έργο αντιμετώπισε καθυστερήσεις. Επίδειξη στο πρώτο JavaOne Developer Conference στο Σαν Φρανσίσκο το 1996 και στη συνέχεια ξανά στο JavaOne '97. Τέλος, κυκλοφόρησε ως JBuilder.

Μια γρήγορη περιοδεία του JBuilder

Το JBuilder μοιράζεται πολλά κοινά θέματα με τον κόσμο των Δελφών και αισθάνεται αρκετά παρόμοιο με τα εργαλεία του Symantec Visual Cafe. Έτσι ήταν εύκολο να ξεκινήσω με το JBuilder - ακόμη και χωρίς να διαβάσω την παρεχόμενη τεκμηρίωση. (Οταν εγώ έκανε έχετε μια ερώτηση, η τεκμηρίωση ήταν αρκετά πλήρης όσον αφορά την περιγραφή των διαθέσιμων επιλογών.)

Το περιβάλλον αποτελείται από μια "γραμμή ελέγχου", η οποία είναι ένα κινούμενο παράθυρο γραμμής εργαλείων, ένα "παράθυρο περιήγησης" με ένα στρωμένο δέντρο ελέγχου στα αριστερά και ένα παράθυρο προβολής στα δεξιά. Υπάρχει μόνο μία γραμμή ελέγχου, αλλά πολλά παράθυρα του προγράμματος περιήγησης μπορούν να ανοίξουν.

Η γραμμή ελέγχου, που φαίνεται παρακάτω, αποτελείται από τις τυπικές εντολές μενού στην κορυφή, μια παλέτα εργαλείων στα αριστερά που παρέχουν συντομεύσεις στα στοιχεία μενού και μια συλλογή στοιχείων (JavaBeans) που είναι διαθέσιμα για χρήση στην οπτική σας εφαρμογή ή μικροεφαρμογή. Κάτω από την παλέτα εργαλείων και τα στοιχεία υπάρχει μια γραμμή κατάστασης που ενημερώνεται με οποιαδήποτε δραστηριότητα λαμβάνει χώρα την τρέχουσα ώρα.

Το παράθυρο του προγράμματος περιήγησης εμφανίζεται παρακάτω. Αυτό το παράθυρο είναι το σημείο όπου αλληλεπιδράτε με τον πηγαίο κώδικα, είτε HTML είτε Java. Πάνω από αυτήν είναι η γραμμή ελέγχου, η οποία σας επιτρέπει να ξεκινήσετε ενέργειες (όπως μια ανακατασκευή) και διατηρεί τις συλλογές σας JavaBeans για χρήση στις δικές σας εφαρμογές. Επιπλέον, κάθε παράθυρο του προγράμματος περιήγησης μπορεί να εμφανίσει ένα έργο που βρίσκεται σε αυτό, οπότε αν εργάζεστε σε πολλά έργα - όπως ένα νέο JavaBean και μια εφαρμογή που το χρησιμοποιεί - μπορείτε να ανοίξετε και τα δύο έργα ταυτόχρονα και να μετακινηθείτε εύκολα μεταξύ τους . Αυτή η ικανότητα με εντυπωσίασε καθώς υποστηρίζει την πιο κοινή μορφή ανάπτυξης Java, αλλάζοντας πολλά διαφορετικά κομμάτια ταυτόχρονα. Σε ένα παράθυρο του προγράμματος περιήγησης μπορεί να υπάρχει ένα έργο κλάσεων βοηθητικών προγραμμάτων, σε ένα άλλο πρόγραμμα περιήγησης η μικροεφαρμογή που χρησιμοποιεί αυτές τις κλάσεις και σε ένα τρίτο ένα σύνολο σελίδων HTML που χρησιμοποιούν τη μικροεφαρμογή.

Το παράθυρο του προγράμματος περιήγησης χωρίζεται κάθετα - με την προβολή δέντρου αρχείων στα αριστερά και το πρόγραμμα προβολής στα δεξιά. Η κάθετη διάσπαση ονομάζεται "κουρτίνα". Η διεπαφή χρήστη του Borland σάς επιτρέπει να αφαιρέσετε την κουρτίνα όταν θέλετε μια προβολή πλήρους οθόνης του πηγαίου κώδικα στον οποίο εργάζεστε. Κάτω από κάθε μισό παράθυρο του προγράμματος περιήγησης υπάρχουν καρτέλες ελέγχου που αλλάζουν τη σημασιολογία της ίδιας της προβολής.

Κατά την προβολή του πηγαίου κώδικα Java, οι καρτέλες στο πρόγραμμα προβολής-μισό του προγράμματος περιήγησης φέρουν ετικέτα πηγή, σχέδιο και έγγραφο.

  • Η καρτέλα προέλευσης εμφανίζει απλώς τον πηγαίο κώδικα και μπορείτε να τον επεξεργαστείτε χρησιμοποιώντας τον επεξεργαστή επισήμανσης σύνταξης που περιλαμβάνεται.

  • Η καρτέλα σχεδίασης εμφανίζει έναν οπτικό χώρο εργασίας όπου υπάρχουν όλες οι πληροφορίες διεπαφής χρήστη που έχετε ορίσει. Έτσι, για παράδειγμα, εάν ο πηγαίος κώδικας σας είχε ορισμούς πίνακα, κουμπιά και ούτω καθεξής, αυτός ο πίνακας είναι η περιοχή μεταφοράς και απόθεσης όπου μπορείτε να συνθέσετε αυτές τις πληροφορίες.

  • Η καρτέλα doc σας δείχνει το έγγραφο HTML που δημιουργείται από τα ένθετα σχόλια στον πηγαίο κώδικα. Το έγγραφο HTML μπορεί να εξαχθεί χρησιμοποιώντας JavaDoc, ωστόσο, δεν υπάρχει αυτοματοποιημένος τρόπος που θα μπορούσα να βρω για να δημιουργήσω αυτό το έγγραφο.

Ίσως μια από τις πιο έξυπνες πτυχές της εφαρμογής του προγράμματος περιήγησης είναι ότι όταν περιηγείστε σε ένα αρχείο τάξης, το πρόγραμμα περιήγησης διαβάζει στο αρχείο κλάσης και το αποκωδικοποιεί αρκετά ώστε να σας δείξει τη δομή του πηγαίου κώδικα. Αυτό μπορεί να είναι πολύ χρήσιμο αν είστε συνηθισμένοι στην ανάγνωση της πηγής, αντί να κοιτάτε ένα διάγραμμα αντικειμένων. Επιπλέον, όταν επιλέγετε οποιαδήποτε από τις τυπικές κλάσεις Java ή τις προσαρμοσμένες κλάσεις Borland, κάνοντας κλικ στην καρτέλα doc θα επιστρέψει η σελίδα JavaDoc για αυτήν την κλάση. Αυτό σας επιτρέπει να κάνετε πράγματα όπως: επισημάνετε μια κλάση συστήματος, επιλέξτε "αναζήτηση επιλεγμένου συμβόλου" και δείτε τόσο την ανακατασκευασμένη πηγή είτε την τεκμηρίωση για την τάξη. Προτιμώ αυτή τη μέθοδο, η οποία διατηρεί τη μορφοποίηση HTML που είναι ενσωματωμένη στα δεδομένα JavaDoc, σε συστήματα που μετατρέπουν την τεκμηρίωση Java σε αρχεία "βοήθειας" της Microsoft.

Το πρόγραμμα εντοπισμού σφαλμάτων JBuilder

Φυσικά, η σύνταξη κώδικα είναι εύκολη. Είναι δύσκολο να δουλέψει. Ίσως το πιο σημαντικό χαρακτηριστικό για οποιοδήποτε IDE είναι το πρόγραμμα εντοπισμού σφαλμάτων. Ευτυχώς, το πρόγραμμα εντοπισμού σφαλμάτων Borland JBuilder δεν απογοητεύει. Παρακάτω εμφανίζεται ένα στιγμιότυπο οθόνης του προγράμματος εντοπισμού σφαλμάτων.

Κατά τον εντοπισμό σφαλμάτων, το παράθυρο του προγράμματος περιήγησης ρυθμίζεται ξανά ώστε να υποστηρίζει την εξέταση της κατάστασης της τάξης σας. Η προβολή δομημένου αρχείου δέντρου χωρίζεται σε ένα ανώτερο παράθυρο που περιέχει την κατάσταση του νήματος και ένα κάτω παράθυρο που περιέχει πληροφορίες σχετικά με τις ενεργές μεταβλητές. Επίσης, το αριστερό μισό του προγράμματος περιήγησης αποκτά ορισμένα πρόσθετα στοιχεία ελέγχου καρτελών στο κάτω μέρος που ελέγχουν τη λειτουργία του προγράμματος εντοπισμού σφαλμάτων.

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

Κατά μήκος της αριστεράς πλευράς του παραθύρου προέλευσης, μικρές κουκκίδες υποδεικνύουν γραμμές όπου μπορούν να εγκατασταθούν σημεία διακοπής. Κάνοντας κλικ στην κουκκίδα επισημαίνεται η γραμμή και εμφανίζεται το σύμβολο του σημείου διακοπής. Ένα άλλο χρήσιμο χαρακτηριστικό είναι το "run to δρομέα" - για εκείνες τις στιγμές που δεν θέλετε να κάνετε ένα βήμα σε κάθε επανάληψη του a Για βρόχος. Απλώς κάντε κλικ στη γραμμή, επιλέξτε "run to δρομέα" και η εκτέλεση σταματά εκεί.

Χειρισμός εξόδου

Μια τελευταία περιοχή στην οποία βρήκα το JBuilder να είναι ιδιαίτερα χρήσιμο ήταν ο χειρισμός της εξόδου από την εκτέλεση μιας εφαρμογής Java. Το αρχείο καταγραφής εκτέλεσης είναι ένα παράθυρο που περιέχει όλα τα δεδομένα που αποστέλλονται System.out από την τρέχουσα εκτέλεση. Ωστόσο, όταν είναι ανοιχτά πολλά έργα, το αρχείο καταγραφής εκτέλεσης διατηρεί ξεχωριστές καρτέλες για κάθε έργο! Ένα παράδειγμα αυτού φαίνεται παρακάτω.

Όπως μπορείτε να δείτε στην εικόνα υπάρχουν δύο καρτέλες, μία για το "παράδειγμα" και μία για "ΒΑΣΙΚΗ", το τρέχον έργο. Αυτός ο διαχωρισμός είναι απαραίτητος κατά την κατασκευή πολλαπλών βιβλιοθηκών τάξης ταυτόχρονα, επειδή σας εμποδίζει να συνδυάζετε την έξοδο από τα δύο έργα.

Αυτό που μου αρέσει για το JBuilder

Μερικές φορές είναι τα μικρά πράγματα. Εγώ Πραγματικά έτσι μπορεί κανείς να εκτυπώσει τον πηγαίο κώδικα Java σε έναν έγχρωμο εκτυπωτή και να τον βγει με τις γραμματοσειρές και τη σύνταξη που ανέφερε άθικτα. Εάν μπορούσα να προσαρμόσω τις κεφαλίδες και τα υποσέλιδα της σελίδας και να ορίσω μια έξοδο "δύο προς τα πάνω" (δύο σελίδες του πηγαίου κώδικα που εκτυπώνονται δίπλα-δίπλα σε μια οριζόντια σελίδα εξόδου), θα ήταν τέλεια.

Η υποστήριξη για το Java 1.1 είναι πολύ ωραία. Ενώ το JDK 1.1 βγαίνει για λίγο, και η Symantec είχε υποστήριξη beta για 1.1, δεν υπάρχει τίποτα σαν να έχουμε ένα IDE που έχει σχεδιαστεί από το μηδέν μέχρι να λειτουργεί με το 1.1.

Όπως ανέφερα νωρίτερα, το πρόγραμμα εντοπισμού σφαλμάτων είναι επίσης πολύ ωραίο: Δίνει μεγάλη ποσότητα πληροφοριών με έναν εύκολο στην κατανόηση τρόπο. Μεγάλο μέρος του εντοπισμού σφαλμάτων είναι στυλ "point-and-shoot", το οποίο μερικοί χρήστες συμπαθούν (το κάνω) και κάποιοι όχι (πιστεύοντας ότι το "gdb" σημαίνει το DeBugger του Θεού). Πιστεύω ότι αρκεί να βρείτε ακόμη και τα πιο δύσκολα σφάλματα αδιεξόδου νήματος.

Αυτό που δεν μου αρέσει για το JBuilder

Το διαμορφώσιμο IDE του JBuilder δεν είναι πραγματικά διαμορφώσιμο με δύο κρίσιμους τρόπους:

  • Πρώτον, δεν μπορείτε να ορίσετε τα προεπιλεγμένα χρώματα φόντου και προσκηνίου στην οθόνη. Αντ 'αυτού, πρέπει πρώτα να τα ορίσετε για ολόκληρη την επιφάνεια εργασίας σας και στη συνέχεια το JBuilder θα παρατηρήσει τις αλλαγές. Μπορείτε, ωστόσο, να τα ρυθμίσετε χρησιμοποιώντας μερικά από τα "κονσερβοποιημένα" χρώματα τους.

  • Το δεύτερο σοβαρό ελάττωμα είναι ότι δεν μπορείτε να προσαρμόσετε τα πλήκτρα του συντάκτη. Οι δύο αγαπημένοι μου συντάκτες από αυτή την άποψη είναι το EMACS και ο Επεξεργαστής αρχείων του προγραμματιστή (PFE). Η καρτέλα προσαρμογής του προγράμματος επεξεργασίας του JBuilder συνίσταται στο ότι είναι σε θέση να επιλέξει ορισμένες αντιστοιχισμένες αντιστοιχίσεις κλειδιών - προεπιλογή, Brief, Classic και Epsilon - και δυνατότητα επιλογής του τρόπου με τον οποίο λειτουργούν πράγματα όπως αυτόματη εσοχή, επισήμανση και ολοκλήρωση. Ψάχνω ακόμα το πρόγραμμα επεξεργασίας που σας επιτρέπει να ορίσετε πακέτα μακροεντολών στην Java.

Στον τομέα της παρουσίασης, το JBuilder πάσχει από μερικά απλά σφάλματα που αναμένω ότι θα διορθωθούν στην πρώτη έκδοση patch. Για παράδειγμα, εάν η επιφάνεια εργασίας σας έχει επιλέξει "Μεγάλες γραμματοσειρές" (το οποίο η Microsoft επιμένει σημαίνει να πάρει το Arial 10 και να τον "πολλαπλασιάσει" με κάποιο παράγοντα), ο υπολογισμός για το πόσος χώρος απαιτείται από τα διαλείμματα της γραμμής εργαλείων και τα εικονίδια των βιβλιοθηκών στοιχείων μακριά από. Εάν, από την άλλη πλευρά, ορίσετε τις εμφανίσεις γραμματοσειρών ρητά στην ενότητα "Εμφάνιση" των ιδιοτήτων της επιφάνειας εργασίας σας, όπως 14rial Arial, τότε η γραμμή στοιχείων αποδίδεται σωστά. Είναι σαφές ότι είναι ένα bogosity της Microsoft (όπου μια γραμματοσειρά 10pt δεν αποδίδεται πάντα ως γραμματοσειρά 10pt), αλλά οι λαοί στο Borland πρέπει να το αντιμετωπίσουν.

Ένας άλλος τομέας που δεν μου αρέσει για όλα τα IDE για Java είναι η εξάρτηση από τη δική τους "προσαρμοσμένη" εικονική μηχανή Java για ανάπτυξη. Ελπίζω ότι στο μέλλον, τα IDE θα μπορούν να χρησιμοποιηθούν με το τυπικό Java Runtime Environment (JRE) και μερικές προσαρμοσμένες βιβλιοθήκες. Κανείς δεν το έχει κάνει ακόμα.

Αυτό που εύχομαι να είχε

Φυσικά, κανένα προϊόν δεν είναι τέλειο για όλους, οπότε αυτό που θα ήθελα να δω μπορεί να θεωρηθεί θόρυβος για άλλους ανθρώπους. Αλλά, με το πνεύμα να μιλήσω, αυτά είναι τα τρία κορυφαία πράγματα που θα ήθελα να δω στο JBuilder (ή οποιοδήποτε ισχυρό IDE για αυτό το θέμα):

  • Λεπτότερος έλεγχος διαμόρφωσης IDE - αντιστοιχίσεις πλήκτρων, χρώματα εμφάνισης και διάταξη

  • Υποστήριξη προφίλ στο πρόγραμμα εντοπισμού σφαλμάτων - εντοπισμός κλήσεων / χρονισμός, χρήση σωρών, χάρτες σκουπιδιών και ούτω καθεξής

  • Έλεγχος πηγαίου κώδικα - αυτή είναι μια περιοχή όπου η Java είναι αδύναμη (έλεγχος έκδοσης) και ένα έξυπνο σύστημα ελέγχου που σημείωσε πότε άλλαξε η σύμβαση (ασυμβίβαστη αλλαγή κλάσης) και τι άλλαξε πότε, θα ήταν πραγματική απόλαυση

Τυλίγοντας

Το εργαλείο JBuilder είναι μια πολύ ικανή είσοδος στην ολοένα και πιο πολυσύχναστη αγορά IDE. Παρέχει εξαιρετική ικανότητα σε ορισμένα μέρη - όπως JavaBeans, εντοπισμός σφαλμάτων, πολλαπλά έργα και σχεδιασμός διεπαφής χρήστη. Αυτή η έκδοση του JBuilder έχει κάποια άκρα γύρω από την παρουσίαση και τη διαμόρφωση του IDE, ωστόσο, αυτό αναμένεται σε μια έκδοση 1.0. Η υποστήριξη του Java 1.1 είναι επίσης ανώτερη. Η γνώμη μου είναι ότι, για πρώτη φορά, τα παιδιά και οι gals στο Symantec έχουν κάποιο σοβαρό ανταγωνισμό με το προϊόν Visual Cafe Pro.

Ο Chuck McManis είναι σήμερα ο διευθυντής του λογισμικού συστήματος της FreeGate Corp., μιας επιχείρησης που χρηματοδοτείται από επιχειρήσεις και διερευνά ευκαιρίες στην αγορά του Διαδικτύου. Πριν ενταχθεί στο FreeGate, ο Chuck ήταν μέλος του Java Group. Έγινε μέλος του Java Group αμέσως μετά το σχηματισμό της FirstPerson Inc. και ήταν μέλος της φορητής ομάδας OS (η ομάδα υπεύθυνη για το τμήμα OS της Java). Αργότερα, όταν το FirstPerson διαλύθηκε, παρέμεινε με την ομάδα μέσω της ανάπτυξης των εκδόσεων alpha και beta της πλατφόρμας Java. Δημιούργησε την πρώτη αρχική σελίδα «All Java» στο Διαδίκτυο όταν έκανε τον προγραμματισμό για την έκδοση Java της αρχικής σελίδας του Sun τον Μάιο του 1995. Επίσης, ανέπτυξε μια κρυπτογραφική βιβλιοθήκη για Java και εκδόσεις του φορτωτή κλάσης Java που θα μπορούσαν να προβάλλουν τάξεις βασίζεται σε ψηφιακές υπογραφές. Πριν ενταχθεί στην FirstPerson, ο Chuck εργάστηκε στην περιοχή των λειτουργικών συστημάτων της SunSoft, αναπτύσσοντας εφαρμογές δικτύωσης, όπου έκανε τον αρχικό σχεδιασμό του NIS +. Δείτε την αρχική του σελίδα.