Содержание


Инструменты ОС Linux для разработчиков приложений для ОС Windows. Часть 9. Интегрированные среды разработки

Comments

Интегрированные среды разработки (IDE – Integrated Development Environment) не относятся к обязательным компонентам процесса разработки ПО, и это утверждение особенно применимо к программированию на платформе Unix / Linux. В Unix для разработки программ традиционно считается достаточным наличие только текстового редактора, правда обладающего дополнительными возможностями, такими как цветовая разметка текста, функции контекстного поиска и замены. В Linux существует большое количество редакторов, удовлетворяющих таким требованиям, начиная с традиционных vim и Emacs, или простого редактирования файлов в mc. И как показывает опыт, этих средств вполне достаточно для разработки проектов небольшого и среднего масштаба.

Но использование IDE часто позволяет более эффективно организовать процесс разработки ПО и оперативно выполнять цикл: редактирование кода — сборка проекта — отладка приложения. Также роль IDE возрастает при разработке GUI-приложений, так как большинство IDE предлагают в своём составе визуальные построители (визарды) графического интерфейса пользователя.

Интегрированные среды разработки

Для ОС Linux доступно множество различных IDE, и их уже настолько много, что подробное описание становится бессмысленным, так как выбор и использование конкретной среды разработки определяется, в значительной мере, субъективными предпочтениями или привычками. Ниже перечислены только наиболее широко используемые IDE с примерами графического интерфейса, чтобы можно было сделать хотя бы предварительные выводы.

Kdevelop IDE – это среда разработки проекта KDE, которая активно развивается с 1998г. Помимо проектов на языке C в ней можно создавать проекты практически на всех языках, которые используются в Linux, C++, Perl, Python, PHP, Java, Fuby, Ada, Bash, Pascal, Fortran. Кроме того среда позволяет интегрировать (технология KParts) в себя различные текстовые редакторы, но основным редактором является Kate.

Среда Kdevelop не является мульти-платформенной, в отличие от многих других IDE, и может использоваться только на платформе Linux (но вне зависимости от используемого рабочего окружения: KDE, GNOME, MATE и другие). Также она может генерировать начальные скелеты приложений. Отличительной особенностью Kdevelop (и большим преимуществом для отдельных сценариев) является то, что среди таких шаблонов есть и проект модуля ядра (драйвера) Linux, как показано на рисунке 1. На рисунке 2 приведён типовой вид проекта, открытого в KDE.

Рисунок 1. Создание нового проекта в KDE
Создание нового проекта в KDE
Создание нового проекта в KDE
Рисунок 2. Проект, открытый в среде KDE
Проект, открытый в среде KDE
Проект, открытый в среде KDE

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

$ make clean
...
$ du -hs
248K    .

Среды разработки, основанные на платформе Java

Eclipse IDE (Eclipse Integrated Development Environment) - одна из наиболее популярных сред разработки, появившаяся в начале 2000-х годов как закрытый проект IBM, а затем превращённая в открытый проект. Отличительной особенностью Eclipse является возможность усовершенствования за счёт динамических плагинов (которые могут создавать и рядовые пользователи), так существуют плагины для поддержки десятков языков программирования, среди которых: Java, C/C++, PHP, Python и другие, и число доступных плагинов постоянно увеличивается.

Эта среда разработки представлена практически на всех операционных системах, за счёт того, что сама она полностью реализована на платформе Java. Но Eclipse IDE является мульти-платформенной средой не только в плане поддержки множества операционных систем, но и множества аппаратных платформ, отличных от x86, для которых может вестись разработка ПО: ARM, MIPS, PPS и даже микроконтроллеры, например, AVR. Помимо средств разработки, для Eclipse IDE доступны плагины для программной эмуляции других аппаратных платформ (например, Android ARM) с поддержкой отладки. На основе Eclipse IDE сторонними разработчиками уже было создано много других IDE (клонов), предназначенных для узкоспециализированных областей, что может создать сложности в выборе конкретной модификации IDE.

Eclipse IDE представлена в репозитариях практически любого дистрибутива Linux, откуда её можно установить. Но проект постоянно развивается, поэтому имеет смысл установить наиболее свежую реализацию IDE прямо с сайта проекта.

На рисунке 3 показан простейший проект для разработки под архитектуру ARM7, открытый в Eclipse IDE.

Рисунок 3. Проект, открытый в Eclipse IDE
Проект, открытый в Eclipse IDE
Проект, открытый в Eclipse IDE

Среда Oracle Solaris Studio (бывший проект Sun Solaris Studio) - это один из старейших проектов, изначально ориентированный на операционную систему Solaris, но существует и альтернативная реализация для ОС Linux. Компилятор в составе Solaris Studio (сс) обладает особыми возможностями по оптимизации и нередко может генерировать более эффективный и быстродействующий код, чем компилятор gcc. Но среда может быть настроена и на использование компилятора gcc. Эта среда в основном ориентирована на работу с языками программирования: C, C++ и Fortran, а с дополнительными плагинами от сторонних производителей, которые можно установить непосредственно из Solaris Studio, можно работать и другими языками: Java, PHP, Python, Ruby, Ada. Правда для поддержки дополнительных языков может потребоваться установить Oracle JDK (вместо или в дополнение к OpenJDK, установленного в Linux дистрибутивах по умолчанию).

Рисунок 4. Пример проекта, открытого в Solaris Studio
Пример проекта, открытого в Solaris Studio
Пример проекта, открытого в Solaris Studio

Среда Solaris Studio основана на другой IDE - NetBeans IDE, реализованной также на платформе Java, и имеет богатые настройки, позволяющие, в том числе, выбрать используемые компиляторы, как показано на рисунке 5.

Рисунок 5. Окно для выбора компиляторов в Solaris Studio
 Окно для выбора компиляторов в Solaris Studio
Окно для выбора компиляторов в Solaris Studio

К сожалению, среда Solaris Studio не представлена в репозитариях дистрибутивов Linux, и должна устанавливаться из инсталляционных файлов со страницы проекта на сайте Oracle, кроме того для установки используются готовые бинарные пакеты, а не исходный код.

Проект IntelliJ IDEA IDE активно развивается с 2000 года и в основном ориентирован на язык Java, но также предлагает развитые инструменты разработки и отладки для Android на базе эффективного эмулятора Android, основанного на виртуальной машине QEMU. Для IntelliJ IDEA существуют две реализации IDE: свободная с ограниченной функциональностью (общедоступная) и профессиональная (проприетарная).

На рисунках 6 и 7 представлен IntelliJ IDEA проект для Android (каталог IDEA в архиве в разделе "Материалы для скачивания") и эмулятор Android для отладки этого приложения:

Рисунок 6. Проект в IntelliJ IDEA
Проект в IntelliJ IDEA
Проект в IntelliJ IDEA
Рисунок 7. Эмулятор Android в IntelliJ IDEA
Эмулятор Android в IntelliJ IDEA
Эмулятор Android в IntelliJ IDEA

При попытке запустить IntelliJ IDEA из консоли Linux можно увидеть предупреждение:

$ ./idea.sh
OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-43.1.8.3.fc12-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)
WARNING: You are launching IDE using OpenJDK Java runtime
...
NOTE: If you have both Sun JDK and OpenJDK installed
please validate either IDEA_JDK or JDK_HOME environment variable points 
to valid Sun JDK installation

Это предупреждение в равной мере относится ко всем IDE, реализованным на языке Java, а, как уже говорилось, все наиболее развитые IDE реализованы именно на Java. Для всех этих сред предпочтительным будет использование оригинального Sun JDK, а не OpenJDK. Пакет Sun JDK можно загрузить и установить с сайта Oracle, и это следует сделать, так как среды, реализованные на платформе Java, могут более эффективно взаимодействовать именно с Sun JDK.

Альтернативные среды разработки

Code::Blocks IDE — это свободная мульти-платформенная среда разработки, написанная на С++ с использованием переносимой графической библиотеки wxWidgets. Эта IDE поддерживает языки программирования С и С++ с возможностью разработки для различных операционных систем (Windows, Linux, Mac OS X). Также среду можно адаптировать практически для любой UNIX-системы, например FreeBSD. Среда Code::Blocks обеспечивает мульти-платформенную разработку для нескольких процессорных архитектур (ARM, AVR) и многих графических окружений (GTK+, Qt, wxWidgets, GLUT и т.д.), поэтому может оказаться особенно удобной для проектирования GUI приложений. Эта среда, также как и Solaris Studio, допускает использование различных компиляторов С/С++ из числа установленных в системе:

Рисунок 8. Выбор компилятора в Code::Blocks IDE
Выбор компилятора в Code::Blocks IDE
Выбор компилятора в Code::Blocks IDE

