Каталог Индекс раздела


Зачем я преподаю Eclipse

Gary Pollice, Professor of Practice, Worcester Polytechnic Institute

15 июня 2005

Исходный текст:http://www.ibm.com/developerworks/rational/library/jun05/pollice/index.html
перевод А.С.Деревянко

Из Rational Edge: В своей ежемесячной колонке Gary Pollice обсуждает достоинства технологии Eclipse и объясняет, почему он и другие преподаватели в институте Worcester Polytechnic используют его в своих курсах.

Каждое продвижение в технологиях программного обеспечения требует параллельных изменений в средствах разработки программ. Как человек, обучающий будущих разработчиков программного обеспечения, я постоянно пересматриваю педагогические концепции в отношении инструментов, которые нужны моим студентам для решения их задач. Учитывая все увеличивающиеся темпы изменений в технологиях, в какой мере я могу - и должен - преподавать моим студентам специальный инструментарий?

С одной стороны, я знаю, что профессора колледжей не применяют в своих классах хорошие инструменты, студенты могут выпускаться со значительными книжными знаниями, но иметь затруднения в практике. С другой стороны, обучение студентов использованию инструментов "промышленного уровня" требует много времени. Хорошо бы иметь хрустальный шар, который говорил бы нам, в какие инструменты стоит делать вложения. Помните CASE-инструменты 80-х? Мы потратили много времени, обучая, как их использовать, но многие ли из них все еще применяются сегодня?

К счастью, в последнее время моя жизнь стала легче. Eclipse близок к тому, чтобы быть идеальной средой разработки программ для моих студентов. Он имеет промышленный уровень. Вы не обязаны что-либо знать о нем, чтобы использовать его эффективно. И он настолько гибок, насколько вы захотите.

Если вы не знаете, что такое Eclipse, я настоятельно рекомендую вам взглянуть на Web-страницы Eclipse1. Первое же высказывание на главной странице говорит все: "Eclipse является универсальной инструментальной платформой - открытой расширяемой IDE для чего угодно и ни для чего конкретного". Это настоящее подразделение швейцарской армии в инструментарии программного обеспечения. Слишком хорошо звучит, чтобы быть правдой? Большинство из нас знает, что, если инструмент пытается делать все, он заканчивает тем, что мало что делает хорошо. Но это не так в отношении Eclipse! Что делает Eclipse таким хорошим для академического использования? Вот некоторые из его преимуществ:

Далее мы рассмотрим все это более подробно. Eclipse обеспечивает согласованный набор возможностей для большинства платформ

Мы в Worcester Polytechnic не обучаем какой-то конкретной вычислительной платформе. Наши студенты обычно свободны в использовании той платформы, на которой они себя чувствуют наиболее комфортабельно, большинство из них имеет хотя бы один компьютер, а многие - несколько. Машины в наших лабораториях по всему институту работают с несколькими операционными системами. Это одна из причин того, почему мы хотим обойтись без задания таких задач, которые требуют какой-то конкретной платформы, например, Microsoft(r) Windows.

Когда я задаю большие командные проекты в моих курсах по программной инженерии, я хочу, чтобы студенты могли сконцентрироваться на проблеме, а не на конкретной платформе. Eclipse поддерживает эту цель, поскольку он выполняется на всех платформах, которые мы используем: Windows, Linux и MacOS X. Еще важнее то, что его функции одинаковы на каждой из этих платформ, так что я могу работать со студентами, даже не будучи экспертом на выбранной ими платформе.

Фактически, независимо от платформы, которую вы используете, Eclipse действует как приложение, сделанное для этой платформы. Когда вы выгружаете Eclipse, вы выгружаете его для вашей конкретной платформы; он имеет отдельные графические средства для каждой платформы. Это обеспечивает внешний вид и впечатление, близкие к естественному, а также и лучшую производительность.

Eclipse поддерживает не только Java

Вы увидите реальные преимущества Eclipse, когда вы поймете, что это не только платформа разработки для Java. Философия Eclipse воплощена в архитектуре этой технологии: обеспечить маленькое ядро, которое дает разработчикам согласованный путь для расширения возможностей системы. Каждое расширение или подключение привносит конкретную функциональность в конфигурацию Eclipse, и может обеспечивать точки расширения, которые может использовать другое подключение2.

Архитектура подключений делает возможной для Eclipse поддержку многих языков и парадигм. Примерами подключений могут быть:

Когда я недавно заглядывал в мой любимый каталог подключений Eclipse (http://www.eclipse-plugins.info/eclipse/index.jsp), я увидел, что там сейчас есть 51 подключение в категории языков. С каким бы языком вы не работали, проверьте, нет ли подключения Eclipse, которое позволит вам разрабатывать программы на этом языке из Eclipse: Haskell, ML, Prolog и GOO - все они поддерживаются. Не исследуя внимательно экземпляр Eclipse, показанный на Рисунке 1, вы даже не сможете сказать, работал я в Java, C++, Ruby или на каком-то другом из поддерживаемых языков.

Эта согласованность во внешнем виде и впечатлении дает мне большую выгоду как преподавателю - и может давать ее и вам как практическому инженеру или менеджеру. Если вы научитесь навигации через различные представления Eclipse, вы сможете без усилий переходить от одного языка или платформы к другому и знать, что все работает так же. Я поздравляю команду разработчиков Eclipse с установлением ряда стандартов, которым другие разработчики могут следовать - и следуют - для создания почти любого типа подключений. Редкие подключения, которые не следуют стандартным руководствам, обычно бывают нестандартными.

Обучение моих студентов использованию Eclipse обычно требует одного-двух уроков. Это не большая цена за выгоды, которые они получают - и которые получаю я - от того, что их работа принимает согласованный формат. Оценивание значительно облегчается, если я могу загрузить и запустить их проекты без каких-либо проблем.


Рисунок 1: Типичное представление Eclipse

Инициатива открытого кода доказала, что свободное программное обеспечение - не обязательно низкокачественное программное обеспечение. Но компании, такие как RedHat, также показали, что важно обеспечить поддержку для людей, использующих это программное обеспечение. Фактически, Eclipse имеет очень активное сообщество, которое готово помочь в решении любых проблем. Вдобавок, поскольку Eclipse является фундаментом для многих коммерческих программных продуктов, включая инструменты IBM Rational, многие производители предоставляют дополнительную поддержку.

Как говорится в одной телевизионной рекламе, "бесплатно" - это хорошая цена, и это особенно справедливо для академического сообщества. IBM, Microsoft и другие компании имеют прекрасные программы, которые помогают преподавателям и студентам получать программное обеспечение либо по очень низкой цене, либо бесплатно. Без их помощи стоимость обучения была бы еще выше, чем сейчас. Платформа Eclipse и множество ее бесплатных подключений дают возможность студентам легко выгружать то, что им нужно. Более того, большое число бесплатных подключений дает им нерискованный способ расширить их горизонты, пробуя новые языки и инструменты. Это прекрасно и для меня тоже, поскольку я постоянно ищу новые, крутые вещи, чтобы показать их студентам. Мне не хочется назначать для курса книгу за $100, для моей совести вместо этого попросить студентов использовать бесплатную выгрузку программного обеспечения, что не увеличит общую стоимость курса.

Двое моих студентов только что закончили их Главный аттестационный проект, соответствующий требованиям обучения в Worcester Polytechnic. Их проект состоял в построении объектного представления для Eclipse, которое позволяет вам взаимодействовать с объектами созданных вами классов без необходимости написания полной программы. Они проделали поразительную работу, но они бы никогда не достигли того, что достигли, если бы не поддержка сообщества Eclipse. Когда они сталкивались с трудностями, они отправляли сообщение в соответствующую группу новостей и получали ответы-подсказки. Это помогло им не только закончить работу, но и стать участниками группы увлеченных, профессиональных разработчиков, эта поддержка будет неоценимой, когда они будут продвигаться дальше в своей карьере4.

Eclipse по-настоящему расширяемый и конфигурируемый

За все годы я работал с многими инструментами, которые рекламировались как расширяемые и конфигурируемые. Однако, после того, как я покупал их, я обнаруживал, что их конфигурирование не такое легкое, как это провозглашалось. Мой первый опыт относится к 1974 году, мне нужно было применить компьютер Datapoint, и продавец сказал, что я могу сделать это при помощи их новой системы. Я заказал систему с огромным 5-мегабайтным диском и стал ждать. Когда она поступила, я спросил его: "OK, как я теперь выполню свою задачу?". Ответ был таким: "Вы можете это сделать, но у нас для этого нет программного обеспечения. Вы должны написать его". После того, как я потратил две недели в San Antonio, TX, изучая операционную систему и язык ассемблера, я был в состоянии расширить программное обеспечение так, как я хотел. Но я получил урок: "расширяемый" - это на посторонний взгляд.

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

Страница подключений Eclipse (см. сноску выше), на которой перечислено 825 предложений, является доказательством расширяемости платформы. Как и для большинства программного обеспечения Eclipse установка подключений является легкой задачей. В последних версиях Eclipse вы можете просто указать на определенный Web-сайт из Eclipse и щелкнуть на кнопке. Рисунок 2 показывает Мастер для загрузки подключения AspectJ Development Tools. Если подключение, которое вы используете еще не поддерживает сайт обновлений, вы можете просто выгрузить подключение и распаковать его в определенный каталог - так же, как поставляется Eclipse. Для установки Eclipse вы просто распаковываете его. Если в ваше системе есть Java JRE, то вы готовы к работе. Не все подключения Eclipse бесплатные. Многие коммерческие продукты либо являются подключениями Eclipse, либо содержат Eclipse в своем пакете. Например, последние версии инструментов IBM Rational работают над Eclipse, включая IBM Websphere, которая обеспечивает много расширений Eclipse. Если у вас установлены эти инструменты, вы можете строить расширения над ними, как и другие подключения Eclipse. Эта гибкость принесет большие выгоды для организаций, применяющих эти инструменты на основе Eclipse.


Рисунок 2: Мастер установки подключения AspectJ Development Tools

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

Вы конфигурируете Eclipse через Окно предпочтений, показанное на Рисунке 3. Как видите, я изменяю некоторые установки компилятора Java. Вы можете интерпретировать некоторые типы нарушений в Java разными способами, и Панель компилятора в Окне предпочтений дает вам возможность решить, будет это нарушение ошибкой, предупреждением или приемлемым вариантом. Новый редактор Java, свертывающий редактор, позволяет вам выбрать, свертывание кода или даже представлять только метод, с которым вы работаете.

Я обнаружил, что очень легко установить стиль кодирования, задавая его через предпочтения Eclipse и совмещая этот стиль с другими. При помощи простой комбинации клавиш - такой как SHIFT-CTL-F в Windows - код автоматически форматируется в соответствии с вашим предпочтительным стилем.


Рисунок 3: Окно предпочтений Eclipse

Возможность конфигурирования Eclipse напоминает возможность конфигурирования Emacs. Если вы - пользователь Emacs, вы можете добавить свои макросы и ключевые комбинации для настройки его на ваш стиль. Eclipse следует этой традиции.

Eclipse имеет промышленный уровень

Eclipse был разработан в фирме IBM5 как фирменная платформа, но в 2004 году она передала дальнейшее сопровождение этой технологии бесприбыльной Eclipse Foundation. Сейчас руководство организации утверждает новые проекты, и в организацию входят коммерческие фирмы, академические и исследовательские институты, группы стандартизации и т.д., это убеждает в том, что Eclipse находится на переднем крае индустрии программных инструментов. Это означает, что вы можете полагаться на Eclipse как на инструмент промышленного уровня, жизнеспособный в обозримом будущем.

Когда я трачу время на представление Eclipse моим студентам, я знаю, что это время потрачено с пользой. Eclipse - это нечто такое, что они могут применить в своей работе, поскольку он используется во множестве организаций. Если их организация еще не использует его, это то, что они могут ввести. Как правило, он имеет свойства, которые нужны им для создания высококачественного программного обеспечения. Я постоянно проповедую моим студентам интеграцию людей, процессов и инструментов, и Eclipse наглядно иллюстрирует преимущества хороших инструментов.

На моих занятиях по программной инженерии студентам представляется, как минимум:

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

Заключение

Не все студенты принимают Eclipse. Некоторым все еще удобнее работать с текстовыми редакторами, такими как Textpad(r) и в командной строке. Однако большинство моих студентов, которым был представлен Eclipse, уходят с лучшим пониманием способностей хороших инструментов разработки и с укрепленной верой в своей способности эффективно работать в больших проектах по разработке программного обеспечения.

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

Студент 1: Я думаю, что инструменты, подобные Eclipse делают слишком много для ленивого программиста. Когда я вижу, насколько больше можно сделать, когда такой замечательный инструмент, как этот устраняет тривиальные задачи кодирования, мне трудно понять, как может какой-то профессионал позволить себе обходиться без инструмента, подобного Eclipse. Согласованное форматирование, интуитивная отладка, встроенная поддержка CVS и Junit, сводка и иерархия классов, графический интерфейс для всего этого делают Eclipse очень дружественным помощником.

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

Конечно, студенты сталкиваются с проблемами, как это бывает и с другими продуктами. Некоторые находят способы сломать Eclipse при использовании визуального редактора. Некоторые находят Eclipse медленным и "перегруженным" свойствами, в которых они не нуждаются6 - но многие меняют свою точку зрения, если им приходится отлаживать код, написанный другими людьми. В большинстве их опыт был весьма позитивным и очень действенным.

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

Дополнительное чтение

Ниже приведены несколько источников по Eclipse, которые я считаю полезными.


Примечания

1 Начните с http://www.eclipse.org.

2 Чтобы узнать больше о подключениях, см.To learn more about plug-in architecture, see http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html.

3 Eclipse Foundation является бесприбыльной корпорацией, созданной для сопровождения платформы Eclipse: http://www.eclipse.org/org/index.html.

4 Домашняя страница объектного представления Eclipse - http://sourceforge.net/projects/ebob/.

5 См. http://www.eweek.com/article2/0,1759,1750358,00.asp

6 Мы обнаружили, что Eclipse 3.1, пока находящийся в разработке, значительно медленнее, чем Eclipse 3.0. Пока мы не нуждаемся в свойствах, поддерживаемых в новой версии, на большинстве занятий используется Eclipse 3.0.


 

Об авторе

Gary Pollice - профессор в институте Worcester Polytechnic, в г. Worcester, штат Массачусетс. Он преподает программную инженерию, проектирование и тестирование и другие компьютерные науки, а также руководит студенческими проектами. До прихода в академический мир он посвятил более тридцати лет разработке разного рода программного обеспечения - от бизнес-приложений дл компиляторов и инструментария. Его последняя промышленная работа была связана с программным обеспечением IBM Rational, где он был известен как "Жадина RUP " и был также членом исходной команды Rational Suite. Он - главный автор книги Software Development for Small Teams: A RUP-Centric Approach, изданной в Addison-Wesley в 2004. году Он имеет степень Британской академии по математике и степень магистра компьютерных наук.


КаталогИндекс раздела