Средства разработки под linux
Библиотека сайта rus-linux.net
Интегрированные средства (среды) разработки (IDE) не являются критически необходимым компонентом программной разработки. В традициях UNIX вполне достаточным для ведения программной разработки считается использование текстового редактора, обладающего дополнительными развитыми свойствами, такими как цветовая разметка текста, функции контекстного поиска и замены. Удовлетворяющих таким требованиям редакторов в Linux великое множество, начиная с традиционных vim и Emacs , и до простого редактирования в mc по F4. Опыт использования показывает, что этих средств вполне достаточно вплоть до средних размеров проектов.
Но использование IDE часто позволяет более производительно вести отработку программного кода, оперативнее выполнять в связке цикл: редактирование кода — сборка проекта — отладка. Значительно возрастает роль IDE в разработке GUI приложений, потому как большинство IDE предполагают в своём составе визуальные построители графических экранов.
Под Linux доступно весьма много разных IDE, различной степени интегрированности. Их уже настолько много, что становится бессмысленным описывать все, или значительную их часть в деталях: использование тех или иных IDE становится, в значительной мере, вопросом субъективных предпочтений и привычек. Можно перечислить только несколько из 1 , числа наиболее широко используемых IDE (и показан их внешний вид, чтобы их «различать в лицо»):
- 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 , после очистки от построенных исполнимых файлов:
- 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:
- 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 (указан выше). Установка бинарная . - 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
- Но это предупреждение, в равной мере, относится ко всем IDE, реализованным на Java (а все наиболее развитые IDE реализованы именно на Java: Eclipse IDE, Solaris Studio, . ) — все они предпочитают (работают эффективнее) использование оригинального Sun JDK , а не OpenJDK. Sun JDK можно свободно загрузить с сайта Oracle и установить в своей системе (пожалуй, это следует сделать, если вы планируете активно использовать IDE построенные на Java).
- 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 - 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):
- 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 Не по принципу «эти лучше других», а только потому, что эти попросту «под руку попали».
Среды разработки
Среды разработки приложений в Linux. Интегрированные среды разработки приложений в Linux. Программы для программирования в Linux. См. также редакторы кода.
KDevelop
KDevelop — кроссплатформенная интегрированная среда разработки (IDE) для C/C++, Python, JavaScript, PHP.
Eric
Code Blocks
Code Blocks — интегрированная среда разработки (IDE) для C, C++ и Fortran. Code Blocks обладает всеми необходимыми функциями для разработки проектов.
Eclipse
Eclipse — интегрированная среда разработки (IDE). Имеет модульную архитектуру, что дает возможность существенно расширять и изменить функциональность среды под свои нужды.
Aptana Studio
Aptana Studio — бесплатная среда разработки (IDE) web-приложений. Поддерживаются основные языки программирования, подсветка синтаксиса, автодополнение кода, переход по функциям (definitions) и так далее.
Qt Creator
Qt Creator — бесплатная кросс-платформенная среда разработки (IDE), основанная на библиотеке QT и предназначена для редактирования, компиляции и отладки кода.
NetBeans
NetBeans — мощная бесплатная интегрированная среда разработки приложений (IDE). Поддерживает языки программирования Java, PHP, JavaScript, Ajax, Ruby, Ruby on Rails, C/C++ и другие.