>однако проще в таком случае, дефайнов понаставить, наверное.
>опять же, все зависит от структуры проекта... можно и на модули хитро разбить и собирать помодульно то, что нужно.
Я же говорю: шаг вправо, шаг влево - расстрел. Естественно, любые проблемы решаются, но часто (как в данном случае) масштаб решения не соответствует масштабу решения :(
>если ты реально работал с MSVC, то должен знать, что кодогенерация там
>по-минимуму используется. только каркас.
>в дальнейшей разработке проекта разве что обработчики на оконные >сообщения вешаются через IDE. остальное - руками.
Реально работал и видел проекты другого пипла. Так вот тот самый пипл
(большинство) лабает на ЦЕ++, но самого ЦЕ++ не знает. Да в пределах
каркаса у всех все замечательно, к тому ж каркас компилиться, остается
"добавить приправы". А теперь если попросить этот пипл написать на ЦЕ++ с использованием STL или еще круче - разработать полностью свой
проект со своей архитектурой классов - абзац!
>насчет дельфи я с тобой соглашусь, но только в том плане, что за
>прослойкой VCL не каждый из программеров видит WinAPI и понимает - как
>оно работает.
Одна неточность - знанение языка <> знанию API :)
P.S. Я не против кодогенераторов :)
P.P.S. MSVC - хороший продукт, с этим трудно спорить
P.P.P.S. Но и vim мне тоже нравится, при определенной сноровке -
конфетка
Реально работал и видел проекты другого пипла. Так вот тот самый пипл
(большинство) лабает на ЦЕ++, но самого ЦЕ++ не знает.
Мы говорил о тех, кто знает.
аркаса у всех все замечательно, к тому ж каркас компилиться, остается
"добавить приправы". А теперь если попросить этот пипл написать на ЦЕ++ с использованием STL или еще круче - разработать полностью свой
проект со своей архитектурой классов - абзац!
Мы говорим о проектах, где сгенеренный каркас - это 0,001% от всего проекта в итоге. В нашем например STL кода около 20%, своя архитектура классов для GUI(ибо UI не виндовый должен быть - по промышленному стандарту). И тотже VC++) кто не прав? твой пипл и друг пипла и т.д.? Рук кривых хватает под любой платформой.
Дома я тоже пользую vim - он мне реально удобен, начал по-тихоньку емакс учить - пока думаю, но то дома - в свое удовольствие, так сказать. а на работе я не могу себе такого позволить - т.к. у меня есть _ОТВЕТСТВЕННОСТЬ_ за то что я делаю и в какой срок. VC - идеальный инструмент для нас...
p.s. Тут подкинули вопрос любопытный: допустим команде win-программистов надо писать кросс-программу под Linux&Win. Вопрос - Можно ли писать в MSVC++ им и потом уже компилить отедельно на лин. Есть ли у кого-то подобный опыт, и эффективно ли это (т.е. не учиться использовать линукс). Мне кажеться, что так не получиться и будет только гимор. Да, все пишеца на QT
Кстати, еще один трабл с VS VC++. Он хранит информацию контроля версий в файлах воркспейса и проектов, соответственно так просто зашарить проект в другой воркспейс невозможно (чревато неуловимыми ошибками), необходимо делать бранч для файла проекта и править его ручками, соответственно, когда добавляется к проекту новый файл в одном воркспейсе, его необходимо добавлять ручками ко всем зашаренным копиям. То же удовольствие еще то.
Мое мнение: как IDE VS вполне неплох, если конечно не принимать во внимание постоянно падающий CodeWizard со своей базой данных (кстати VC6 с 5м сервиспаком у меня падает регулярно, не говоря уже о EVS - тот так вообще пару раз на дню), необходимость компилировать проект, чтобы сделать CodeBrowsing, автоматический CodeBrowser иногда почему-то показывает не всю сигнатуру метода, а только часть с одной строки, неуловимый файл resource.h и т.д. и т.п. - в конце-концов человек привыкает ко всему (хотя IDE борланда мне нравилось больше, да и Midnight Commander, в принципе ничего :), но как средство для управления сложными проектами VS6 не годится.
файл воркспейса (.dsw) хранит лишь имена файлов проектов
поэтому, если ты подключишь проект из другого места, то студия будет с ним нормально работать. своей копии не сделает. если в проект будет добавлен новый файл, то придется его в другом воркспейсе выгрузить и загрузить обратно - два клика и телемаркет. может я тебя понял неправильно, конечно...
и что за информация контроля версий в файлах проекта??
хм, ну если MSVC плохо подходит в качестве средства управления большими проектами, то мне уже интересно, что же хорошо подходит? :) явно не vim ведь :) его плюс в том, что он и не лезет в эту область.
2anonynous, который с Embedded VS работает: а есть ли вообще такой софт, который твою проблему решает? такие системы управления проектами? а то может ты обвиняешь вижак в отсутствии в нем фич, которых нигде нет :)
p.s.: а насчет проблем с просмотром методов и прочим code browsing. это уже давно известно (может в седьмом они получше сделали - я уже не помню). самое правильное решение - сразу после установки визуала ставится VisualAssist. без него в вижаке тяжело. я им пользуюсь уже несколько лет и как-то не воспринимаю одно без другого :)
>самое правильное решение - сразу после установки визуала ставится VisualAssist. без него в вижаке тяжело. я им пользуюсь уже несколько лет и как-то не воспринимаю одно без другого :)
:) Ага, после покупки новых ботинок, покупаем костыли - их у нас широкий выбор :)
>файл воркспейса (.dsw) хранит лишь имена файлов проектов
поэтому, если ты подключишь проект из другого места, то студия будет с ним нормально работать. своей копии не сделает
Имеется в виду работа через SourceSafe. Если я хочу не на своем диске проект зашарить, а в нем - иногда бывает нужно.
>хм, ну если MSVC плохо подходит в качестве средства управления большими проектами, то мне уже интересно, что же хорошо подходит?
А черт его знает, сами ищем. По моему, просто надо отделять мух от котлет - IDE отдельно, makefiles отдельно.
>хм, ну если MSVC плохо подходит в качестве средства управления большими проектами, то мне уже интересно, что же хорошо подходит?
Такое впечатление, что MSVC страдает общей для MS проблемой - хреновой масштабируемостью. После некоторого предела сложности он начинает не помогать решать задачи, а сам становится задачей :)
>который с Embedded VS работает: а есть ли вообще такой софт, который твою проблему решает? такие системы управления проектами? а то может ты обвиняешь вижак в отсутствии в нем фич, которых нигде нет
Я думаю нормальный make + утилиты эту проблему должны решать на раз.
> иными словами все сводится к тому, что нужны какие-то утилиты. ну так они везде нужны. так что не надо ругать вижак. ругать надо ситуацию в целом :)
Под утилитами я имел в виду всякие conf'ы и т.п., а также возможность нормальные скрипты :) А VS я не ругаю (сам с ним работаю), а просто пытаюсь показать, что ситуация здесь не так безоблачна, как хотели показать ее в начале треда.
>Дык гдеж бывает безоблачные ситуации? Вопрос в том, сколько облоков в OpenSource IDE's & VC++...
Вот тут мы и походим к основному отличию - открытости в противовес тотальной интегрированности. Такое впечатление, что для сложных проектов все-таки важнее возможность максимальной подстройки среды под себя, чем наличие интегрированного отладчика, например.
да нет, мы получаем, что для сложных проектов под линукс самой лучшей из существующих сред разработки становится vim с плагином показа дерева файлов... грустно это.
на словах, теоретически, конечно лучше, если среда настраивается, конечно лучше, если среда поддерживает много языков, конечно лучше, если она еще и код за тебя немного пишет... вот только нет таких сред под линукс :( а есть текстовый редактор, из которого такую среду пытаются сделать.
никто еще не додумался написать вокруг vim MSVC-подобную оболочку? чтобы vim занимался только редактированием, а все остальное делала бы среда?
И блины бы пекла? :)
На самом деле, построение универсальной среды, которая бы удовлетворяла и разработчика небольшой утилиты на 10000 строк и разработчиков огромной распределенной системы, с моей точки зрения, является чистейшей воды утопией. Кому-то из них будет явно неудобно (при таком подходе скорее всем).
Насчет emacs vs vim ...
Я давно пользуюсь emacs-ом, привык уже - все команды запускаю с клавиатуры, за мышью не лазию. Kaк-то с полгода назад пробовал перейти на vim. Две недели только им редактил, ломал себя, доки прочитал. Все вроде в порядке, но в итоге откатился обратно - не смог привыкнуть к тому, что приходится в два раза больше кнопок нажимать для навигации и команд разных ... Так что все дело в привычках ...
В том и фишка, что лично мне макры к редактору приходится писать весьма часто. На порядки чаще, чем писать на Си. Так что и язык должен быть удобным, то есть - никаких перлов и васиков. Тикл сгодился бы, возможно.
Emacs я люблю как раз за Лисп, всё равно, это мой родной язык. Vi в своё время показался игрушкой в сравнении с ED/TPU и emacs, а потом и к vim привыкать потребности не было.
* Скажем Вам надо изменить имя фаила который включаетса в Makefile проекта. Проект под SCCS и сам фаил загружен в редактор. (Не забудьте что фаил под SCCS).
* Вам нужно посмотреть дерево изменений того-же фаила и сравнить две ветки.
Как ето сделать в emacs? В CodeForge ето решаетса:
1) изменением имени фаила в дереве зависимостей по right-click. (Имя фаила автоматом меняетса в Makefile, в SCCS репозитарии и в редакторе.)
2) запуском RC-Tool-а по right-click и драг одной ветки на другую.
Кто-нть реально пользуется в vim этими hjkl или все стрелками там лазиют? Я все пытаюсь себя приучить, но пока безуспешно - рука мышинально к стрелкам тянется ;)
> никогда не работал с vi передвигаясь стрелками - это же так не удобно
> постоянно убирать руки с asdf-jkl;
Не, на самом деле привыкнуть использовать одни кнопки вместо других несложно. Тут есть другая проблема - надо отучить себя от лазинья по тексту в режиме вставки.
Кстати меня, например, больше раздражает escape - до него тянуться еще дальше чем до стрелок.
* Скажем, мне не надо менять имя файла в Makefile. Зачем? У меня там вообще никаких имён файлов нет, кроме бинарных таргетов. Это же Makefile, штука умная, сама разберётся, что и куда компилять. Makefile вообще крайне редко менять приходится.
* Для этого лучше использовать внешнюю приблуду - cvsweb. Но можно и в emacs, там это прекрасно реализовано.
Ну а SCCS я пользовать ни за какие коврижки не стану - CVS гораздо лучше. А то мне б ещё VSS предложили бы...
Antichrist, а что за работа такая, где конфигурить редактор приходится на порядки чаще, чем редактировать в нем?
насчет требований к среде разработки: ну хочу повторение MSVC. чтобы и управление проектами было и компиляция, и редактирование текстов, картинок, диалогов всяких. и чтобы можно было визарды подключать для создания новых проектов...
и чтобы это было все в одной программе и вкусно оформленное :)
Hint: я вообще на Си/C++ редко пишу. Больше пишу не на Си. Ну а конфигурять редактор надо, так как постоянно разрабатываю новые DSL-и (а код на них ведь тоже надо редактировать), да и синтаксис используемых в работе языков тоже меняется по ходу дела (препроцессором примочки навешиваю, и редактор должен об этих примочках знать).
Про требования: похожесть на MSVS - дурное требование, потому как уродские привычки надо вышибать. Управление проектами - для этого make есть, визуально более-менее сложный проект всё равно хер оформишь, там не только деревянные связи будут. А если уж и препроцессоры в порядок сборки включить - так и вовсе жопа с ушами. Редактирование текстов, картинок, и всего прочего - лучше чем в Emacs нигде нет. Визарды - та же фигня, что и с проектами. У меня такими "визардами" работают темплейты - новый проект начинается с копии одного из темплейтов.
В общем, ламерские совершенно требования. И уж тем более не ясно, как они следуют из задачи о разработке "больших проектов" - они наоборот откровенно такой постановке противоречат.
мои требования были к среде разработки под линукс вообще. я не говорил о больших проектах. в них, в итоге, все делается с нуля и руками. но вот начало хочется делать с комфортом... т.е. наваять некий интерфейс, сделать минимальный функционал, подкрутить интерфейс, подкрутить функцонал, повторять до победного... на каком-то этапе потребность в фичах среды пропадает и начинается обычное редактирование набора файлов.
в емаксе есть возможность видеть дерево проекта? переходить от файла к файлу по C-x f мне не очень нравится. да и между буферами там переключаться неудобно...
я vim'ом пользуюсь, расскажи мне про фичи emacs, если ты его хорошо знаешь. получится куда более конструктивный разговор. и как в нем картинки редактировать?
з.ы.: выделил тут в галеоне текст, скопировал и попытался вставить в emacs (в графическом режиме) - облом, какой-то мусор вставляется. что это может быть?
Надоело читать весь этот бред про ВЦ++. Соглашусь с первым анонимо, что здесь мало кто им пользовался. Единственное, что мне в нём не нравится - это стиль генерируемового кода, но это поправимо ;)
Всем тем, кто так хвалит Vim и Emcas могу сказать, что это прекрасные редактора, но не среды разработки (i.e. IDE). KDevelop - пытается сделать нечто похожее но пока это лишь пародия.
2 Dead:
Я согласен, что это похоже нп утопию, но у меня есть кое какие теоритические наработки, коими могуподелтся с заинтересованными людьми. (infapx@yandex.ru)
to svytogor: ну епрст. сдесь же не Windows(tm). Это юникс. Тут вся операционная система является интегрированная среда. И не одна IDE не достигнет той гибкости, которую предоставляет OS.
В качестве банального примера набрать grep -r -i something *.[ch]pp в подавляющем большинстве случаев гораздо проще, а соответсвенно удобнее, чем ковырятся в куче менюшек.
Из "кирпичиков" типа grep, sed, find, etc можно собрать всё что угодно конкретно тебе, а не то, что посчитал нужным некий абстрактный теоретик.
Да, верно было сказано, что те, кто может написать MSVS-подобную IDE не станут этого делать, так как не нуждаются в чайноковских костылях, а те, кто в подобной IDE нуждаются - никогда не смогут ничего подобного написать - или, в лучшем случае, перестанут быть чайниками в процессе написания и забросят проект (эта судьба постигла почти все OpenSource IDE).
Беда чайников в том, что они не читали даже Кернигана и Пайка "Unix - универсальная среда программирования". Вот и не понимают, что такое на самом деле IDE.
Интерфейс рисовать надо не в IDE. И не визуально - бредятина это немерянная, все эти визуальные гуелабалки. Тем более, что функциональность должна быть напрочь отделена от UI.
Что за "дерево проекта"?!? Проект - это не дерево, за исключением самых простых и глупых случаев.
От файла к файлу ходить стоит, к примеру, по etags. Если не устраивает переключение между буфферами - элементарно присобачить более простые биндинги. У меня некоторые буфферы вообще по strokes поднимаются - удобно, блин.
Как картинки рисовать? А так - текстовым описанием картинки. Для другого рода картинок требуется уже специальный софт (который в emacs элементарно интегрируется, это же юникс, а не виндообразное говно со всякими сраными DCOM-ами).
Про мусор из гальюна - если emacs был с mule, то ничего удивительного. Я mule не пользую принципиально.
я тебя понял. если понять и проникнуться идеологией, то все будет легко и удобно. однако хочется готовых решений чтоли (может тоже поначалу, конечно)... условно говоря, никто не мешает сделать такую сборку, где был бы емакс со всеми хитрыми настройками, примочками и скриптами "все в одном", от которого будет гораздо проще плясать.
начинающий пользователь емакса типа меня не очень расположен долго настраивать редактор, чтобы начать комфортно работать.
а в чем минусы MULE? это же для русификации применяется. без него русский нормально вводится?