LINUX.ORG.RU
ФорумTalks

А посоветуйте, пожалуйста, IDE C++ для работы с реально большими проектами?

 , , , ,


0

2

Не успев толком отдохнуть, получил предложение и устроился на работу. В общем, я заявил, что весьма немалый (несколько тысяч классов, а кода уж и не сосчитать) проект и KDevelop несовместимы (sic!), программисты, почти все, согласны. Теперь решается вопрос с заменой IDE (коллективное заявление). Мне, как имеющему немалый опыт и соответствующую специализацию, предложили обсудить это с программистами и админами + вынести коллективное решение (я бы на месте руководства запряг начальника отдела, но он вообще в Vim кодит и согласился на мою кандидатуру). Сам работаю в CodeBlocks, но слишком многие против этой IDE (аж 72% по результатам голосования). Посоветуйте, что ли... Буду рад :)

PS: Линукс тут при том, что вся компания на нем и крутится :D

PPS: по результатам голосования среди программистов почти все IDE набрали равное количество голосов.

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

Какая-нибудь IDE делает то, что ты хочешь?

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

Ну или можно сделать аналогичный макрос, внутри которого ничего не будет дополняться. Не осиливают IDE полную поддержку языка С++ со всеми фичами.

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

Я думаю, что сделать то, что ты хочешь, гораздо сложнее, чем кажется.

Не осиливают IDE полную поддержку языка С++ со всеми фичами.

Правильнее сказать «не осиливают догадаться о значении недописанного кода».

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

Мужик! Наверное сам все эти классы написал и все про них помнишь...

А вот и нет, второй месяц только работаю с этим хозяйством. Просто знаю, где и куда грепать :)

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

Думаю, если я им скажу про макинтоши, то получу больничный. Да и сам не люблю - зонд, еще и внаглую. Кстати, отсутствие выравнивания шрифта по RGB - минус, который хорошо ощущается, когда долго работаешь с текстом (кодом)

abcarado
() автор топика

JetBrains AppCode. Он сейчас плюсы поддерживает, пока не запилят отдельную IDE. Просто СамолетоМозги всегда отличались годнотой. Еще убогоEclipse CDT и ради лулзов попробовать NetBeans. В качестве фоллбека - незареганый SublimeText

Почему одни жабоиде? На них проще замутить хитроумные индексаторы, потому на более тормозном языке работает быстрее за счет алгоритмов

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

я заявил

Ну, если ты заявил, то тебе и карты в руки. ЛОР-то тут при чём?

ЗЫ Юзаю Эклипс.

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

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

Шаблонные стереотипы.

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

«не осиливают догадаться о значении недописанного кода»

Почти так, концептов (type classes) в C++ нет, но IDE вполне могут выводить эту информацию из кода. Парсеру и семантическому анализатору доступен весь код, а не только один translation unit как компилятору.

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

Тут на швабре недавно писали.

Недавно неожиданно свалилось задание на С++ — и я в полной мере ощутил «красоту» IDE от MS. Как говорится, всё познаётся в сравнении… Так вот: даже после бесплатной IntelliJIdea даже Visual Studio Pro и Ultimate — это набор свистелоперделок, которыми крайне тяжело пользоваться, которые глючат и работают непонятно как. Один ИнтеллиСенс чего стоит — пилят уже не одну версию, а нормального перехода «Go to definition» в более или менее крупном проекте так и нет. При этом релизы выпускаются регулярно, где всё просто охренительно как здорово, где куча всякого нового для проектирования и рисования квадратиков, где всякие интерфейсы меняются и производится переход с объёмного в плоский интерфейс… При этом нормального набора кода под C++ так и нет. Есть красивые презентации…

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

Ну да, ну да. Пруф про imessage, яфон/другой банальный зонд и яббл нужен? iCloud забагал и вынес две недели фоток. IOS - говно редкое и гламурное. iMac нормально не настраивается. Еще и инцидент с ssd. Ну а про неудобный (ИМХО) таск бар говорить бесполезно. За такие деньги видяхи (кроме упорото-тонкого imac, который задолбаешься чистить от пыли по завышенной цене) - говно редкое. Магазин эпл - УГ. Одни регионы и покупки чего стоят... А инцидент со сливом местоположения по вышкам? Глючные апдейты. На слабых, но совместимых железках макось глючит, даже без стороннего софта. И предложение покупать сущий говнокод с минимумом возможностей за бабки не прикалывает (представьте, у вас дома за проезд в лифте будут по полтосу стрелять?). + ко всему почитание юзера за криворукого дебила с манией величия.

