Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

24.05.2012

Google
WWW CITForum.ru
2004 г

BlueJ: учебная оболочка или полноценная среда разработки?

Вячеслав Яковенко, Издательский Дом "КОМИЗДАТ"

BlueJ разработана в Monash University, в Мельбурне, группой преподавателей во главе с Майклом Келлингом. Появлению BlueJ предшествовало создание совершенно нового языка программирования Blue совместными усилиями Sydney University и Monash University. Разработанная там же среда программирования Blue System по сей день поддерживается и используется в этих университетах в учебном курсе по ООП.

BlueJ унаследовала все особенности своей предшественницы, но реализована полностью на Java. Это, естественно, имеет свои плюсы и минусы. Проект постоянно тестируется на платформах Solaris, Linux, Windows 95 и Windows NT.

Название проекта «BlueJ» (произносится как «блуджэй») созвучно английскому названию голубой сойки, логотип с изображением которой украшает заставку приложения (фотографией этой птички желающие могут полюбоваться на сайте разработчиков 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(). Таким образом, мы получаем возможность, создав метод и откомпилировав класс, сразу же проверить работоспособность этого участка кода.

В 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, на которых построено обучение в большинстве институтов, а во-вторых, использовать самые современные технологии для разработки веб-приложений в учебном процессе.

Подписка на новости CITForum.ru

Новые публикации:

19 мая

  • Прозрачный механизм удаленного обслуживания системных вызовов

  • Система моделирования Grid: реализация и возможности применения

    Газета:

    Майкл Стоунбрейкер:

  • Ошибки в системах баз данных, согласованность "в конечном счете" и теорема CAP

  • Дискуссия по поводу "NoSQL" не имеет никакого отношения к SQL

    29 апреля

  • Материалы конференции "Корпоративные Базы Данных-2010"

  • Разные облики технологии баз данных (отчет о конференции)

    14 апреля

  • MapReduce: внутри, снаружи или сбоку от параллельных СУБД?

  • Научные вызовы технологиям СУБД

    Обзоры журнала Computer:

    31 марта

  • Рационализация согласованности в "облаках": не платите за то, что вам не требуется

  • Взаимные блокировки в Oracle

  • Архитектура среды тестирования на основе моделей, построенная на базе компонентных технологий

  • Объектное представление XML-документов

    Газета:

  • Microsoft для российских разработчиков: практика с элементами фундаментальности

    10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    Все публикации >>>


  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...