Кроме того, Code::Blocks предлагает богатый набор шаблонов для создаваемых приложений (различные платформы, различные графические библиотеки), и проекты, созданные в Code::Blocks IDE, получаются очень компактными, в отличие от многих других IDE.

Рисунок 9. Типы проектов, доступные в Code::Blocks IDE
Типы проектов, доступные в Code::Blocks IDE
Типы проектов, доступные в Code::Blocks IDE

Geany — мульти-платформенная популярная среда разработки с низким порогом вхождения. По сути, Geany – это не полноценная среда разработки, а высоко-функциональный текстовый редактор с цветовой разметкой, встроенными возможностями для работы с gcc, make и т.д. Благодаря этому Geany можно использовать при разработке программ более чем на 40 языках программирования, среди которых: C/C++, Java, JavaScript, Tcl, PHP, Python, XML/HTML и другие. По этой же причине Geany работает не со специальными проектами, а напрямую с файлами исходного кода, собираемыми традиционной утилитой make. На рисунке 10 показано открытое в этой среде приложение из предыдущих статей, в котором виден и запущенный в окне терминала Geany менеджер mc (отсутствие специфических возможностей IDE и определяет гибкость и универсализм Geany):

Рисунок 10. Среда разработки Geany
Среда разработки Geany
Среда разработки Geany

Glade IDE также не является средой разработки в том смысле, как описанные ранее. Это свободная система для визуального проектирования графических интерфейсов (GUI), которая может использоваться для создания шаблонов практически для любой графической библиотеки (сама среда Glade написана на GTK+). На рисунке 11 представлен рабочий интерфейс Glade в процессе создания приложения, а сам код примера можно найти в каталоге glade архива в разделе "Материалы для скачивания".

Рисунок 11. Создание GUI-приложения в Glade
Создание GUI-приложения в Glade
Создание GUI-приложения в Glade

Далее остаётся написать сценарий сборки (Makefile) для сгенерированного шаблона приложения. Ниже представлен пример Makefile для приложения, использующего wxWidgets:

CCOPT = `wx-config --cxxflags`
LDOPT = `wx-config --libs`
app: app.cpp
        g++ $(CCOPT) $(LDOPT) $< -o $@

Теперь можно открыть полученный проект в другой IDE (или просто текстовый редактор) и продолжить его разработку. Благодаря подобному подходу устраняется необходимость в сложных IDE, которые могут поддерживать и визуальное проектирование GUI и редактирование программного кода.

Что осталось за кадром

Мы перечисли далеко не все IDE, активно применяемые при разработке ПО на платформе в Linux. Стоит также упомянуть следующие среды разработки:

  • Anjuta - официальная интегрированная среда разработки проекта GNOME, для разработки на языках: C, C++, Vala, Java, JavaScript, Python. Особенно хорошо подходит для разработки GUI приложений.
  • QDevelop в связке с QtDesigner или Qt Creator — представляет собой мощный комплекс для создания графических приложений, базирующихся на библиотеке Qt. Qdevelop представляет собой облегчённую версию Kdevelop, хотя и построен на совершенно отличном коде.
  • HaiQ — ещё одна мульти-платформенная IDE, ориентированная на разработку с использованием библиотеки Qt.

Существует такое определение, что «UNIX — это операционная система, которую писали программисты для программистов». Это же правило можно применить и к Linux. В данной системе представлены практически все существующие языки программирования и инструменты для разработки. Если поддержка необходимого языка или среды разработки отсутствует в репозитарии вашего дистрибутива, то наверняка его можно найти на сайтах сторонних разработчиков.

Заключение

Представленный краткий обзор не может и не должен рассматриваться как сравнение всех доступных в Linux средств разработки. Стоит отметить, что на платформе Linux доступно намного больше разнообразных средств разработки, чем, например, в ОС Windows, но именно это разнообразие и создаёт некоторую растерянность в выборе оптимальных инструментов под конкретный программный проект. Некоторое ограниченное сравнение инструментов для разработки ПО можно найти в Wikipedia на данной странице.

Но после успешного завершения процесса разработки ПО, необходимо доставить готовое созданное решение пользователям и установить его на их станциях... И следующая статья будет посвящена рассмотрению именно этих вопросов.


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


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=968506
ArticleTitle=Инструменты ОС Linux для разработчиков приложений для ОС Windows. Часть 9. Интегрированные среды разработки
publish-date=04152014