Средства разработки приложений

         

во многих ИСР под визуализацией


Например, во многих ИСР под визуализацией разработки подразумевается возможность разработчика поместить на экране кнопки или другие объекты, но ни одна из существующих сред не позволяет наблюдать иерархию классов приложения в виде графа, со связями, отображающими наследование. Изобилие же инструментальных средств в профессиональных средах тоже лишь отвлекает внимание, занимая пространство на экране. А это, по мнению разработчиков BlueJ, еще хуже, так как заставляет программиста мыслить не категориями ООП, а последовательностью строк кода, которая свойственна традиционному процедурному программированию, и щелчками мышкой для достижения нужного результата. К сожалению, проблемы не ограничиваются оболочками. В самом языке тоже есть несколько «узких мест», трудных для понимания новичка, например сигнатура метода

main:

public static void main (String[] argv);

В этой сигнатуре заложены сразу несколько понятий: статический метод, возвращаемый тип void, массив. Все это приводит к тому, что в самом начале обучения, когда студент еще ничего не знает о классах, методах, переменных, циклах и т. п. для наглядной демонстрации простейшего присвоения значения переменной необходимо создать хотя бы каркас c методом main. Преподавателю не остается ничего лучшего, как предложить аудитории поверить ему на слово, что этот метод должен быть объявлен так, а не иначе, так как при использовании стандартных ИСР нет возможности выполнить часть кода, не создав всего скелета класса.

Итак, существующие решения оказываются не вполне удовлетворительными: у J2SDK нет интерактивной оболочки, а большинству ИСР не хватает конструктивных решений.

В BlueJ все эти проблемы решены, и вот как это сделано.

Окно менеджера проекта состоит из вертикальной панели инструментов, расположенной слева, графа классов в центре и панели объектов внизу.

Приятно отметить, что окно менеджера проекта упрощено до предела и содержит только необходимые элементы. На мой взгляд, авторам удалось очень оригинально и остроумно продемонстрировать графически работу виртуальной машины (ВМ), отобразив ее в правом нижнем углу окна в виде спирали, напоминающей винт Архимеда (во время работы ВМ она движется и меняет цвет).
У этого «винта» есть и другое назначение: если дважды щелкнуть на нем при запущенном потоке, поток (и винт) остановится, и запустится отладчик. Это очень удобно при отладке «долгоиграющих» процессов и особенно при попадании в бесконечный цикл.

Классы проекта отображаются в виде прямоугольников и связей между ними. Цвет и штриховка прямоугольника указывают на состояние, в котором находится класс - модифицирован, откомпилирован или находится в стадии компиляции,- а вид стрелок -- на тип связи. Например, штриховка класса Student означает, что класс был модифицирован, а более темный фон класса Person - что в данный момент идет компиляция этого класса. Такой подход позволяет постоянно контролировать все, что происходит в BlueJ.

Для того чтобы приступить к редактированию класса, нужно дважды щелкнуть на соответствующем ему прямоугольнике, а по щелчку правой кнопкой мыши открывается контекстное меню, позволяющее создать экземпляр класса или выполнить один из его статических методов. Все это можно проделать независимо от того, готов ли весь класс полностью или только этот метод.

Если же создать экземпляр класса и поместить его на панель объектов, появляется возможность выполнять все нестатические методы объекта. Для этого необходимо вызвать один из конструкторов, например new Staff(). Таким образом, мы получаем возможность, создав метод и откомпилировав класс, сразу же проверить работоспособность этого участка кода.

В BlueJ есть набор шаблонов, позволяющих быстро создать «скелет» интерфейса, класса или аплета, а графические инструменты менеджера проекта позволяют добавить наследование простым «перетаскиванием» стрелок от одного класса к другому.

Окно отладчика содержит традиционный набор средств и, как отмечают авторы BlueJ, требует для ознакомления не более 15 минут, даже если пользователь совершенно незнаком с программированием.

Интересную возможность контролировать состояние объекта предоставляет команда Inspect из контекстного меню объекта. Она позволяет просматривать состояние полей объекта так же, как это делается в отладчике.



В состав BlueJ входят менеджер проекта, текстовый редактор и отладчик. Компилятор, виртуальная машина и некоторые другие средства «позаимствованы» у J2SDK. Кроме того, не забывайте: BlueJ - бесплатная, платформо-независимая среда. Проект постоянно совершенствуется. На момент написания этой статьи была доступна версия 1.1.3 (http://www.bluej.org/download/download.html).

Несмотря на то, что BlueJ использует многие инструменты из набора J2SDK, это среда с графическим интерфейсом. Так, например, интерактивный вызов директивы Tools ? Project Documentation приводит к созданию пакета документации в стиле Sun. Естественно, в любой момент можно открыть окно терминала или сеанса MS-DOS, в зависимости от платформы, и выполнить то же самое из командной строки.

Но и это еще не все. В настоящий момент разработчики сделали доступными исходные коды текстового редактора, а на сайте www.bluej.org ведется обсуждение нововведений. Так что у каждого есть возможность не только ознакомиться с исходными текстами, но и внести свою лепту в развитие BlueJ. А если вы серьезно заинтересовались разработкой, можете подписаться на рассылку новостей.

Конечно, у BlueJ есть свои проблемы. И целый список обнаруженных ошибок (а где их нет!). Так, например, в последней версии возникли проблемы с отладкой метода main.

Однако, учитывая масштабность проекта, его свободное распространение, а также доступность J2SDK (http://www.java.sun.com) и возможность установки среды на различные операционные системы, включая Linux, BlueJ вполне может составить конкуренцию многим ИСР. При этом, на мой взгляд, она подходит не только для начинающего, но и для профессионала, благодаря своей интеграции с J2SDK и полному набору инструментальных средств.

В заключение хочется добавить, что в настоящий момент на сайте BlueJ появилась русская версия руководства пользователя, а в ближайшее время появится полностью русифицированный интерфейс оболочки. Кроме того, хочется обратить внимание преподавателей наших ВУЗов на то, что в сочетании с Linux BlueJ позволяет создать полностью легальную среду разработки межплатформенных приложений.А это реальная возможность, во-первых, уйти от пиратских копий Turbo Pascal, на которых построено обучение в большинстве институтов, а во-вторых, использовать самые современные технологии для разработки веб-приложений в учебном процессе.


Содержание раздела