Техотдел
Свет ученья
BlueJ: учебная оболочка или полноценная среда разработки | BlueJ: учебная оболочка или полноценная среда разработки - BlueJ разработана... |
|
|
Страница 1 из 2 Sunday, 26 February 2006 | Вячеслав Яковенко, Издательский Дом "КОМИЗДАТ" для раздела Ученье – свет BlueJ разработана в Monash University, в Мельбурне, группой преподавателей во главе с Майклом Келлингом. Появлению BlueJ предшествовало создание совершенно нового языка программирования Blue совместными усилиями Sydney University и Monash University. Разработанная там же среда программирования Blue System по сей день поддерживается и используется в этих университетах в учебном курсе по ООП. BlueJ унаследовала все особенности своей предшественницы, но реализована полностью на Java. Это, естественно, имеет свои плюсы и минусы. Проект постоянно тестируется на платформах Solaris, Linux, Windows 95 и Windows NT.
Название проекта «BlueJ» (произносится как «блуджэй») созвучно английскому названию голубой сойки, логотип с изображением которой украшает заставку приложения (фотографией этой птички желающие могут полюбоваться на сайте разработчиков http://www.bluej.org/).
Изначально проект BlueJ поддерживался Sun Microsystems, базировался на J2SDK v1.2/1.3 и предназначался для обучения студентов основам ООП и программированию на языке Java. Этим коллектив преподавателей намеревался решить целый ряд проблем, возникавших при использовании широко известных сред разработки. Первая из них -- цена профессиональной интегрированной среды разработки (ИСР) высока даже для студентов из высокоразвитых стран, что накладывает ограничения на использование ИСР в домашних условиях: ведь для этого каждому студенту необходимо приобретать отдельную лицензию! Это приводит к тому, что в ход идет стандартный пакет J2SDK от Sun, распространяющийся свободно, который, как известно, работает из командной строки. При этом оказывается, что внимание студента, изучающего ООП и Java, занято не классами и объектами, а особенностями операционной системы, файлами, расположением каталогов и т. п.
Но использование визуальных ИСР не только обременительно с финансовой точки зрения, но и не решает всех проблем учебного процесса. Например, во многих ИСР под визуализацией разработки подразумевается возможность разработчика поместить на экране кнопки или другие объекты, но ни одна из существующих сред не позволяет наблюдать иерархию классов приложения в виде графа, со связями, отображающими наследование. Изобилие же инструментальных средств в профессиональных средах тоже лишь отвлекает внимание, занимая пространство на экране. А это, по мнению разработчиков BlueJ, еще хуже, так как заставляет программиста мыслить не категориями ООП, а последовательностью строк кода, которая свойственна традиционному процедурному программированию, и щелчками мышкой для достижения нужного результата.
К сожалению, проблемы не ограничиваются оболочками. В самом языке тоже есть несколько «узких мест», трудных для понимания новичка, например сигнатура метода
main:
public static void main (String[] argv);
В этой сигнатуре заложены сразу несколько понятий: статический метод, возвращаемый тип void, массив. Все это приводит к тому, что в самом начале обучения, когда студент еще ничего не знает о классах, методах, переменных, циклах и т. п. для наглядной демонстрации простейшего присвоения значения переменной необходимо создать хотя бы каркас c методом main. Преподавателю не остается ничего лучшего, как предложить аудитории поверить ему на слово, что этот метод должен быть объявлен так, а не иначе, так как при использовании стандартных ИСР нет возможности выполнить часть кода, не создав всего скелета класса.
Итак, существующие решения оказываются не вполне удовлетворительными: у J2SDK нет интерактивной оболочки, а большинству ИСР не хватает конструктивных решений.
В BlueJ все эти проблемы решены, и вот как это сделано.
Окно менеджера проекта состоит из вертикальной панели инструментов, расположенной слева, графа классов в центре и панели объектов внизу.
Приятно отметить, что окно менеджера проекта упрощено до предела и содержит только необходимые элементы. На мой взгляд, авторам удалось очень оригинально и остроумно продемонстрировать графически работу виртуальной машины (ВМ), отобразив ее в правом нижнем углу окна в виде спирали, напоминающей винт Архимеда (во время работы ВМ она движется и меняет цвет). У этого «винта» есть и другое назначение: если дважды щелкнуть на нем при запущенном потоке, поток (и винт) остановится, и запустится отладчик. Это очень удобно при отладке «долгоиграющих» процессов и особенно при попадании в бесконечный цикл.
Классы проекта отображаются в виде прямоугольников и связей между ними. Цвет и штриховка прямоугольника указывают на состояние, в котором находится класс - модифицирован, откомпилирован или находится в стадии компиляции,- а вид стрелок -- на тип связи. Например, штриховка класса Student означает, что класс был модифицирован, а более темный фон класса Person - что в данный момент идет компиляция этого класса. Такой подход позволяет постоянно контролировать все, что происходит в BlueJ.
Для того чтобы приступить к редактированию класса, нужно дважды щелкнуть на соответствующем ему прямоугольнике, а по щелчку правой кнопкой мыши открывается контекстное меню, позволяющее создать экземпляр класса или выполнить один из его статических методов. Все это можно проделать независимо от того, готов ли весь класс полностью или только этот метод.
Если же создать экземпляр класса и поместить его на панель объектов, появляется возможность выполнять все нестатические методы объекта. Для этого необходимо вызвать один из конструкторов, например new Staff(). Таким образом, мы получаем возможность, создав метод и откомпилировав класс, сразу же проверить работоспособность этого участка кода.
|
||||