Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com

Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

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

О.И.Цилюрик

Настоящая статья является дополнением к книге «Инструменты Linux для Windows-программистов». Все примеры к тексту вы можете скачать в виде общего архива.


Интегрированные средства (среды) разработки (IDE) не являются критически необходимым компонентом программной разработки. В традициях UNIX вполне достаточным для ведения программной разработки считается использование текстового редактора, обладающего дополнительными развитыми свойствами, такими как цветовая разметка текста, функции контекстного поиска и замены... Удовлетворяющих таким требованиям редакторов в Linux великое множество, начиная с традиционных vim и Emacs, и до простого редактирования в mc по F4. Опыт использования показывает, что этих средств вполне достаточно вплоть до средних размеров проектов.

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

Под Linux доступно весьма много разных IDE, различной степени интегрированности. Их уже настолько много, что становится бессмысленным описывать все, или значительную их часть в деталях: использование тех или иных IDE становится, в значительной мере, вопросом субъективных предпочтений и привычек. Можно перечислить только несколько из 1, числа наиболее широко используемых IDE (и показан их внешний вид, чтобы их «различать в лицо»):

  1. Kdevelop (http://kdevelop.org/) - среда разработки проекта KDE, активно развивается с 1998 г. Kdevelop помимо проектов на языке C, позволяет вести проекты практически на всех используемых в Linux языках: C++, Perl, Python, PHP, Java, Fuby, Ada, Bash, Pascal, Fortran. Эта среда позволяет интегрировать (технология KParts) различные текстовые редакторы, но основным редактором является Kate.

    Kdevelop плотно интегрирован с Linux (в отличие от большинства других IDE он не является много-платформенным). Среда умеет генерировать начальные скелеты приложений. Отличительной особенностью Kdevelop (большим плюсом в некоторых случаях) является то, что среди таких шаблонов есть и проект модуля ядра (драйвера) Linux:


    Шаблоны проектов Kdevelop (архив Kdevelop.tgz) достаточно громоздкие. Но это свойственно всем IDE. Вот как выглядит простейший проект, построенный для Cmake, после очистки от построенных исполнимых файлов:

$ make clean

...

$ du -hs

248K.




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

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

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

    На рисунке показан возможный вид в Eclipse IDE минимального проекта, отрабатываемого под архитектуру ARM7:

$ file factorial

factorial: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped




  1. Oracle Solaris Studio (http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html - бывший проект Sun Solaris Studio), один из старейших проектов, изначально ориентирован на операционную систему Solaris, но там же есть альтернативная реализация для Linux. Компилятор в составе Solaris Studio (сс) обладает особыми оптимизирующими свойствами и нередко генерирует более эффективный и быстродействующий код, чем gcc. Но среда может быть настроена и на использование компилятора gcc. Ориентирован на языки программирования: C, C++ и Fortran, с дополнительными плагинами от сторонних производителей (устанавливаются непосредственно из Solaris Studio): Java, PHP, Python, Ruby, Ada (но это может потребовать дополнительной установки Oracle JDK).


    Solaris Studio основан на NetBeans IDE, выполнен на Java (как и большинство средств OS Solaris). Имеет очень богатые настройки (архив SolarisStudio.tgz), в том числе и в части используемых компиляторов:


    Solaris Studio не представлен в репозитариях дистрибутивов Linux, и должен устанавливаться из инсталляционных файлов с сайта Oracle (указан выше). Установка бинарная.

  2. IntelliJ IDEA (http://www.jetbrains.com/idea/), проект, активно развиваемый с 2000 г., ориентированный на язык Java, но имеющий развитые инструменты разработки и отладки под Android (имеет эффективный эмулятор Android, основанный на виртуальной машине QEMU). Развиваются две реализации IDE: свободная (общедоступная) и профессиональная (проприетарная).

    Вот как выглядит в IntelliJ IDEA проект для Android (архив IDEA.tgz) и эмулятор Android в котором это приложение отлаживается:



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

$ ./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

  1. Но это предупреждение, в равной мере, относится ко всем IDE, реализованным на Java (а все наиболее развитые IDE реализованы именно на Java: Eclipse IDE, Solaris Studio, ...) - все они предпочитают (работают эффективнее) использование оригинального Sun JDK, а не OpenJDK. Sun JDK можно свободно загрузить с сайта Oracle и установить в своей системе (пожалуй, это следует сделать, если вы планируете активно использовать IDE построенные на Java).
  2. Code::Blocks IDE (http://www.codeblocks.org/) — свободная много-платформенная среда разработки, сама система написана на С++, с использованием переносимой графической библиотеки wxWidgets (http://www.wxwidgets.org/). Поддерживает языки программирования С и С++, но для разнообразных операционных систем (Windows, Linux, Mac OS X), среду можно собрать практически под любую UNIX систему, например FreeBSD. Обеспечивает кросс-разработку под ряд используемых процессорных платформ (ARM, AVR). Среда создаёт шаблоны приложений и поддерживает разработку для многих графических платформ (GTK+, Qt, wxWidgets, GLUT и другие), поэтому может оказаться особенно удобной для проектирования GUI приложений.

    Эта среда предполагает использование (на выбор) различных компиляторов С/С++ из числа установленных в системе:


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

     



    Проекты, созданные Code::Blocks, очень компактны, что приятно отличает её от многих других IDE (здесь показан объём вместе с собранным бинарным приложением):

    $ du -hs first

    40K first

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

    Geany работает не с какими-либо специфическими проектами, а с файлами программного кода, собираемыми традиционным make. На рисунке показан вид в Geany обсуждавшегося ранее приложения создания библиотек, ниже виден запущенный в окне терминала Geany менеджер mc (отсутствие специфических для IDE «наворотов» и определяет гибкость и универсализм Geany):


  4. Glade (http://glade.gnome.org/) — Glade не является IDE в том смысле, как описанные ранее. Это свободная система визуального создания графических интерфейсов (GUI), которая может создавать шаблон практически под любую графическую библиотеку (сам Glade написан на основе GTK+). Создадим шаблон приложения (архив Glade.tgz):

$ wxglade

...


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

CCOPT = `wx-config --cxxflags`

LDOPT = `wx-config --libs`

app: app.cpp

g++ $(CCOPT) $(LDOPT) $< -o $@

    Далее мы можем открыть полученный проект для дальнейшей работы в уже рассмотренный ранее Geany... Тем самым устраняется нагромождение «под одной крышей» слишком интегрированных IDE: и генерации визуальных образов GUI, и отработка программного кода.

Это далеко не все IDE, активно применяемые в разработках в Linux. Из других некоторые стоило бы хотя бы просто назвать «по имени»:

  • Anjuta (http://www.anjuta.org/) - официальная интегрированная среда разработки проекта GNOME, для разработки на языках: C, C++, Vala, Java, JavaScript, Python. Особенно хорошо подходит для разработки GUI приложений.
  • QDevelop (http://code.google.com/p/qdevelop/) в связке с QtDesigner (http://trolltech.com) или Qt Creator (http://trolltech.com/developer/qt-creator) — представляют собой мощный комплекс для отработки графических приложений, базирующихся на библиотеке Qt. Qdevelop представляет собой облегчённую версию Kdevelop, хотя и построен на совершенно отличном коде. Развитие Qdevelop начато в 2006г.
  • HaiQ (http://groups.google.com/group/haiq/) — ещё одна много-платформенная IDE, ориентированная на разработку с использованием библиотек Qt.

Приведенный беглый обзор ни в какой мере не рассчитан как объективное представление или сравнение всех доступных в Linux средств разработки. Заметим здесь, что разнообразных средств разработки в Linux намного больше, чем в Windows, но это разнообразие создаёт и некоторую растерянность в выборе оптимальных инструментов под конкретный программный проект. Некоторое сравнение (но также ограниченное) можно найти по ссылке http://ru.wikipedia.org/wiki/Сравнение_средств_разработки.

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


1 Не по принципу «эти лучше других», а только потому, что эти попросту «под руку попали».


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют