Содержание


Почему я преподаю Eclipse

Comments

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

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

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

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

Что же делает Eclipse столь пригодным для академического использования? Вот несколько преимуществ:

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

Итак, рассмотрим эти пункты более подробно.

Eclipse предоставляет согласованный набор функций на большинстве платформ

В Вустерском политехническом институте мы не изучаем какую-либо определенную платформу. Студенты обычно самостоятельно выбирают ту платформу, которая им более всего подходит. Большинство из них имеют только один компьютер, и многие имеют несколько компьютеров. Компьютеры в наших лабораториях по всему студенческому городку работают на разных операционных системах. Это одна из причин, по которой мы хотим избежать выбора таких задач, которые требуют использования какой-либо определенной платформы, к примеру Microsoft® Windows.

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

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

Eclipse поддерживает больше чем Java

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

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

  • Проект Eclipse C Development Tools (CDT) (http://www.eclipse.org/cdt/). Этот проект ядра, поддерживаемый, фондом Eclipse,3 предоставляет высококачественную поддержку языков C и C++. Полный проект включает в себя возможность редактирования, отладки, использования генераторов файлов проекта, парсинга, поиска и помощи в создании контента.
  • Другой, поддерживаемый фондом Eclipse плагин, осуществляет поддержку работы с языком COBOL (http://www.eclipse.org/cobol/). Обеспечивает те же средства, что и CDT.
  • Плагин EPIC (http://e-p-i-c.sourceforge.net/) для поддержки в Eclipse окружения разработки Perl.
  • Плагин Pydev (http://sourceforge.net/projects/pydev/) – один из нескольких плагинов, поддерживающих язык Python.

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

Такая слаженность в оформлении и ощущениях очень выгодна мне, как преподавателю и может многое дать вам, как практикующему инженеру или управляющему. Когда вы научитесь управлять различными окнами Eclipse, вы сможете без труда перемещаться между языками и платформами и знать, что все это будет работать одинаково. Хочется поблагодарить группу разработчиков Eclipse за создание набора стандартов, которым могут следовать другие разработчики для создания плагинов практически любого типа. Те редкие плагины, которые не соответствуют стандартам, обычно не достаточно качественны.

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

Рисунок 1: Типичный вид Eclipse
Рисунок 1: Типичный вид Eclipse
Рисунок 1: Типичный вид Eclipse

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

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

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

Двое из моих студентов недавно закончили большой квалификационный проект (MQP), являющийся требованием для получения WPI. Целью их проекта было создание некого "приспособления" для Eclipse, которое позволило бы осуществлять взаимодействия с объектами созданных классов без необходимости в написании полной программы. Они выполнили прекрасную работу, однако никогда не смогли бы добиться таких результатов без поддержки сообщества Eclipse. В трудных ситуациях они оставляли сообщения в соответствующих группах новостей и получали ответы на вопросы. Это помогло моим студентам не только закончить работу, но и стать частью группы профессиональных разработчиков. Такая поддержка будет неоценимой в их будущей карьере.4

Eclipse является полностью расширяемой и настраиваемой платформой

В течение многих лет я работал с множеством инструментов, рекламируемых как расширяемые и настраиваемые. Однако после их приобретения я находил, что их настройка совсем не так проста, как было заявлено. Первый подобный опыт я приобрел в 1974-м году. Мне необходимо было адаптировать компьютер Datapoint и продавец сообщил мне, что могу сделать это при помощи их новой системы. Я заказал систему с огромным по тем временам диском в 5Мб и стал ждать. Когда мне доставили заказ, я вновь обратился к продавцу с вопросом. Мне ответили, что адаптация возможна, однако фирма пока не располагает программным обеспечением для этой цели и мне необходимо написать его. После этого я потратил несколько недель в Сан Антонио, штат Техас, узнал много нового об операционных системах и языке assembler. Я был способен расширить программное обеспечение так, как мне было необходимо. Урок из этого один – "расширяемость" находится в руках разработчика.

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

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

Не все плагины Eclipse являются бесплатными. Множество коммерческих продуктов поставляются, как плагины Eclipse или уже встроены в Eclipse. К примеру, последний релиз инструментов IBM Rational Tools уже установлен в Eclipse. Сюда включен IBM Websphere, предоставляющий множество расширений в Eclipse. После установки этих инструментов вы можете создавать к ним расширения, также как и другие плагины Eclipse. Подобная гибкость должна принести большую выгоду организациям, применяющим инструменты на основе Eclipse.

Рисунок 2: Мастер инсталляции плагина AspectJ Development Tools
Рисунок 2: Мастер инсталляции плагина AspectJ Development Tools
Рисунок 2: Мастер инсталляции плагина AspectJ Development Tools

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

Настройка Eclipse осуществляется в окне Preferences, как показано на Рисунке 3. Как вы видите, я изменил некоторые настройки Java-компилятора. Вы можете интерпретировать несколько типов Java-нарушений различными способами, а панель Compiler в окне Preferences позволит вам решить, что является ошибкой, что предупреждением, а что допустимо. Новый Java-редактор позволяет сворачивать необходимые части кода или просматривать только тот метод, над которым вы сейчас работаете.

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

Рисунок 3: Окно свойств Eclipse
Рисунок 3: Окно свойств Eclipse
Рисунок 3: Окно свойств Eclipse

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

Eclipse полностью подходит для работы на предприятиях

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

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

На моих занятиях по разработке программного обеспечения студенты изучают в качестве минимума следующие темы:

  • Основную среду Java-разработки в Eclipse.
  • Тестовый плагин модуля JUnit.
  • CVS или плагин Subversion для управление версиями.

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

Подведение итогов

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

Далее я привожу два комментария, сделанные моими студентами относительно опыта работы с Eclipse в моем последнем проекте разработки:

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

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

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

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

Сноски

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

2 Более подробная информация об архитектуре плагинов содержится на странице http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html.

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

4 Домашняя страница проекта: http://sourceforge.net/projects/ebob/.

5 Смотрите ссылку http://www.eweek.com/article2/0,1759,1750358,00.asp

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


Ресурсы для скачивания


Похожие темы

  • Оригинал статьи Why I teach Eclipse
  • Страницы проекта Eclipse (http://www.eclipse.org) содержат статьи о каждой части продукта. Здесь можно найти как информацию для новичков, так и подробную техническую информацию.
  • Страницы проекта Eclipse ECESIS: http://www.eclipse.org/ecesis/ предлагают обучающий видеокурс по использованию Eclipse и написанию плагинов.
  • Если вы новичок в Eclipse, рекомендуется прочесть книгу The Java Developer's Guide to Eclipse, 2e by D'Anjou et al. Авторы: Д’Анжу (D'Anjou) и др., изд-во Addison-Wesley. Этот большой полноценный труд содержит полезную информацию по большинству вопросов.
  • Если вы планируете создавать собственные плагины, взгляните на следующие книги: Contributing to Eclipse. Авторы: Бек (Beck) и Гамма (Gamma). Building Commercial-Quality Plug-Ins. Авторы: Клэйберг (Clayberg) и Рубель (Rubel). Обе книги изданы в издательстве Addison-Wesley.

Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational, Open source
ArticleID=96874
ArticleTitle=Почему я преподаю Eclipse
publish-date=06152005