Първи поглед към JBuilder IDE на Borland

През юни 1995 г., когато за първи път чух, че Borland ще направи инструмент за Java, бях доста доволен. Borland беше единствената компания, която се впусна във франчайза Visual Basic, създаден от Microsoft. Освен това, среда за разработка на Delphi на Borland се счита от мнозина (включително и от мен) за най-добрия инструмент за бързо разработване на приложения (RAD) на пазара. Така че с голямо вълнение купих Borland C ++ 5.0 с поддръжка на Java в края на 95-та.

За съжаление усилията на Borland оставиха много да се желае. Един от най-големите недостатъци на продукта беше, че поддръжката на Java беше допълнителен модул към C ++, вместо да бъде инструмент сам по себе си. Проблемът с този подход е, че Java не приличаше толкова много на C ++ по отношение на своите компилационни единици, обектни файлове и цели на компилация. В Java компилирате файл с клас в обект, който можете незабавно да създадете с други обекти, които вече са в системата. Няма цели ".exe" и ".dll", които са моделът, използван от общия IDE на C ++. По този начин изграждането на класове беше тромаво, документацията почти не съществуваше и опитът беше напълно незадоволителен. Компилаторът C ++ обаче работи отлично.

По петите на добавката C ++ продукт бързо се разчу за „Latte“, кодовото име за IDE среда, върху която ще работят инженерите от групата Delphi и която е написана изцяло на Java. Амбициозният проект беше засегнат от закъснения; демонстрира се на първата JavaOne Developer Conference в Сан Франциско през 1996 г. и след това отново на JavaOne '97. И накрая, той беше пуснат като JBuilder.

Бърза обиколка на JBuilder

JBuilder споделя много често срещани теми със света на Делфи и се чувства достатъчно подобен на инструментите на Symantec Visual Cafe. Така че ми беше лесно да започна с JBuilder - дори без да чета предоставената документация. (Когато аз направих имам един въпрос, на документацията беше доста пълна по отношение на описване на наличните опции.)

Средата се състои от „контролна лента“, която е плаващ прозорец на лентата с инструменти, „прозорец за сърфиране“ с многослойна дървесна контрола вляво и прозорец за гледане отдясно. Има само една контролна лента, но могат да бъдат отворени няколко прозореца на браузъра.

Контролната лента, показана по-долу, се състои от стандартните команди в менюто отгоре, палитра от инструменти вляво, които осигуряват преки пътища до елементите от менюто, и колекция от компоненти (JavaBeans), които са достъпни за използване във вашето визуално приложение или аплет. Под палитрата с инструменти и компонентите има ред на състоянието, който се актуализира с каквато и да е дейност, която се извършва в момента.

Прозорецът на браузъра е показан по-долу. Този прозорец е мястото, където взаимодействате с вашия изходен код, или HTML, или Java. Над това е контролната лента, която ви позволява да стартирате действия (като възстановяване) и съхранява вашите колекции от JavaBeans за използване във вашите собствени приложения. Освен това, всеки прозорец на браузъра може да показва проект, който се случва в него, така че ако работите по множество проекти - като нов JavaBean и приложение, което го използва - можете да отворите и двата проекта едновременно и лесно да се придвижвате между тях . Тази възможност ми направи впечатление, тъй като поддържа най-често срещаната форма за разработка на Java, променяйки няколко различни части наведнъж. В един прозорец на браузъра може да има проект на помощни класове, в друг браузър аплета, който използва тези класове, а в трети набор от HTML страници, които използват аплета.

Прозорецът на браузъра е разделен вертикално - с изглед на дървото на файла отляво и зрителя отдясно. Вертикалното разделяне се нарича "завеса". Потребителският интерфейс на Borland ви позволява да премахнете завесата, когато искате изглед на изходния код, върху който работите, на цял екран. Под всяка половина на прозореца на браузъра има контролни раздели, които променят семантиката на самия изглед.

