LINUX.ORG.RU

Лучшее IDE для C/C++

 , ,


2

5

Я знаю, что *nix - это и есть IDE. Но интересуют комплексные программы, а не надстройки над коммандной строкой, то бишь - для гуёв. Хочу собрать как можно больше аргументированых мнений от людей, прошедших долгий путь программиста.

Ответ на: комментарий от andreyu

Это не так

Это так, если, например, сравнивать с API и системой дополненй VSCode

makoven ★★★★★ ()
Ответ на: комментарий от Infra_HDC

Code::blocks

там ещё множественный курсор есть; профайлер на основе gprof

invy

Поддержка cmake есть?

Немаловероятно : https://cmake.org/cmake/help/v3.0/generator/CodeBlocks.html

Автокомплит и проверка синтаксиса с clang'ом?

был какой-то плагин для автокомплита: http://forums.codeblocks.org/index.php?topic=15521.0

но непонятно как давно им занимались в последний раз и появился ли новый

grem ★★★★★ ()
Ответ на: комментарий от andreyu

Хреновая эргономичность - свойство вима, а не пользователя. И перевешивание Esc мало что меняет.

anonymous ()
Ответ на: комментарий от andreyu

Из полезных плагинов могу посоветовать этот набор:

А как же rtags + vim-rtags? (В контексте C++.) По моему опыту индексирует и рефакторит (как минимум) не хуже Qt Creator. Работал бы ещё побыстрее, а то бывает маленько раздражает \rj и фриз на несколько секунд пока clang прожуёт. Баги мелкие приключаются, например я напоролся что symbol-info сломался (там где выводится тип, sizeof, alignof и ещё что-то), но автор оперативно фиксит.

Ну и clang-format само собой чтоб два раза не вставать, раз всё равно llvm+clang ради rtags собирать.

d_a ★★★★★ ()
Последнее исправление: d_a (всего исправлений: 1)
Ответ на: комментарий от makoven

Я не фанат вима, но приводить VSC как контр-пример - бред. Да, там есть 100500 плагинов, но они все написаны вебмакаками и не работают.

Даже нормального плагина для подсветки rst нет. О чём ещё говорить.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Проще обратиться в веб-макаку и написать плагин на nodejs, чем изучать фолиант размером с тору, описывающий тайные значения закорючек в VimL

makoven ★★★★★ ()
Ответ на: комментарий от andreyu

не позволяет полноценно работать с кодом

Тут то и самое время выкатить критерий полноценной работы,

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

grem ★★★★★ ()
Ответ на: комментарий от next_time

нет истории переходов

Есть что-то похожее: View - Jumb Back (Jump Frwd), можно забиндить клавиши.

Если хочется кнопочками (зелёные стрелки), то нужно включить панель View - Toolbars - BrowseTracker. И, конечно же, как оказалось :), есть шорткаты для перехода к реализации/объявлению.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 2)

nvim+deoplete+nerdcommenter хватит всем. Правда, на том, чем можно прострелить себе ногу, я не пишу.

r3lgar ★★★★★ ()

Пока qtcreator, но у негр есть фатальный недостаток - qt5

mittorn ★★★★★ ()
Ответ на: комментарий от a1batross

А вот вброса ради я скажу, что Java-программисты самим себе не осилили написать удобные инструменты.

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

navrocky ()
Ответ на: комментарий от navrocky

У людей и VSC не тормозит. Подумаешь подлагивает - зато IDE.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от mittorn

Пока qtcreator, но у негр есть фатальный недостаток - qt5

Qt5 это достоинство. На всех платформах выглядит хорошо в отличие от других недокросплатформенных тулкитов.

navrocky ()
Ответ на: комментарий от navrocky

откуда у вас такая любовь к проприетарным поделиям типа макоси и винды? зачем под них максимально подстраиваться?

anonymous ()
Ответ на: комментарий от anonymous

откуда у вас такая любовь к проприетарным поделиям типа макоси и винды? зачем под них максимально подстраиваться?

Я где-то писал, что их люблю? Просто приходится иметь с ними дело как ни крути и мне не стыдно глядеть на интерфейс креатора и глаза не вытекают.

navrocky ()

Я пользуюсь KDevelop. Не знаю насчёт «лучшее», сваливать не собираюсь

XMs ★★★★★ ()
Ответ на: комментарий от a1batross

жаба-IDE вообще в первую очередь ужасают человека, привыкшего к QtCreator обилием всяких «табличек» для «свойств», деревьев проекта с непонятными элементами помимо файлов.

