[Comm] Лучшая IDE для C++

spider =?iso-8859-1?q?spider_=CE=C1_lsi=2Ebas-net=2Eby?=
Ср Июн 8 06:22:11 MSD 2005


Alexey Rusakov пишет:

> spider wrote:
>
>> Vasya Makarov пишет:
>>
>>  
>>
>>> Hi, All!
>>>
>>> Подскажите, кто каким сабжем пользуется, а то что-то я в недоумении. 
>>> KDevelop мне совесть не позволяет юзать, Anjuta так всё и вылится на 
>>> ровном месте. Я уже грешным делом стал на C-Forge поглядывать...
>>>
>>> PS: Emacs не предлагать!
>>>   
>>
>>
>> Многое зависит от того, что Вы ожидаете от IDE, некоторые считают, 
>> что самое необходимое -- это:
>> 1. возможность запускать внешние программы и разбирать их вывод (make 
>> и gcc)
>> 2. обрабатывать ошибки компиляции
>> 3. автодополнение кода основных структур языка
>> 4. навигацию по символам проекта с учетом всех исходников, на которые 
>> есть
>> ссылки #include
>> 5. настраиваемый автостиль
>> 6. свертку (фолдинг) по функциям, блокам и комментариям
>> 7. контекстная помощь по языку  и вызовам
>> 8. автодополнение по библиотечным вызовам
>> 9. запись макросов
>> 10. назначение кнопок на действия с целью минимизации числа нажатий и 
>> возможностью отбора
>> любимых хоткеев у десктопа. 
>
> Этот список соответствует тому, что должен уметь /редактор/ от IDE. 
> Разве что два первых пункта ещё относятся к IDE в целом. Чтобы это 
> была IDE, а не редактор, в ней должны быть средства управления 
> программными проектами.

Управление программными проектами в UNIX/Linux идет от make, а не от 
IDE, поскольку нет пока ни одного
IDE, который подменил бы make даже от 87 года (nmake от Microsoft). Все 
более-менее приличные IDE опираются
на make. Следует отметить, что Slick имеет возможность слепить 
нормальный makefile, либо работать по примеру
IDE'ев от IBM и строить проект т.н. билдером (т.е. генерить скрипт, 
который запускает явно компиляцию для файлов
проекта, что не есть кошерно).

> Поддержка различных сборок (Debug/Release),

Debug/Release -- отличаются везде только тем, что не используется опция 
- g, ну и если Вы наструячили доку,
она откомпилится вместе с проектом. Уж не станете же Вы крутить с 
оптимизацией, которая нигде на i386+
нормально не работает за исключением древних 16-разрядных компайлеров в 
режиме x86 (Watcom, TopSpeed --
и все-ту-тя) Тем не менее, там есть этот выбор (для самоубийтц). Что 
касается доки, то ее пишут отдельным проектом.

> обязательная интеграция с системой контроля версий (хотя бы CVS),

И интеграция с cvs есть, мало того, для особо усерающихся впереди 
основных паровозов есть интеграция с SubVersioN.
Сам я ручками предпочитаю набирать cvs ci -ci "", поскольку настойчивые 
требования внести комментарии при коммите
разрушают процесс мышления -- начинаешь задумываться, а почему, 
собственно, я их не вношу?

> поиск не вообще по файлам, а по файлам проекта,

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

> поддержка отладки, чтобы не приходилось прыгать между исходниками и 
> отладчиком;

Отладчик (морда над gdb) там есть, причем очень неплохая, хотя я не 
врубаюсь, чем встроенная морда лучше чужой,
которая запускается той же кнопкой. Функции то у них в пределе 
одинаковы. Кстати, может кто с бимерами дружит,
у них должна быть суперморда к gdb или даже своя поделка (from scratch 
icat debugger) для внутреннего и внешнего
корпоративного употребления на расстоянии -- у них это религия -- 
отладчик и программерский софт должны удаленно
работать принципиально более функционально, чем локально, хотя бы 
потому, что локальные девайсы не интерферируют
с процессом разработки/отладки. Они просто требуют -- отладчик 
запускается удаленно и коннектится к уже запущенной
программе или запущенный ждет ее старта, опять же удаленно, и лучше 
всего через сериальный порт. Именно тогда
самая кошерная отладка имеет место быть.

Вообще с легкой руки Borland внедрилась дурацкая схема разработки 
приложений типа редактирование-отладка-в-режиме-интерпертации,
что возможно удобно для обучения студентов непрофильных специальностей. 
Однако, эта технология никем еще не реализована так, чтобы
голову на отруб дать, что после такой отладки отдельно собранный релиз 
будет работать аутентично. Отладка всегда выполняется
после окончательной сборки проекта. Т.е, отлаживается какой никакой, но 
кандидат в релизы. Т.е. после успешной отдадки слкдуют
либо развитие кода, либо стрип отладочной инфи и отдача проги 
потребителю. Не дай бог после отладки сметить опции, ну разве что
по поводу выдачи варнингов, и не дай бог если оптимизацию включил. 
Всегда настоятельно рекомендуется отлаживать бинарник,
который отличается от релиза только наличием отладочной информации, 
которая туда заносится соответствующей опцией ggdb.
А релиз получается из отладочного варианта исключительно стрипом 
отладочной информации. Оптимизация остается на совести
программера -- было бы странно после успешной отладки программы собрать 
ее для использования с непроверяемыми в
принципе опциями оптимизации.

> организацию файлов проекта и список задач запишем в необязательные вещи.

Файл проекта -- есть там такой -- чтобы знать, чего cvs-ить в текущем 
каталоге по кнопке, из чего лепить шаблон
makefile и что грузить в рабочее пространство при открытии проекта.

> Поэтому я для себя выбрал Eclipse.

Жадные ребята с www.slickedit.com имеют к нему довесок, который 
превращает Затмение в нечто удобное и для C/C++.
Оно стоит денег, но не столько, сколько они просят.

Забыл сказать, ввод русского из коробки не поддерживается -- редактор 
исключительно для пиндосов, хотя позиционируется
как сто лет unicode. Русский показывает, но не вводит. Говорят, шаманить 
надо типа как сто лет назад с кириллицей.
Типа xmodmap ему помогает, однако не понятно как  -- сообщество 
линуксоидов не очень то делится знаниями -- чаще
всего те, у кого что-то получилось, отправляют читать доку, тем более, 
что дока вся -- полное говно -- нет даже примеров
использования всех опций -- и в связи с этим для использования без 
выполнения в свободное от жизни время дохуя
экспериментов она совершенно непригодна -- я три раза прочитал man 
xmodmap и ни хрена не понял, что и кому мне
надо сказать, что бы этот гребаный SlickEdit стал хоть как нибудь 
реагировать на нажатие после alt_grp. Так вот эти
крутые суперпуперы скорее всего случайно нажали кнопки, которые они не 
знают даже зачем и как называются, случайно
что-то включилось -- их самооценка сразу возросла и голос окреп. Однако 
повторить никак не получается -- вот и представляясь
умными отправляют читать доку. Нет чтобы сказать -- чувак, у меня 
заработало, но я, долбоеп, поленился записать, что
делал, а умишка то не хватило запомнить и теперь повторить не в силах.





Подробная информация о списке рассылки community