abcarado
() автор топика
Ответ на: комментарий от Behem0th

Личные предпочтения. Малая конфигурабельность. Отсутствие нормального рефакторинга, дополнения, куч других полезных плюшек. Оценка времени вызова чего-либо. Браузер классов, справка, классы по тегам. Проще говоря, не предназначен для больших проектов. Пожалуй, так. Сами сравните тот же Eclipse (или чего еще монструозное) и KDevelop :D Но вообще не плоха, очень даже. Но гвозди удобнее забить молотком... ага :)

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

iMac нормально не настраивается

Прошу прощения, хотел другое написать. Прошу понимать как «Mac OS нормально не настраивается».

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

Отсутствие нормального рефакторинга

А где он есть для C++? Ни одна IDE не умеет корректно выполнять даже rename.

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

В некоторых это можно полечить костылями, да хоть криво и не полностью. Тот же Eclipse - море плагинов. Но да, в общем-то...

abcarado
() автор топика
Ответ на: комментарий от kamre

Элементарный пример? Я вообще не понял зачем это. И где такое работает?

Учёт типа мне тоже нафиг нужен. В общем, ты как какой-то фанат «сферического решарпера» в смысле излишней псеводинтеллектуальности и навороченности тулзы. Мне от автодополнения нужно одно - чтобы оно парсило макросы и сложные темплейты. Выводить типы и вообще догадываться о моих желания - не нужно.

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

Учёт типа мне тоже нафиг нужен.

Т.е. лучше видеть огромный список по алфавиту, чем по наиболее подходящим вариантам вначале? Так можно вообще словарное дополнение использовать, зачем строить AST и ресолвить типы?

Аналогичная претензия к дополнению после case внутри switch по значениям enum. Зачем там вываливать все подряд?

чтобы оно парсило макросы и сложные темплейты

Так оно и этого не осиливает. На первом же попавшемся примере из boost фейлит.

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

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

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

Насчёт буста ничего не могу сказать, я это г... слава богу не использую. В остальном автодополнение от эклипса меня ещё не разочаровывало.

Что касается удобства, мне оно не надо. Мне надо или вспомнить мембер, или ускорить ввод того, что я помню. В обоих случаях дополнение по типу не нужно.

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

чтобы не плодить локальные проектоконфиги и иметь возможность изменять CMakeLists.txt прямо из IDE без пересоздания проекта?

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

в сабже упомянуты некие «большие проекты»

А, так у тебя просто дефект речи... к логопеду.

Eclipse не нужно поддерживать cmake - это cmake нужно поддерживать Eclipse. И он поддерживает - генератор проектных файлов для CDT давно уже есть.

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

Что касается удобства, мне оно не надо.

Со smart pointers тоже удобно каждый раз вводить "->" вместо "." с автозаменой?

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

И он поддерживает - генератор проектных файлов для CDT давно уже есть.

Кривой же, только c in-source build можно поиметь интеграцию с системами контроля версий в Eclipse.

Eclipse не нужно поддерживать cmake

Хотя бы подсветочку для CMake файлов неплохо иметь, вместе с дополнениями/справкой по командам CMake. Вроде даже какой-то плагин под это дело имеется.

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

генератор проектных файлов для CDT давно уже есть.

Кривой же, только c in-source build

Он не кривой. Кривая модель проектов у Eclipse :/

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

И ещё раз повторюсь, я не люблю, когда компьютер за меня решает, что мне надо. Заменять . на -> для указателей - это пожалуйста, тут всё однозначно. Для смарт поинтеров бывают нужны и . и ->, меня будет только раздражать, если мне нужно . а заменят на ->. Понимаю, задержки перед заменой и т.п., но мне проще ожидать от компьютера однозначного поведения.