это сумасшедшая шайтан-арба с 100500 кнопок и рычажков, и всё это говно пришло из жаба-мира. непонятно, зачем вообще эти люди лезут делать IDE для С++. получается страшно и уродливо.

ckotinko ☆☆☆ ()
Ответ на: комментарий от navrocky

IDEA же. Всем остальным IDE до неё как до луны пешком в плане удобства

В плане удобства NetBeans лучше IDEA. Просто не так раскручена.

iZEN ★★★★★ ()
Ответ на: комментарий от makoven

Это так, если, например, сравнивать с API и системой дополненй VSCode

А если vim сравнивать с яблоком, то он нифига не яблоко.

andreyu ★★★★★ ()
Ответ на: комментарий от navrocky

QT5 говно
Им невозможно пользоваться с тачскрина. Он начинает drug&drop'ать текст, причём копируя его. Это на всех платформах.

mittorn ★★★★★ ()
Ответ на: комментарий от anonymous

Хреновая эргономичность - свойство вима, а не пользователя.

Херовая эргономичность вима - это тараканы в голове пользователя, у которого одна рука приросла к мышке, а вторая к клавишам управления курсором.

И перевешивание Esc мало что меняет.

А что оно должно менять, кроме, собственно, ремапинга esc?

andreyu ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Для меня этот фейл фатален, от того и бомбёжка

mittorn ★★★★★ ()
Ответ на: комментарий от d_a

А как же rtags + vim-rtags? (В контексте C++.) По моему опыту индексирует и рефакторит (как минимум) не хуже Qt Creator.

Пока не использую rtags. Вот когда pon4ik найдет время и доведет все до завершения, то я обязательно попробую снова.

Ну и clang-format само собой чтоб два раза не вставать, раз всё равно llvm+clang ради rtags собирать.

Я использую clang-format как основной форматер.

andreyu ★★★★★ ()
Ответ на: комментарий от mittorn

Бывает. Для меня фатально использование java/js на десктопе. Вот и мучаюсь.

RazrFalcon ★★★★★ ()

TDevelop. Но тамавтокомплит фиговый

mittorn ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Для меня нет, но адекватных решений на java/js тоже нет. Разве что eclipse, но это слишком тяжёлая система разработки

mittorn ★★★★★ ()
Ответ на: комментарий от grem

Тут то и самое время выкатить критерий полноценной работы,

Просто попробуйте использовать vim не только в insert режиме.

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

