Ну раз уж так случилось, что я написал свой первый кроссплатформенный хелло ворлд, то пора задуматься и о выборе инструмента. Критерии выбора:
- Много места для рабочего пространства, т.е. всякие там тулбары, меню, заголовки табов и т.п. должны быть минимального размера и при необходимости их можно попрятать.
- Нормальная система горячих клавиш.
- Нормальная интеграция с компилятором (gcc/g++), чтобы подсвечивала все сообщения об ошибках в коде, удобная навигация по ним.
- Желательно, чтобы были шаблоны проектов для wxWidgets, или их можно было легко создать.
Итак, кандидатами стали:
- VIM.
- Eclipse+CDT.
- Netbeans, SunStudio.
- CodeBlocks.
- Codelite.
- KDevelop.
- Anjuta.
Помимо этого опробовал ещё несколько штук абсолютно сырых IDE, которые мне совсем не понравились. Посмотрел ещё в сторону Emacs, но так как я уже давно стал пользователем вима, то переходить во вражеский лагерь нет желания. А теперь, по порядку.
- VIM. К этому редактару я питаю слабость. Он мне очень импонирует своими режимами редактирования тескта, навигацией по тексту, полной настраиваемостью и минималистичностью. Плюсы: САМОЕ большое свободное пространство для кода, минималистичен, настраивается всё что хочешь, интеграция с компилятором есть. Минусы: это всё ж таки текстовый редактор, а не IDE. Из коробки нет дерева проектов, нет шаблонов для wxWidgets, мейкфалом нужно заниматься самому.
- Eclipse+CDT. Эту связку я использовал под виндовс, когда только начинал писать, используя wxWidgets. Для меня он привычен, так как я писал в нём ещё на Java, PHP, Perl, Python, после чего перешёл на Aptana (что тоже является эклипсом). Какое-то время программировал во FlexBuilder, а это тоже эклипс. Так что ничего привычнее для меня нет. Плюсы: много места для кода, развитая и привычная система горячих клавиш, плагинами расширяется до всемогущего комбайна. Минусы: кушает много памяти, нет заготовок для wxWidgets.
- Netbeans, SunStudio. Это, по сути, одно и тоже. Возможно, что SunStudio использует нетбинс — не проверял. Плюсы: красиво, душевно... Панели настраиваются, куча всяких профилировщиков, дерево проекта, шустрое автодополнение (но какое-то корявое, не всегда предлагает список на выбор). Плюсы для мигрирующих с виндовс: свои шрифты, очень похожие на стандартные VisualStudio и Windows. Минусы: слишком цветасто, мне в таком трудно работать, требователен к ресурсам (потому что Java), место для кода освободил потратив минут 10 на поиск нужной опции в настройках (убирал лишние тулбары и делал меньше иконки).
- CodeBlocks. Работал с ним ещё до Eclipse+CDT. Даже привык к этой среде разработки. Плюсы: шаблоны для wxWidgets, интеграция с формошлёпками для виджетов, много места для кода, мало ест ресурсов, минималистичен, с горячими клавишами тоже всё нормально. Минусы: код для wxWidgets-приложения генерится некрасивый, но это следствие интеграции с wxFormBuilder (вообще, тут по способу работы с ГУИ CodeBlocks очень похож на Borland C++Builder). Тут можно создавать пустой проект и добавлять свои классы, но тогда придётся как-то иначе использовать прелести формошлёпства.
- Codelite. Более равзитая, чем CodeBlocks. Интегрирован с системой контроля версий. С ней поработал мало, поэтому взгляд поверхностный. Плюсы: тоже, что и у CodeBlocks. В добавок эта IDE более развита, больше примочек. Минусы: пока не найдены, но наверняка есть.
- KDevelop. KDE-шное, с большими икноками. Ставил как-то и до этого, ещё когда на ноуте стоял Debian (сейчас Ubuntu). Не смог справиться с этой средой, чтобы хоть как-то проверить её. Поэтому решил, что она не для меня, во всяком случае пока.
- Anjuta. Минималистична, с большими икноками, до этого никогда не ставил. WxWidgets с ходу не подхватила. Плюсы: есть заготовка для wxWidgets, настраивается почти всё, в файлы добавляется текст с пояснением о лицензии (думаю, что это важно для opensource). Минусы: какое-то странное дерево проектов, может оно содержит что-то важное, но я не понял, зачем мне нужны там такие файлы, как README, AUTHORS, NEWS и т.п. наверно это свзязано с идеологией этой IDE, которая мне неизвестна.
ИТОГО: Для себя я выберу на ближайшее время следующее: VIM, Codelite, Netbeans.
- VIM мне нравится как текстовый редактор, я в нём довольно много работаю и уже привык его vimdiff, split и многому другому, что делает работу удобней. Я придерживаюсь мнения, что в Linux нет отдельных IDE, потому что Linux — это и есть IDE.
- Codelite мне понравился своей интеграцией с wxWidgets и кучей плагинов.
- Netbeans — профилировщиками, которые дают возможность оценить нагрузку на процессор, память, узнать количество нитей.