Когато преглеждате изходния код на Java, разделите на половината на браузъра на браузъра са обозначени с източник, дизайн и документ.

  • Разделът източник просто ви показва изходния код и можете да го редактирате с помощта на включения редактор за подчертаване на синтаксис.

  • Разделът за проектиране показва визуално работно пространство, където съществува всяка информация за потребителския интерфейс, която сте определили. Така например, ако вашият изходен код е имал дефиниции на панели, бутони и т.н., този панел е зоната за плъзгане и пускане, където можете да съставите тази информация.

  • Разделът на документа ви показва HTML документа, който се генерира от вложените коментари в изходния код. HTML документът може да бъде извлечен с помощта на JavaDoc, но няма автоматизиран начин, който да намеря, за да генерирам този документ.

Може би един от най-умните аспекти на изпълнението на браузъра е, че когато разглеждате файл с клас, браузърът чете в файла на класа и го декомпилира достатъчно, за да ви покаже структурата на изходния код. Това може да бъде много полезно, ако сте свикнали да четете източник, вместо да гледате обектна диаграма. Освен това, когато изберете някой от стандартните класове на Java или потребителските класове на Borland, щракването върху раздела на документа ще върне страницата на JavaDoc за този клас. Това ви позволява да правите неща като: да маркирате системен клас, да изберете „преглед на избрания символ“ и да видите както реконструирания източник, така и документацията за класа. Предпочитам този метод, който запазва HTML форматирането, което е вградено в данните на JavaDoc, пред системи, които преобразуват документацията на Java във файлове за помощ на Microsoft.

Дебъгерът на JBuilder

Разбира се, писането на код е лесно. Това го кара да работи толкова трудно. Може би най-важната характеристика за всяка IDE е нейният дебъгер. За щастие дебъгерът на Borland JBuilder не разочарова. Екранна снимка на дебъгера е показана по-долу.

При отстраняване на грешки прозорецът на браузъра се преконфигурира, за да поддържа преглед на състоянието на вашия клас. Изгледът на дървесния структуриран файл се разделя на горен прозорец, съдържащ състояние на нишката, и долен прозорец, съдържащ информация за активни променливи. Също така, лявата половина на браузъра получава някои допълнителни контролни раздели в долната част, които контролират работата на дебъгера.

Освен това изскачащите прозорци ще показват стойността на променлива в прозореца на източника по същия начин, по който работи дебъгерът на Symantec. Налице са всички стандартни функции за отстраняване на грешки: една стъпка, точки за наблюдение, точки на прекъсване, условни точки на прекъсване и т.н. За отбелязване е поддръжката на конеца, която е изключителна. В прозореца на нишката в горния ляв ъгъл можете да щракнете върху изпълняващия се в момента ред на която и да е част от кода във всяка нишка и прозорецът източник ще се появи на това място в кода. Освен това, долният ляв прозорец ще покаже всяко локално и глобално състояние, което е видимо за тази нишка. Дебъгерът на JBuilder определено представлява новия стандарт, спрямо който ще бъдат измервани други дебъгъри на Java.

Покрай лявата страна на прозореца на източника малки точки показват линии, където могат да бъдат инсталирани точки на прекъсване. Кликването върху точката подчертава линията и се появява символът на точката на прекъсване. Друга полезна функция е "run to cursor" - за онези моменти, когато не искате да правите една стъпка през всяка итерация на forцикъл. Просто щракнете върху реда, изберете "run to cursor" и изпълнението спира точно там.

Обработка на изхода

Последна област, в която намерих JBuilder за особено полезна, беше обработката на изхода от изпълнение на Java приложение. Дневникът на изпълнението е прозорец, който съдържа всички данни, изпратени до System.outтекущото изпълнение. Когато обаче са отворени множество проекти, дневникът за изпълнение поддържа отделни раздели за всеки проект! Пример за това е показан по-долу.

Както можете да видите на изображението, има два раздела, един за "пример" и един за "BASIC", текущия проект. Това разделяне е от съществено значение при изграждането на множество библиотеки на класове едновременно, защото ви предпазва от смесване на резултатите от двата проекта.

