«Настоящий программист не использует интегрированную среду разработки, ведь ему вполне достаточно [вставьте сюда название любого текстового редактора] с некоторыми плагинами.» Все мы когда-то слышали подобное утверждение. Хотя и сложно не согласиться с ним, следует признать, что интегрированная среда разработки все же может оказаться полезной в ряде случаев. Во-первых, ее проще настроить и использовать сразу же после установки. Кроме того, в ней проще начинать разработку проекта с нуля. Поэтому в данной статье я постараюсь привести список наиболее удобных интегрированных сред разработки с поддержкой языков программирования C/C++ для Linux.
Почему я акцентирую внимание именно на языках C/C++? Скорее всего, потому, что C является моим любимым языком программирования, кроме того, нужно с чего-то начинать. Вам также следует учесть тот факт, что существует большое количество подходов к разработке кода на языке C, поэтому с целью сокращения списка в него были включены лишь «реальные интегрированные среды разработки», а не текстовые редакторы, такие, как GEdit или Vim с плагинами. Данные текстовые редакторы не являются плохой альтернативой интегрированных сред разработки по каким-либо причинам, тем не менее, в случае их рассмотрения список оказался бы слишком длинным.
1. Code::Blocks
Начнем с моего любимого программного продукта, а именно, Code::Blocks — простой и быстрой интегрированной среды разработки с поддержкой языков программирования C/C++. Как и в любой достойной интегрированной среде разработки, в ней реализованы подсветка синтаксиса, вкладки, механизмы автодополнения кода и управления проектами, а также интегрирован отладчик. Ее главным преимуществом является простая система плагинов, которая позволяет добавить поддержку таких незаменимых инструментов, как Valgrind и CppCheck, а также реализовать такие менее нужные функции, как мини-игра Тетрис. Мне же она нравится из-за главным образом из-за своего набора очевидных и удобных горячих клавиш, а также большого количества параметров конфигурации, которые могут пригодиться в тех или иных ситуациях.
2. Eclipse
Я помню о том, что собирался описывать лишь «реальные интегрированные среды разработки», а не текстовые редакторы с плагинами, при этом Eclipse как раз является «реальной интегрированной средой разработки». Но для программирования на языке C в Eclipse все же нужно установить небольшой плагин. Таким образом, я не противоречу сам себе. Кроме того, было бы невозможно создать список интегрированных сред разработки без упоминания такого монстра, как Eclipse. Нравится вам это или нет, Eclipse остается отличным инструментом для разработки программных продуктов на языке Java. А благодаря проекту CDT, данная интегрированная среда разработки может с успехом использоваться и для разработки программных продуктов на языках C/C++. Вы сможете пользоваться всеми возможностями Eclipse, включая такие традиционные возможности, как автодополнение кода, визуализация структуры кода, генерация кода и мощный рефакторинг. На мой взгляд, единственным недостатком данной интегрированной среды разработки по сравнению с Code::Blocks является тяжеловесность. Она является крайне тяжеловесной, поэтому для ее полной загрузки требуется некоторое время. Но если ваша машина может достаточно быстро работать с ней или же вы являетесь фанатом Eclipse, эта интегрированная среда разработки будет отличным выбором.
3. Geany
Geany является более гибкой, но менее функциональной противоположностью Eclipse. При этом отсутствующие функции (например, отладчик) с лихвой компенсируются небольшими полезными инструментами: полем для добавления заметок, механизмом создания проектов из шаблонов, полем визуализации структуры кода, настраиваемыми горячими клавишами, а также инструментом для управления плагинами. Все-таки, Geany скорее можно назвать мощным текстовым редактором, а не интегрированной средой разработки. Однако, я включил ее в данный список из-за легковесности и отлично спроектированного интерфейса.
4. MonoDevelop
Еще одним монстром является MonoDevelop — интегрированная среда разработки с уникальными пользовательскими качествами, обусловленными ее внешним видом и интерфейсом. Лично мне нравятся ее встроенные инструменты для управления проектами и работы с системой контроля версий. Ее система плагинов также впечатляет. Но, по какой-то причине, все ее параметры конфигурации, а также поддержка множества языков программирования смущают меня. Данная интегрированная среда разработки остается отличным инструментом, который я использовал много раз в прошлом, но все же не может претендовать на первое место в том случае, если речь идет о работе с «простым» языком программирования C.
5. Anjuta
Интегрированная среда разработки Anjuta, отлично интегрированная с окружением рабочего стола GNOME, может вызывать противоречивые чувства. Я привык считать ее расширенной версией Geany с поддержкой отладчика, причем ее интерфейс является более продуманным. Мне нравится ее система вкладок, предназначенная для переключения между списком проектов, списком директорий и областью визуализации структуры кода. При этом мне хотелось бы использовать некоторые дополнительные горячие клавиши для перемещения в рамках файла. В общем, это отличный инструмент, позволяющий изменять множество параметров компиляции и сборки проекта, который может удовлетворить нужны самого требовательного разработчика.
6. Komodo Edit
Я не очень хорошо знаком с интегрированной средой разработки Komodo Edit, но после работы с ней в течение нескольких дней, у меня остались лишь положительные впечатления. Во-первых, ее интерфейс навигации на основе вкладок является достаточно практичным в любых ситуациях. Удобная область визуализации структуры кода очень напоминает аналогичную область интегрированной среды разработки Sublime Text. Более того, система макросов и инструмент сравнения файлов делают интегрированную среду разработки Komodo Edit очень практичной. А библиотека плагинов делает ее практически идеальной. Я использовал слово «практически», так как используемые в ней горячие клавиши показались мне не такими удобными, как в других интегрированных средах разработки. Кроме того, я хотел бы увидеть более специализированные инструменты для работы с кодом C/C++, но этот недостаток свойственен практически всем популярным интегрированным средам разработки. В любом случае, это очень удобный программный продукт.
7. NetBeans
Как и в случае Eclipse, достаточно сложно игнорировать данный монструозный программный продукт. Благодаря наличию вкладок для навигации по файлам проекта, области визуализации структуры кода, механизма отслеживания истории изменений и множества дополнительных полезных инструментов, NetBeans может считаться самой функциональной интегрированной средой разработки из существующих. Но это достоинство может расцениваться и как ее недостаток, причем значительный. Несмотря на наличие множества полезных функций, я предпочитаю использовать программное обеспечение, поддерживающее плагины, так как сомневаюсь, что кому-либо может потребоваться поддержка систем контроля версий Git и Mercurial при разработке одного и того же проекта. Можете считать меня сумасшедшим. Но если вам хватит терпения для того, чтобы разобраться со всеми ее параметрами, вы, скорее всего, разберетесь с любой из интегрированных сред разработки для любой из платформ.
8. KDevelop
Интегрированная среда разработки KDevelop может быть отличным решением для всех фанатов окружения рабочего стола KDE. Она поддерживает огромное количество параметров конфигурации, которыми вы можете воспользоваться при необходимости. Можете считать мое мнение субъективным, но мне никогда не нравился ее интерфейс. Кроме того, я не смог использовать ее для выполнения реальной работы из-за того, что в редакторе кода используется чрезмерное количество различных параметров навигации и изменяемых горячих клавиш. Отладчик также поддерживает чрезмерное количество параметров, поэтому для продуктивной работы с ним требуется продолжительная практика. Однако, в вашем случае все затраты времени наверняка компенсируются гибкостью и мощностью данной интегрированной среды разработки. Кроме того, просто нельзя обойти вниманием отличную документацию, поставляемую в комплекте.
9. CodeLite
Наконец, последняя в списке, но не по значению интегрированная среда разработки CodeLite наглядно демонстрирует то, что вы можете использовать традиционную формулу и получить не ее основе что-либо самобытное. Ее интерфейс напомнил мне интерфейс интегрированных сред разработки Code::Blocks и Anjuta, при этом я был просто поражен ее богатой библиотекой плагинов. Если вам понадобится найти различия в файлах, добавить в файл исходного кода информацию об авторском праве, определить аббревиатуру или разместить свою работу в репозитории Git, для вас найдется подходящий плагин. Если говорить о мелочах, следует отметить, что в данной интегрированной среде разработки отсутствуют некоторые, по моему мнению, полезные горячие клавиши для навигации по коду, при этом я не могу найти каких-либо дополнительных недоработок.
Я надеюсь, что благодаря данному списку вы узнаете о новых интегрированных средах разработки с поддержкой вашего любимого языка программирования. Хотя Code::Blocks и остается моей любимой интегрированной средой разработки, даже при работе с ней иногда возникают значительные трудности. Также следует отметить, что мы рассмотрели далеко не все инструменты, облегчающие процесс разработки программных компонентов на языках C/C++ в Linux. Вы можете сообщить о своем любимом инструменте в разделе комментариев. Если же вы хотите, чтобы я описал интегрированные среды разработки с поддержкой других языков программирования в следующих статьях, вы также можете написать об этом в разделе комментариев.