Вас смущает, что плагины не идут из коробки, как в вижле? Я только рад этому. Мне совсем не улыбается, что вижла грузится 5 минут и запускает кучу неиспользуемого мною говна. Причем большинство этого говна я при инсталляции сказал не устанавливать. Но инсталлятор вижлы сам решает, что ставить, а что нет.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Не стоило бы рассчитывать на это в ближайшем будущем. Ветка с json уже успела устареть и её выкинули :(

Работа отжирает все силы на данный момент.

Автору топика добавил бы, что vim не готов быт ide для плюсов хотя бы в силу отсутсвия нормальной интеграции с отладчиком.

pon4ik ★★★★★ ()
Ответ на: комментарий от pon4ik

Не стоило бы рассчитывать на это в ближайшем будущем. Ветка с json уже успела устареть и её выкинули :(

Вот потому я пока просто жду :)

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

Да, поддержка отладчика в вим никакая.

andreyu ★★★★★ ()

По теме - лучшее, что я трогал это QtCreator(a.k.a qtc).

Есть вещи где он проигрывает CLion(комплит), VisualStudio(отладчик), KDevelop(работа с кодом не на плюсах) и даже eclipse(рефакторинг, работа с кодом не на плюсах(особенно случай с jni)), однако, в общем случае, имхо там самое лучшее подмножество функционала на сей день.

С той оговоркой, что для plain C - есть стрёмые моменты, но я не имею опыта, чтобы сказать насколько они критичны, делал только один относительно длительный проект на plain C, делал в qtc, мне было норм, но многие плюются.

pon4ik ★★★★★ ()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от mittorn

Так Ubuntu перестает фиксить баги кроме как баги безопасности после выхода следующего LTS релиза. Есть такая тенденция, ХЗ, официальная она или нет, но очень наглядно просматривается.

peregrine ★★★★★ ()
Ответ на: комментарий от andreyu

Вот когда если neovim доведут до ума: отвяжут API от VimL и запилят нормальный гуй, тогда может и вернусь

Хотя по поводу lua у меня к ним претензии. Нафиг использовать luajit, который протух, ограничен в платформах и вообще нафиг не вперся для этой задачи. Православный lua от Иерусалимского подошел бы лучше

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от makoven

Вот когда если neovim доведут до ума: отвяжут API от VimL и запилят нормальный гуй, тогда может и вернусь

Я не верю в успех neovim, но желаю ему развиваться в правильном русле.

Хотя по поводу lua у меня к ним претензии. Нафиг использовать luajit, который протух, ограничен в платформах и вообще нафиг не вперся для этой задачи. Православный lua от Иерусалимского подошел бы лучше

Ну этот вопрос лучше задать разработчикам neovim.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Я не верю в успех neovim

А в успех Vim? Говорят, что кодовая база настолько запутана (и старела), что один лишь Моленар способен вносить адекватные правки

makoven ★★★★★ ()
Ответ на: комментарий от peregrine

Да. Потому, именно из-за таких дистров релизить пакеты до исправления всех критических багов не связанных с безопасностью нежелательно

mittorn ★★★★★ ()

turbo c/borland c был замечателен в свое время - есть ли подобное сейчас?

Возможно, emacs можно подкрутить под сабж.

anonymous ()
Ответ на: комментарий от DarkEld3r

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

ckotinko ☆☆☆ ()
Ответ на: комментарий от mittorn

Вообще не желательно релизить сырой софт. Если он всё время сырой - есть git, но надо делать так, чтобы софт не срал в системе при сборке, и писать нормальную инструкцию по сборке. Если чуть стабильнее/медленнее развивается - организовывать свою репу для всех популярных дистрибутивов, благо новые зависимости появляются не так часто.

peregrine ★★★★★ ()

tl;dr: vim

Сразу, почему не IDE. Потому что IDE на самом деле - isolated development environment, а именно ограниченный набор инструментов для ограниченного набора языков (а чаще - одного). На практике же нужно писать одновременно на C++, питоне, cmake, html, qsl, css, js, yaml, json, редактировать конфиги и доки в markdown, локально и удалённо, собирать, коммитить в git, запускать разные сборки, тесты, статические анализаторы, отправлять куски кода в gist, делать http запросы curl'ом на сервер и sql руками в psql, ставить системные пакеты, и это всё в нескольких проектах сразу (основной, части выделенные в отдельные библиотеки, всякие обёртки для них с интеграцией в питон и постгрес, стронние модули в которых захотелось разобраться или нашётся баг/возможность оптимизации). Это вобщем-то обычные будни моих маленьких свободных проектов, про работу я даже не говорю.

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

Итого, моё IDE (и здесь I - именно интегрированное) это тайловый wm notion (бывший ion3), разбитый на 4 окна воркспейс, в каждом от одного до нескольких десятков табов с vim'ами или шеллами. Всё это открывается, закрывается, перемещается между окнами по мере надобности на рефлекторном уровне, при нехватке места подключаются scratchpad'ы (открывающиеся/скрывающиеся по хоткею окна поверх всего с дополнительными терминалами) и второй монитор (обычно там браузер с документацией), все инструменты всегда под рукой и написание куска кода на чём угодно, сборка, отладка, профилирование, тестировние, написание документации, проверка её aspell'ом, коммит, деплой, удалённые проверки и т.п. делаются совершенно бесшовно и не мешая друг другу.

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

А так-то на перехода на *nix я десяток лет сидел исключительно на VC, и позже вынужден был по работе пользоваться несколько месяцев QtCreator'ом, но нет - к описанной среде по возможностям и удобству им никогда не приблизиться.

slovazap ★★★★★ ()
Ответ на: комментарий от slovazap

ограниченный набор инструментов для ограниченного набора языков (а чаще - одного). На практике же нужно писать одновременно на C++, питоне, cmake, html, qsl, css, js, yaml, json, редактировать конфиги и доки в markdown.

Это давно уже всё есть. Среды программирования поддерживают работу с множеством языков в одном проекте.

локально и удалённо, собирать, коммитить в git,

Доступ через Git и Mercurial к локальным/удалённым репозиториям давно уже прозрачно интегрирован во все ведущие IDE.

запускать разные сборки

Легко.

тесты

Это неотъемлемая часть ведущих IDE.

статические анализаторы

Решается плагинами.

, отправлять куски кода в gist, делать http запросы curl'ом на сервер и sql руками в psql

Решается плагинами.

ставить системные пакеты, и это всё в нескольких проектах сразу

У Maven так наполняется локальный репозиторий в каталоге пользователя-программиста.

Так вот, никакая IDE не умеет и толики всего этого сразу

NetBeans, Eclipse могут всё то, что вы перечислили. IDEA для работы с несколькими проектами нужно запускать отдельные экземпляры среды, и у неё есть встроенный терминал командной строки.

iZEN ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.