LINUX.ORG.RU
ФорумTalks

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

 , , , ,


0

2

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

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

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

А тебя большой проект, и потому, есть только такой выбор:

  • тормозная IDE, которая что-то умеет и может парсить проект
  • быстрый текстовый редактор

А также любые точки между этими гранями (с соотв. компромиссом). Ты отдаешь себе отчет, что ты выбираешь именно между этими двумя факторами? Ты знаешь, насколько ты готов жертвовать первым и вторым фактором?

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

С поправкой на размер проекта, разве что. Да и то не катит - рациональность применения, чем опрос популярности :)

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

креатор в последних релизах реально распедалили и он перестал затуплять жестко при открытии самого себя или куте. 2.8.1 - вообще резкий и внезапный. наконец то им можно пользоваться для пиления огромного fglrx

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

Eclipse CDT, 10 миллионов строк кода. Goto reference радует, отладка иногда тупит но это от громадной дебажной инфы.

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

Теперь решается вопрос с заменой IDE

Неверный подход. Должна быть независимая от IDE система сборки (например, CMake), а уж кто какую себе IDE (или там vim/emacs) выберет - его личное дело.

kamre ★★★
()

Я бы выбрал Vim/Gvim + некий набор необходимых плагинов (ctrlp, youcompleteme, nerdcommenter, nerdtree, vundle для простого деплоя плагинов).

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

Неверный подход. Должна быть независимая от IDE система сборки (например, CMake), а уж кто какую себе IDE (или там vim/emacs) выберет - его личное дело.

Да, это наиболее правильный вариант, но у ТС стоит вопрос выбора корпоративного IDE. Уж хз почему именно так стоит вопрос.

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

Eclipse CDT, 10 миллионов строк кода

Сколько выполняется full index rebuild? Сколько занимают «<workspace>/.metadata/.plugins/org.eclipse.cdt.core/*.pdom» файлы?

У меня CDT «ацки» тормозит на примере из boost::spirit с небольшой грамматикой. Так что скорее всего там должно быть 10mloc весьма простого кода (C c классами без активного использования препроцессора), чтобы CDT хоть как-то ворочался.

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

имеющему немалый опыт

Сам работаю в CodeBlocks

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

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

Куча костылей для сборки и тучи скриптов. Админы уже этим заняты, но прогресса не видно :D

Ну так то админы. Поручите выбор и настройку системы сборки программисту (не кодеру, не обезьяне, не руководителю проекта, не директору).

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

вопрос выбора корпоративного IDE

Под windows выбор такой IDE для C++ однозначен :) А вот зачем под linux выбирать «корпоративную IDE» мне тоже не понятно.

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

Куча костылей для сборки и тучи скриптов. Админы уже этим заняты, но прогресса не видно :D

Костыли выкинуть, оставить CMake.

несколько тысяч классов

Не так уж и много, имхо.

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

Чем плоха CodeBlocks? Куча наворотов, работает шустро, что пишу сам - проекты небольшие, больше для интереса.

бери пример с начальника, он, сразу видно, умный человек.

FXD

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

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

ide для работы с реально большими проектами

работаю с исходниками андроида и ядра в виме. страшно представить, как это выглядело бы в ide (4 года писал в студии, 2 года в qt-creator-е).

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

Неверный подход. Должна быть независимая от IDE система сборки (например, CMake), а уж кто какую себе IDE (или там vim/emacs) выберет - его личное дело.

Два латте с карамелью этому господину.

Единственное - этот ответ верен, если всех на работе устраивает тот факт, что при таком подходе проблемы, например, с автодополнением становятся личными проблемами каждого, а не проблемами компании.

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

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

Работаю с исходниками ядра в CDT. Страшно представить, как это выглядело бы в vim.

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

при таком подходе проблемы, например, с автодополнением становятся личными проблемами каждого, а не проблемами компании

Это как? Типа подходишь к менеджеру проекта и говоришь: «в этой вашей корпоративной IDE проблемы с автодополнением, я не могу так работать!»?

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

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

Это как? Типа подходишь к менеджеру проекта и говоришь: «в этой вашей корпоративной IDE проблемы с автодополнением, я не могу так работать!»?

Нет, это подходишь к менеджеру проекта и говоришь: «У меня в XXX не работает автодополнение, что мне делать?», а он отвечает «Ничего не знаю, в корпоративной IDE YYY всё ок, с XXX разбирайтесь сами».

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

pdom занимает 750MB. full index не знаю сколько занимает, пару часов думаю. Файлы навороченные с рекурсивными темплейтами и traits. Билд одного файла после препроцессинга на AMD Phenom II X4 (или как его) занимает пару минут g++-4.6.

Памяти 16 метров, тормозов не замечаю, на 8-ми тоже особо не было. Для eclipse выставлены -Xm (и прочие настройки) пару гигов.

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

В проекте и соответственно в IDE, т.к. все файлы проекта в проекте. Вообще-то в Eclipse одновременно загружено ДВА идентичных проекта только с разных веток, так что можно умножать на 2.

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

В Eclipse CDT не замечал особых проблем с «автодополнением кода, например, внутри шаблонных классов». Там вообще автодополнение неплохое.

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

Метров конечно, эклипсу хватает! Шутка. Гектаров.

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

В Eclipse CDT не замечал особых проблем с «автодополнением кода, например, внутри шаблонных классов»

На элементарном примере же не работает:

#include <list>
#include <vector>
#include <string>

template <typename T>
size_t func(T t) {
    t.<complete here>
    return t.size();
}

int main() {
    using namespace std;
    vector<int> ints;
    list<string> strings;
    func(ints);
    func(strings);
    func(string("abcd"));
}

Там вообще автодополнение неплохое.

Так себе дополнение, target type вообще не учитывается. Если в функцию нужно передать выражение определенного типа, то при дополнении выражения внутри списка аргументов никак не учитывается тип аргумента функции, а вываливается все подряд в алфавитном порядке:

#include <vector>

void func(size_t num) {
}

int main() {
    std::vector<int> ints;
    func(ints.<complete here>)
}

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

1.7+K классов

я просто грепаю (!)

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

Есть, наверное, в каком-нибудь CEDET/ECB

Так оно что есть, что нет - все равно не работает. Мне настроить не удавалось по крайней мере, чтобы работало хотя бы не хуже чем в CDT. Единственная хорошая штука в Emacs для навигации по плюсовому коду - проприетарный xrefactory, но его уже забросили и тормозило оно не слабо.

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