И вообще не понимаю, зачем стремиться выиграть какие-то лишние пару символов, вы чём там, программируете на скорость? Я обычно думаю больше, чем пишу код.

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

У нас билд-каталог in-source, но он отдельный - скажем ${CMAKE_SOURCE_DIR}/build32, никаких проблем с интеграцией scm (конкретно TFS, тьфу на него).

Хотя вроде в последних версиях (кеплер) появился глюк - изменённые в ./build папке файлы всё время добавляются в Pending Changes. Но это может быть и глюк TFS. Т.к. проявляется только при полном рефреше дерева (что бывает очень редко) и легко исправляется (выделить все ./build файлы и отменить pend) то не критично.

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

Локальных проектоконфигов вроде только два - .project и .cproject. CMakeLists.txt без проблем меняется, пересоздавать ничего не надо, возможно только зарефрешить надо проект, не скажу точно. Но мы работаем с проектом как с деревом папок/файлов, всякие Targets/Subprojects я не люблю и из .project их наоборот специально после cmake вырезаю. Нафига плодить сущности.

queen3 ★★★★★
()

MS Visual Studio + Visual Assist,
Компилять/дебажить как обычно в консольке, но через putty

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

Eclipse не нужно поддерживать cmake - это cmake нужно поддерживать Eclipse.

Круто, лучше шоб они друг друга поддерживали, ага

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

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

И насколько часто из smart pointer нужно что-то именно по "."? В таких случаях можно было бы один раз нажать backspace и вернуться к точке, разве это сложно?

Я обычно думаю больше, чем пишу код.

Может стоит еще больше думать и выбросить Eclipse в пользу Emacs/Vim, они вроде не тормозят совсем в отличии от?

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

билд-каталог in-source, но он отдельный - скажем ${CMAKE_SOURCE_DIR}/build32, никаких проблем с интеграцией scm

А файлы .project и .cproject также внутри ${CMAKE_SOURCE_DIR}/build32? С таким раскладом создаются linked resources, на которых в Eclipse не работает интеграция с svn/hg.

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

Я бы выкинул, но нужны отладка и goto reference, интеграция с TFS.

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

Нет, .project/.cproject выше в корне. Они создаются, потом CMakeCache грохается в корне, из ./build делается «cmake ..». Linked resources всё равно создаются кстати, но я их вручную удаляю из .project. Не вижу смысла в linked resources/targets/subprojects, лишние сущности, все модули в своём каталоге.

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

Кривая модель проектов у Eclipse :/

В Eclipse вообще много кривого, хотя что-то у него и неплохо получается. И исправлять кривизну похоже никто не торопится...

Даже такие простые вещи как «Open Resource»/«Open Element»/«Quick Outline» нормально не могут сделать, чтобы там фильтры по частичному совпадению не с начала названия работали, иначе постоянно нужно набирать «*». Кроме того «Open Element» c таким вот начальным «*» так тормозит, что просто неюзабельно.

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

Нет, .project/.cproject выше в корне. Они создаются, потом CMakeCache грохается в корне, из ./build делается «cmake ..».

Офигеть какая удобная генерация CDT проекта :) А make откуда вызывается тогда в CDT (тоже вручную меняется что ли)?

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

В Eclipse вообще много кривого

Я давно пришел к выводу, что у них просто особая, IBMовская философия. Тем, кто вырос на Unix и даже венде, этого не понять.

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

Да пофиг какая генерация, это один раз делается. Вызов make для проекта настраивается в свойствах проекта, в т.ч. и папка откуда он запускается. Там же можно и target указать и прочие другие опции. Это тоже один раз делается.

Но если честно, я собираю из эклипса только когда много ошибок сборки (для перехода по строчкам ошибок), так-то мне проще из консоли. «make -j4 Mod1» или «make -j14 Mod2» или «DISTCC_HOSTS=" VERBOSE=1 make» в зависимости от ситуации, история, оставить в фоне... консоль как-то удобнее.

Коллеги правда не настолько прошаренные товарищи и билдят из эклипса, проблем не испытывают.

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

Кстати соглашусь, много кривого :-) Но это везде так, только кривое везде своё, везде по-разному. Кому какое лекало подойдёт ;-)

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