Какво ми харесва в JBuilder

Понякога това са малките неща. Много ми харесва, че човек може да отпечатва изходния код на Java на цветен принтер и той да излезе със своите шрифтове и синтаксис, подчертаващи непокътнати. Ако бих могъл да персонализирам горните и долните колонтитули на страницата и да посоча изход „два пъти нагоре“ (две страници с изходен код, отпечатани една до друга на страница с изходен пейзаж), би било идеално.

Поддръжката за Java 1.1 е много приятна. Докато JDK 1.1 излиза от известно време и Symantec има бета поддръжка за 1.1, няма нищо подобно да има IDE, който е проектиран от нулата да работи с 1.1.

Както казах по-рано, дебъгерът също е много хубав: Той дава голямо количество информация по лесен за разбиране начин. Голяма част от отстраняването на грешки е в стила „насочи и стреляй“, който някои потребители харесват (аз го правя), а други не (вярвайки, че „gdb“ означава Божия DeBugger). Вярвам, че е достатъчно да се намерят дори най-трудните бъгове за блокиране на конци.

Това, което не харесвам в JBuilder

Конфигурируемият IDE на JBuilder всъщност не може да се конфигурира по два основни начина:

  • Първо, не можете да зададете цветовете на фона и предния план по подразбиране на дисплея. Вместо това първо трябва да ги настроите за целия си работен плот и след това JBuilder ще забележи промените. Можете обаче да ги настроите, като използвате някои от техните "консервирани" цветови схеми.

  • Вторият сериозен дефект е, че не можете да персонализирате натисканията на клавиша на редактора. Двата ми любими редактора в това отношение са EMACS и File Editor на програмиста (PFE). Разделът за персонализиране на редактора на JBuilder се състои от възможност за избор на някои предварително опаковани съпоставяния на ключове - включени са по подразбиране, Кратко, Класическо и Epsilon - и възможност да изберете как работят неща като автоматично отстъпване, подчертаване и обгръщане. Все още търся редактора, който ви позволява да дефинирате макро пакети в Java.

В областта на презентацията JBuilder страда от някои прости грешки, които очаквам да бъдат отстранени в първото издание на кръпка или така. Например, ако вашият работен плот е избрал "Големи шрифтове" (което Microsoft настоява да вземе Arial 10 и да го "умножи" по някакъв фактор), изчислението на това колко място е необходимо от лентата с инструменти се прекъсва и иконите на библиотеките на компонентите се изрязват изключен. Ако, от друга страна, зададете изрично изявите на шрифта в раздела „Външен вид“ на свойствата на вашия работен плот, като 14 точка Arial, тогава лентата на компонентите се изобразява правилно. Ясно е, че това е Microsoft bogosity (където 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 също е по-добра. Моето мнение е, че за първи път момчетата и момичетата в Symantec имат сериозна конкуренция с техния продукт Visual Cafe Pro.

Понастоящем Чък МакМанис е директор на системния софтуер в FreeGate Corp., стартиращо предприятие, финансирано от рискови компании, което проучва възможностите на интернет пазара. Преди да се присъедини към FreeGate, Чък е бил член на Java Group. Той се присъедини към Java Group непосредствено след създаването на FirstPerson Inc. и беше член на преносимата OS група (групата, отговорна за частта от OS на Java). По-късно, когато FirstPerson беше разпуснат, той остана с групата чрез разработването на алфа и бета версиите на платформата Java. Той създава първата начална страница „цяла Java“ в Интернет, когато прави програмирането за Java версията на началната страница на Sun през май 1995 г. Той също така разработва криптографска библиотека за Java и версии на Java loader класа, които могат да преглеждат класове въз основа на цифрови подписи. Преди да се присъедините към FirstPerson,Чък е работил в областта на операционните системи на SunSoft, разработвайки мрежови приложения, където е направил първоначалния дизайн на NIS +. Вижте началната му страница.