Comments 64
CodeLens доступен только в Ultimate-редакции?
Вещь очень крутая, но работает странно. Т.е. периодами показывает верное кол-во ссылок, к примеру, а иногда просто "-". Закономерности не обнаружил. Причем, на одних и тех же методах, т.е. никакого кеширования не используется? Как заставить пересчитать?
Индикаторы авторства \ изменений \ тестов работают только если проект в TFS, или же есть возможность связать с кастомными провайдерами?
Информацию об авторстве кода, я так понимаю, только если использовать TFS показывает?
Что нужно сделать, чтобы показывались индикаторы авторства \ изменений? Мой проект подключён к TFS, но это TFS2010.
Правильно ли я понимаю, что для работы этих индикаторов необходим TFS2013?
Правильно ли я понимаю, что для работы этих индикаторов необходим TFS2013?
Да, нужен TFS13
Да, очень жаль, что такая сверхполезная фича ещё долго не будет использоваться в наших проектах. (
Так получилось, что у меня довольно неплохой бэкграунд программирования на С++ под Windows, но сейчас программирую на java (в IntelliJIDEA). Недавно неожиданно свалилось задание на С++ — и я в полной мере ощутил «красоту» IDE от MS. Как говорится, всё познаётся в сравнении… Так вот: даже после бесплатной IntelliJIdea даже Visual Studio Pro и Ultimate — это набор свистелоперделок, которыми крайне тяжело пользоваться, которые глючат и работают непонятно как. Один ИнтеллиСенс чего стоит — пилят уже не одну версию, а нормального перехода «Go to definition» в более или менее крупном проекте так и нет. При этом релизы выпускаются регулярно, где всё просто охренительно как здорово, где куча всякого нового для проектирования и рисования квадратиков, где всякие интерфейсы меняются и производится переход с объёмного в плоский интерфейс… При этом нормального набора кода под C++ так и нет. Есть красивые презентации… Может я просто не тот язык изначально выбрал и нужно было C# пилить, но наличие в том мире довольно популярного ReSharper как бы наводит на мысль, что и там не всё гладко.
Полностью согласен. С++ как отщепенец в VS, поддержка очень посредственная. Сам использую бесплатный Qt Creator.
Интереса ради, а вы можете привести примеры IDE для C++, которые работают с ним (в плане редактирования, отладки etc) лучше, чем VS?
Просто тут надо сравнивать сравнимые вещи — т.е. C++ с C++, а не C++ с Java или там C#.
Просто тут надо сравнивать сравнимые вещи — т.е. C++ с C++, а не C++ с Java или там C#.
Редактирование/навигация по коду — Eclipse CDT. Там это как минимум на несколько порядков лучше чем в Visual Studio (без Visual Assist-а). И слегка по лучше (или на одном уровне) с Visual Assist.
Единственный минус (он же иногда и плюс) — CDT не понимаю студийные файлы проектов. Т.е. для правильной навигации по коду нужно задать include path, и #define.
Единственный минус (он же иногда и плюс) — CDT не понимаю студийные файлы проектов. Т.е. для правильной навигации по коду нужно задать include path, и #define.
Надо будет посмотреть. В последний раз, когда я игрался с CDT, у него все было очень плохо с шаблонами — т.е. скажем:
должно выдать члены std::string, но не выдавало. Не говоря уже о выводе типа возврата в std::bind и прочему навороченному template metaprogramming.
std::vector<std::string> v;
v[0].
должно выдать члены std::string, но не выдавало. Не говоря уже о выводе типа возврата в std::bind и прочему навороченному template metaprogramming.
Да, CDT стал реально зачётный. В моих экспериментах, единственное, что он почему-то не понял (причем совсем — не нашел функцию) — это std::bind.
Вообще, у меня есть такой вот маленький примерчик для проверки плюсовых IDE:
Смысл в том, чтобы написать заведомо неопределимую без полноценного разбора AST и честного раскрытия шаблонов конструкцию — в данном случае,
VS это умеет, как раз начиная с VS 2010 — и тогда это была единственная IDE, в которой это работало (причем там можно было прямо в свойствах проекта переключать x86/x64, и редактор на лету переподсвечивал
А вот KDevelop, увы, подкачал — они всегда считают это объявлением переменной, даже если закомментировать вторую специализацию шаблона. Про Qt Creator я вообще молчу, там не работают и намного более простые вещи.
В-общем, очевидно, вы правы — CDT действительно сейчас на одном уровне с VS в плане редактирования плюсов. И это хорошо — чем больше вариантов, тем лучше.
Вообще, у меня есть такой вот маленький примерчик для проверки плюсовых IDE:
template<size_t N = sizeof(void*)> struct a;
template<> struct a<4> {
enum { b };
};
template<> struct a<8> {
template<int> struct b {};
};
enum { c, d };
int main() {
a<>::b<c>d;
d;
}
Смысл в том, чтобы написать заведомо неопределимую без полноценного разбора AST и честного раскрытия шаблонов конструкцию — в данном случае,
b<c>d
будет либо выражением с двумя операторами, либо объявлением переменной d, в зависимости от битности компилятора. И, соответственно, второе упоминание d в коде на Go to Definition должно в зависимости от этого переходить либо на предыдущую строку, либо на enum { c, d }
.VS это умеет, как раз начиная с VS 2010 — и тогда это была единственная IDE, в которой это работало (причем там можно было прямо в свойствах проекта переключать x86/x64, и редактор на лету переподсвечивал
b<c>
как тип или нет). Сегодня вот CDT приятно удивил — он тоже корректно разобрал этот код, все подсветил, и сделал go to definition.А вот KDevelop, увы, подкачал — они всегда считают это объявлением переменной, даже если закомментировать вторую специализацию шаблона. Про Qt Creator я вообще молчу, там не работают и намного более простые вещи.
В-общем, очевидно, вы правы — CDT действительно сейчас на одном уровне с VS в плане редактирования плюсов. И это хорошо — чем больше вариантов, тем лучше.
Я не буду говорить за всех, но для меня в несколько раз удобнее Qt Creator. Навигация по коду, базовые операции рефакторинга, отзывчивость мне нравятся значительно больше чем в VS. Тут еще немаловажную роль играет, наверное, то, что я использую в разработке сам Qt. В Qt Creator интегрирована Qt справка и дизайнер. Короче говоря, очень все удобно, красиво и главное бесплатно.
Относительно студии могу сказать, что работать в 2012 понравилось значительно больше чем 2010. IntelliSense в 2010 отваливался каждые 5 минут. Часть проектов ведется в 2012.
Visual Assist, как написали ниже, добавляет необходимый функционал и по крайней мере позволяет работать со средой без лишней нервотрепки.
Относительно студии могу сказать, что работать в 2012 понравилось значительно больше чем 2010. IntelliSense в 2010 отваливался каждые 5 минут. Часть проектов ведется в 2012.
Visual Assist, как написали ниже, добавляет необходимый функционал и по крайней мере позволяет работать со средой без лишней нервотрепки.
Насколько я могу судить, в Qt Creator редактор работает хорошо, только если вы используете хедеры от Qt же, и аналогичные паттерны в своем коде. В соседнем комментарии я уже отметил, что он не особо хорошо дружит со стандартной библиотекой — автодополнение отваливается даже на таких простых вещах, как индексация вектора строк.
Тут вы скорее правы. Но повторюсь, я его использую в основном в разработке на Qt и соответсвенно с Qt-контейнерами, и поддержка автодополнения с Qt-шными классами просто замечательная.
И позвольте тогда уж камень в огород VS, помню в 2010, когда отваливался IntelliSense, отваливалось просто любое автодополнение, навигация (сколько помню) валилась с ошибкой, подсветка в коде отключалась.
И позвольте тогда уж камень в огород VS, помню в 2010, когда отваливался IntelliSense, отваливалось просто любое автодополнение, навигация (сколько помню) валилась с ошибкой, подсветка в коде отключалась.
2010 вообще был тяжелым релизом — слишком много всего нового. Полностью переписанные с нуля на WPF шелл и редактор, новый комплишен в плюсах… это даже по фичам было видно, когда вырезали, например, C++/CLI Intellisense и тонкую подстройку тулбаров. Как следствие — bug farms и тормоза везде, которые лечили всем миром (знали бы вы, сколько кода там было написано только ради того, чтобы срезать лишние 50мс при cold start...).
Так что камень вполне заслуженый, не спорю. Но с тех пор мы исправились (во всяком случае, я надеюсь, что у тех, кто попроовал VS 2013, впечатление именно такое).
Так что камень вполне заслуженый, не спорю. Но с тех пор мы исправились (во всяком случае, я надеюсь, что у тех, кто попроовал VS 2013, впечатление именно такое).
Под C++ обычно используют VS в комплекте с Visual Assist. Увы )
Более того, другого способа работы по сути и нет. Странно, что человек в комментарии выше говорит о «неплохом бэкграунде программирования на С++ под Windows» и вообще пытается пользоваться Студией без Visual Assist.
Ждем когда они AST в VC++ прикрутят (они уже работают над этим) и будет нам встроенный рефакторинг.
AST там есть, начиная с VS 2010 — собственно, на нем работает текущий IntelliSense (который, наверное, был первым автозавершением для плюсов, которое реально работало на любом коде — помню, как в свое время меня глубоко поразило то, что оно смогло обработать полиморфный function object, созданный через Boost.Lambda), и подсветка типов и разных видов переменных в VS 2012. Просто к нему еще не успели прикрутить все то, что давно было для того же C#.
Хмм… На Going Native 2013 Саттер, с S.T.L. утверждали что рефакторинга C++ кода в студии нет именно из за отсутствия AST. По той же причине нет «Two-Phase Name Lookup» в VC++
Прикол там в том, что студия и компилятор — это две разные вещи. В компиляторе — точнее, в его front-end — действительно нет AST, поскольку код этот идет из совсем дремучей старины. И, да, это в т.ч. создает проблемы для two-phase lookup.
До VS 2010 этот же frontend использовался и для редактора, из-за чего работало все это несколько странно. В VS 2010 решили поправить редактор путем перевода его на качественный сторонний frontend, и купили для этой цели таковой от EDG. Вот в нем AST вполне себе есть. Вы уверены, что комментарий про AST на GoingNative был не сугубо про two-phase?
До VS 2010 этот же frontend использовался и для редактора, из-за чего работало все это несколько странно. В VS 2010 решили поправить редактор путем перевода его на качественный сторонний frontend, и купили для этой цели таковой от EDG. Вот в нем AST вполне себе есть. Вы уверены, что комментарий про AST на GoingNative был не сугубо про two-phase?
Там как раз про рефакторинг спросили
channel9.msdn.com/Events/GoingNative/2013/Q-A-Panel 22:47
channel9.msdn.com/Events/GoingNative/2013/Q-A-Panel 22:47
Ага, действительно. Щас уточну у STL — он, все-таки, работает над библиотекой, а не над редактором, поэтому мог и ошибиться. Или я все-таки неправ.
Ответ STL:
«EDG has an AST, that's why we use it for Intellisense. C1XX doesn't (or more accurately, it simultaneously builds and consumes its AST, so it never has a complete one), and that's the FE that's ultimately used for codegen.
I probably misinterpreted the question at GN — not having an AST is why it's difficult for us to implement new features. I think I may have not noticed that the question was about refactoring (remember that I don't use the IDE and I don't actually care about refactoring).»
«EDG has an AST, that's why we use it for Intellisense. C1XX doesn't (or more accurately, it simultaneously builds and consumes its AST, so it never has a complete one), and that's the FE that's ultimately used for codegen.
I probably misinterpreted the question at GN — not having an AST is why it's difficult for us to implement new features. I think I may have not noticed that the question was about refactoring (remember that I don't use the IDE and I don't actually care about refactoring).»
Мы вообще любим Wholetomato.
Я знаю про Visual Assist… Но как бы, как я и говорил, всё познаётся в сравнении:
Visual Studio Professional (не Ultimate) 2013 — 16 174 руб (~500$)
+
Visual Assist X — min 99 $
при том, что
IntelliJIdea — 199 $
… или торренты наше всё?
… И вот при таком разбросе цен мне особенно не понятно, как можно 3-4 мажорных версии пилить «Go to difinition» и называть «рисовалку кубиков» полноценной IDE без нормальной работы, как мне кажется, базового для любой IDE функционала…
Visual Studio Professional (не Ultimate) 2013 — 16 174 руб (~500$)
+
Visual Assist X — min 99 $
при том, что
IntelliJIdea — 199 $
… или торренты наше всё?
… И вот при таком разбросе цен мне особенно не понятно, как можно 3-4 мажорных версии пилить «Go to difinition» и называть «рисовалку кубиков» полноценной IDE без нормальной работы, как мне кажется, базового для любой IDE функционала…
ой… я ж забыл, что обиженые нокияфилы меня заминусовали за то что я обижаю в комментариях их любимую и самую лучшую (но как оказалось довольно дешёвую) компанию в мире, поэтому сслыки в комменте не сработали :)
Вот пруфы с подтверждением моих слов из предыдущего комментария:
www.legalsw.ru/catalog/microsoftvisualstudioprofessional/
www.wholetomato.com/purchase/default.asp
www.jetbrains.com/idea/buy/index.jsp
Вот пруфы с подтверждением моих слов из предыдущего комментария:
www.legalsw.ru/catalog/microsoftvisualstudioprofessional/
www.wholetomato.com/purchase/default.asp
www.jetbrains.com/idea/buy/index.jsp
Это всё не от хорошей жизни, а потому что Джетбрейнс среду для С++ ещё пилит, а прочие варианты точно хуже, чем студия + Visual Assist X.
учитывая, что в VS Express отсутсвует поддержка плагинов (а казалось бы, какие причины, кроме маркетинга могут быть?), то придётся брать минимум Professional редакцию и отдавать 500 баксов по сути за оболочку с кучей ненужного многим говна + прикручивать платный плагин.
И если за Visual Assist X действиельно есть за что платить, то качество поделия от MS оставляет желать лучшего.
Вот вы купили продукты, о которых говорите?..
И что значит хуже? По какому параметру? В том же сочетании цены-качетсва всякие QtCreator'ы, NetBeans'ы и пр. точно не хуже… Или скаченное в торрентах по-умолчанию считается бесплатным?
И если за Visual Assist X действиельно есть за что платить, то качество поделия от MS оставляет желать лучшего.
Вот вы купили продукты, о которых говорите?..
И что значит хуже? По какому параметру? В том же сочетании цены-качетсва всякие QtCreator'ы, NetBeans'ы и пр. точно не хуже… Или скаченное в торрентах по-умолчанию считается бесплатным?
Не понимаю, почему при сравнении продуктов Вы вдруг переходите на личности с вот этими «вы купили?» и «скачанное в торрентах считается бесплатным?». Да, «мы купили», на работе — фирма, дома — я сам. А что?
QtCreator — хорош, использовал его для нескольких продуктов. Тем не менее хорош он — как кростлатформенная среда, а не как IDE для разработки под Windows (ну а мы ведь вроде об этом говорим?). Как только дело доходит до COM / MFC / ATL/ C++ CLI / ActiveX, WinAPI, WPF, WCF, DirectX — Qt Creator отходит в сторону. Кроме того, я не считаю, что возможности рефакторинга в Qt Creator превосходят VS + VA (киньте в меня пруфлинком, если уверены в обратном).
NetBeans, Eclipse и прочие как IDE для С++ проекта под Винду? :) Правда?
QtCreator — хорош, использовал его для нескольких продуктов. Тем не менее хорош он — как кростлатформенная среда, а не как IDE для разработки под Windows (ну а мы ведь вроде об этом говорим?). Как только дело доходит до COM / MFC / ATL/ C++ CLI / ActiveX, WinAPI, WPF, WCF, DirectX — Qt Creator отходит в сторону. Кроме того, я не считаю, что возможности рефакторинга в Qt Creator превосходят VS + VA (киньте в меня пруфлинком, если уверены в обратном).
NetBeans, Eclipse и прочие как IDE для С++ проекта под Винду? :) Правда?
А вот что: я лично вас спрашиваю, что вы сделали, только потому, что считаю, что дальнейший диалог о продукте в отрыве чувства его цены просто неконсруктивным. И это не потому что я считаю себя умнее всех этих «пЕратов», а просто не представляю, как можно рассуждать о качестве чего-то не имея ощущения его свойств, среди которых есть и цена. Рад, что вы из тех, у кого это чувтсво присутвует :)
В отрыве от платформы Windows под Windows альтернативы есть (и да, это на самом деле всякие qtCreator'ы, Eclips'ы и NetBeans'ы, которыми вполне можно пользоваться, если бы не грёбаная привычка, выработанная Windows-программистами, которые в массе своей изначально работали в MSVC). Но вот когда работаешь с довольно запутанной и разрозненной экосистемой Windows — альтернатив тому же Visual Studio нет. Это правда.
Изначальным моим посылом было то, что MSVC как IDE для C++ (слово «Windows» под одним из плюсов видно затерялось) — не самое лучшее решение. Именно как IDE для С++. Где даже когда ты не имеешь отношений со всякими Windows-технологиями напрямую (например используешь всякие готовые библиотеки и врапперы от сторонних разработчиков — да тот же boost) работа MSVC в качестве IDE оставляет желать очень много лучшего. Про всякий Visual Assist и прочие костыли (хоть и довольно качественные), которые делают из MS-поделия конфетку я также не наезжал. Они молодцы и умеют зарабатывать на хлеб честно, выпуская действительно Продукт. MS тоже умеет зарабатывать, только несколько иным способом — впаривая всякую маркетинговую шелуху, а не продукт.
Ситуация с MSVC и альтернативами чем-то напоминает относительно недавнюю ситуации с IE и альтернативами, когда вроде и Firefox был, и Опера, и IE как-то не очень идельный был (и это слабо сказано), но с пьедестала лидера слезать не собирался. А вот пришёл игрок сопоставимый по масштабам и амбициям, для которого проект своего браузера — это не просто выражение своего недовольства тем, что один монополист плюёт на всех и творит, что вздумается, а стратегическое решение, конкретный и чёткий бизнес, и вот уже несколько лет как IE по разным оценкам свергнут с лидирующих позиций…
И то, что JetBrains осознанно занялись IDE для С++ внушает какие-то надежды, что наконец-то появится продукт, который уже из коробки можно будет неплохо так пользовать, а плагины для которого будут привносить именно дополнительный функционал, а не тот, который каждая современная IDE должна иметь изначально.
В отрыве от платформы Windows под Windows альтернативы есть (и да, это на самом деле всякие qtCreator'ы, Eclips'ы и NetBeans'ы, которыми вполне можно пользоваться, если бы не грёбаная привычка, выработанная Windows-программистами, которые в массе своей изначально работали в MSVC). Но вот когда работаешь с довольно запутанной и разрозненной экосистемой Windows — альтернатив тому же Visual Studio нет. Это правда.
Изначальным моим посылом было то, что MSVC как IDE для C++ (слово «Windows» под одним из плюсов видно затерялось) — не самое лучшее решение. Именно как IDE для С++. Где даже когда ты не имеешь отношений со всякими Windows-технологиями напрямую (например используешь всякие готовые библиотеки и врапперы от сторонних разработчиков — да тот же boost) работа MSVC в качестве IDE оставляет желать очень много лучшего. Про всякий Visual Assist и прочие костыли (хоть и довольно качественные), которые делают из MS-поделия конфетку я также не наезжал. Они молодцы и умеют зарабатывать на хлеб честно, выпуская действительно Продукт. MS тоже умеет зарабатывать, только несколько иным способом — впаривая всякую маркетинговую шелуху, а не продукт.
Ситуация с MSVC и альтернативами чем-то напоминает относительно недавнюю ситуации с IE и альтернативами, когда вроде и Firefox был, и Опера, и IE как-то не очень идельный был (и это слабо сказано), но с пьедестала лидера слезать не собирался. А вот пришёл игрок сопоставимый по масштабам и амбициям, для которого проект своего браузера — это не просто выражение своего недовольства тем, что один монополист плюёт на всех и творит, что вздумается, а стратегическое решение, конкретный и чёткий бизнес, и вот уже несколько лет как IE по разным оценкам свергнут с лидирующих позиций…
И то, что JetBrains осознанно занялись IDE для С++ внушает какие-то надежды, что наконец-то появится продукт, который уже из коробки можно будет неплохо так пользовать, а плагины для которого будут привносить именно дополнительный функционал, а не тот, который каждая современная IDE должна иметь изначально.
Попробуйте angular. Я думаю вы быстро примете решение насчет того что нет в жизни веба и остался один биндинг. Отпишитесь им на форуме. И не забывайте о asm.js, знание c++ сейчас как проказа.
> знание c++ сейчас как проказа
Интересно тогда, на чём пишется виртуальная машина, в которой крутятся программы на C#, да и неужто такая прекрасная и замечательная Винда, а особенно её ядро пишется на Visual Basic?
Какой бы по вашему мнению плохой не был C++, но MS поставляет продукт, в том числе и поддерживающий С++ (я правда не заставлял MS включать в свои продукты поддержку С++), за который ещё и деньги хочет, но продукт выглядит как нагромождение кучи недоделанных хороших идей, которые, судя по всему, никогда так доведены до нормального состояния не будут. В сумме получаем красивую и дорогую свистоперделку, основу для нагромождения на неё сторонних платных плагинов, но не полноценную IDE.
При чём тут angular и asm.js — вообще не понял. IDE для работы с «низкоуровневым» javascript вполне хватает. Да та же IntelliJIDEA Community Edition или Sublime Text вполне неплохо покрывают эту нишу.
Интересно тогда, на чём пишется виртуальная машина, в которой крутятся программы на C#, да и неужто такая прекрасная и замечательная Винда, а особенно её ядро пишется на Visual Basic?
Какой бы по вашему мнению плохой не был C++, но MS поставляет продукт, в том числе и поддерживающий С++ (я правда не заставлял MS включать в свои продукты поддержку С++), за который ещё и деньги хочет, но продукт выглядит как нагромождение кучи недоделанных хороших идей, которые, судя по всему, никогда так доведены до нормального состояния не будут. В сумме получаем красивую и дорогую свистоперделку, основу для нагромождения на неё сторонних платных плагинов, но не полноценную IDE.
При чём тут angular и asm.js — вообще не понял. IDE для работы с «низкоуровневым» javascript вполне хватает. Да та же IntelliJIDEA Community Edition или Sublime Text вполне неплохо покрывают эту нишу.
В VS 13 неплохой IntellisEnce для C++. С своими задачами он справляется. С С++ на самом деле все хорошо, сам нет нет, что то на нем делаю. Но он все же сложен. Среда настоящих профи по моему мало обращает внимания на IDE. Посмотрите лекции channel9.msdn.com/Events/Speakers/Stephan-T-Lavavej и все там понемногу делается.
> В VS 13 неплохой IntellisEnce для C++
А скажите в Express версии тоже. Просто как иначе оценить? Или необходимо всё же Ultimate триал качать?
Язык действительно сложен — никто не спорит, но очень и очень универсален и используется в областях, куда многим другим языкам путь заказан. Поэтому востребованность в хорошей IDE для него будет ещё очень долго.
И даже _настоящие_профи_ наверное всё же будут рады, когда среда будет им помогать, а не вводить в заблуждение и замешательство. Код можно набирать хоть в notepad, беря конструкции и используемые и привычные api из головы, а вот исследовать и разбирать чужой проект бывает порой гораздо сложнее, и тут бы очень и очень пригодилась хорошая IDE, которая позволила бы быстрее вникнуть в проект, быстро находить переменные и объявления новых типов, поменьше рвать мозг и тратить время разработчика на вникание и разбор макросов особо извращённой вложенности, а также исследовать незнакомые api незнакомых библиотек, что сам бы использовать никогда бы не додумался.
А скажите в Express версии тоже. Просто как иначе оценить? Или необходимо всё же Ultimate триал качать?
Язык действительно сложен — никто не спорит, но очень и очень универсален и используется в областях, куда многим другим языкам путь заказан. Поэтому востребованность в хорошей IDE для него будет ещё очень долго.
И даже _настоящие_профи_ наверное всё же будут рады, когда среда будет им помогать, а не вводить в заблуждение и замешательство. Код можно набирать хоть в notepad, беря конструкции и используемые и привычные api из головы, а вот исследовать и разбирать чужой проект бывает порой гораздо сложнее, и тут бы очень и очень пригодилась хорошая IDE, которая позволила бы быстрее вникнуть в проект, быстро находить переменные и объявления новых типов, поменьше рвать мозг и тратить время разработчика на вникание и разбор макросов особо извращённой вложенности, а также исследовать незнакомые api незнакомых библиотек, что сам бы использовать никогда бы не додумался.
Если вы видели стандарты языков Java и C++, то причина, по которой для последнего реализовать всякие рефакторинги, и даже, вроде бы, тривиальные вещи вроде перехода к определению, сложнее на порядок, должна быть очевидна.
> Если вы видели стандарты языков Java и C++,…
Господи, одно и то же… Вот откуда вы взяли, что я их не видел? Я вам даже больше скажу, я видел и серьёзно разбирался даже с редакциями разных годов.
И да, я осознаю, что C++ гораздо сложнее… И? Но по мне это нисколько не оправдывает то, что MSVC как IDE для C++ — это просто дорогое говно…
В конце концов, компилятор и сборщик от того же MS как-то проект собирает, какой бы сложный он не был. А там, знаете ли на определённом этапе происходит построение того же самого дерева зависимостей между компонентами. По сути для обеспечения нормальной функциональности перехода нужно отладить и всячески заоптимизировать построение этого дерева в реалтайм, но в то же время и дерево прямо чтобы полное на весь проект строить обычно не нужно, если пользователь сейчас работает с определённым набором файлов. Не знаю, как это реализовано в IntelliScence, но эта хрень просто не работает: минимум 50% попыток осущесвить «Go to definition» выдаёт сообщение «A definition for the symbol 'blablabla' could not be located.»
Я уже не говорю про то, что к переходам никакого отношения не имеет: более или менее нормальная подсветка синтаксиса и всякие подсветки выделенного только в 2012 версии вроде как появилась (у всяких бесплатных не-IDE типа Notepad++ уже хрен знает сколько к тому времени это было «из коробки»). Но это нисколько не мешало продавать предыдущие говноверсии продукта.
И последнее. Вот будет особенно эпично, если JetBrains (создатели ReSharper и IntelliJIDEA) допилят свою IDE для C++, которую они анонсировали в этом году. А учитывая то, как ребята оттуда подходят к контролю качества того, что они выпускают, они либо реально допилят, либо просто выпускать не будут, но заниматься впариванием набора свистоперделок за огромные деньги навряд ли отважутся. И да, особенно круто будет смотреться бесплатный JetBrains С++ IDE Community Edition (если выпустят конечно) на фоне даже того же MSVS Ultimate, где тот переход скорее всего так и не допилят. Потому что гладиолус…
Господи, одно и то же… Вот откуда вы взяли, что я их не видел? Я вам даже больше скажу, я видел и серьёзно разбирался даже с редакциями разных годов.
И да, я осознаю, что C++ гораздо сложнее… И? Но по мне это нисколько не оправдывает то, что MSVC как IDE для C++ — это просто дорогое говно…
В конце концов, компилятор и сборщик от того же MS как-то проект собирает, какой бы сложный он не был. А там, знаете ли на определённом этапе происходит построение того же самого дерева зависимостей между компонентами. По сути для обеспечения нормальной функциональности перехода нужно отладить и всячески заоптимизировать построение этого дерева в реалтайм, но в то же время и дерево прямо чтобы полное на весь проект строить обычно не нужно, если пользователь сейчас работает с определённым набором файлов. Не знаю, как это реализовано в IntelliScence, но эта хрень просто не работает: минимум 50% попыток осущесвить «Go to definition» выдаёт сообщение «A definition for the symbol 'blablabla' could not be located.»
Я уже не говорю про то, что к переходам никакого отношения не имеет: более или менее нормальная подсветка синтаксиса и всякие подсветки выделенного только в 2012 версии вроде как появилась (у всяких бесплатных не-IDE типа Notepad++ уже хрен знает сколько к тому времени это было «из коробки»). Но это нисколько не мешало продавать предыдущие говноверсии продукта.
И последнее. Вот будет особенно эпично, если JetBrains (создатели ReSharper и IntelliJIDEA) допилят свою IDE для C++, которую они анонсировали в этом году. А учитывая то, как ребята оттуда подходят к контролю качества того, что они выпускают, они либо реально допилят, либо просто выпускать не будут, но заниматься впариванием набора свистоперделок за огромные деньги навряд ли отважутся. И да, особенно круто будет смотреться бесплатный JetBrains С++ IDE Community Edition (если выпустят конечно) на фоне даже того же MSVS Ultimate, где тот переход скорее всего так и не допилят. Потому что гладиолус…
А вы можете более детально описать случаи когда у вас не работает gotodef?
«Не работает» — это типа вообще не работает, или всё же кидает куда-то, но не на то, что ожидалось?
Любое неожиданное поведение.
> Любое неожиданное поведение.
Вот сейчас пришёл на работу, чтобы как можно точнее описать поведение Visual Studio 2010 (дома этим говноподельем засорять комп не хочется совершенно).
В довольно крупной функции на несколько экранов (да, я знаю, что это безбразие нужно отрефактрить, но код в наследство достался) есть локальная переменная value. В месте, где она используется, ставлю курсор на неё — жму «Go to definition» или «Go to declaration» — без разницы — всё равно результат одинаково отвратительный: выплывает окно «Find Symbols Result» в лучшем случае, где куча мест, где объявлены аналогичные по названию переменные value (они локальные в разных функциях и обильно рассыпаны по всему проекту). Мне нужна только конкретно определение той переменной, на которой стоит курсор, а не все упоминания value в проекте — для этого поиск есть в конце концов.
Довольно часто без каких-то результатов просто выплывает MessageBox с текстом: «A definition for the symbol 'value' could not be located.» А переменная ведь где-то задекларирована? Или компиляция без неё происходит? :)
Я ответил на ваш вопрос?
Вот сейчас пришёл на работу, чтобы как можно точнее описать поведение Visual Studio 2010 (дома этим говноподельем засорять комп не хочется совершенно).
В довольно крупной функции на несколько экранов (да, я знаю, что это безбразие нужно отрефактрить, но код в наследство достался) есть локальная переменная value. В месте, где она используется, ставлю курсор на неё — жму «Go to definition» или «Go to declaration» — без разницы — всё равно результат одинаково отвратительный: выплывает окно «Find Symbols Result» в лучшем случае, где куча мест, где объявлены аналогичные по названию переменные value (они локальные в разных функциях и обильно рассыпаны по всему проекту). Мне нужна только конкретно определение той переменной, на которой стоит курсор, а не все упоминания value в проекте — для этого поиск есть в конце концов.
Довольно часто без каких-то результатов просто выплывает MessageBox с текстом: «A definition for the symbol 'value' could not be located.» А переменная ведь где-то задекларирована? Или компиляция без неё происходит? :)
Я ответил на ваш вопрос?
Как минимум, в студии 100% надежно (начиная с VS 2010) работает code completion для плюсов, в том числе для весьма зубодробительных случаев с хитровывернутыми шаблонами (вроде std::bind, например). Единственная известная мне IDE, которая умеет что-то хотя бы отдаленно похожее для плюсов — это KDevelop. В том же Qt Creator, например, не дополняются настолько тривиальные вещи, как работа с элементами std::vector<std::string>.
То же самое с подсветкой типов etc. По сравнению с каким-нибудь Notepad++, в VS есть огромное отличие — он подсвечивает именно типы (после разбора дерева, инстанциации шаблонов etc), а не просто матчит кусок кода по регекспу «это примерно похоже на тип в объявлении». Опять же, если вы знаете плюсы, то должны знать и то, что в общем случае даже просто отличить объявление переменной от выражения требует разворачивания всех задействованных в выражении шаблонов — т.е. это не просто парсинг.
То же самое с подсветкой типов etc. По сравнению с каким-нибудь Notepad++, в VS есть огромное отличие — он подсвечивает именно типы (после разбора дерева, инстанциации шаблонов etc), а не просто матчит кусок кода по регекспу «это примерно похоже на тип в объявлении». Опять же, если вы знаете плюсы, то должны знать и то, что в общем случае даже просто отличить объявление переменной от выражения требует разворачивания всех задействованных в выражении шаблонов — т.е. это не просто парсинг.
> Как минимум, в студии 100% надежно (начиная с VS 2010) работает code completion
В какой комплектации нужно проверять эту 100% надёжность: Express, Pro, Ultimate, ещё какие? Какие плагины должны быть поставлены поверх. А то тут вроде говоришь о MSVC — народ слышит MSVC Pro + Visual Assist X («говоришь Ленин — подразумеваем партия, говоришь партия — подразумеваем Ленин» ©).
По поводу сложности развёртывания — смотря как делать. Ещё раз, когда представляешь код для пользователя необходимо строить дерево зависимостей, разворачивать шаблоны и макросы. Это не просто, но и прямо целиком дерево ведь сразу строить тоже не нужно. Тут конечно ума много на эту балалайку прикрутить нужно, но это не значит, что это не выполнимо для 90% случаев. MSVC же не срабатывает даже порой в пределах одного метода с локальными переменными без всяких шаблонов (особенно если есть одноимённая перенная в классе метода например, а ещё хуже глобальная), где никакого развёртывания не нужно. Что уж говорить про более сложные случаи. Да и потом, что вы меня убеждаете?! Тот же Visual Assist с задачей корректной навигации по коду гораздо лучше справляется. Хоть и не всегда идеально. Почему они могут, а MS — нет?
То же самое с подсветкой — она в большинсве случаев вообще ничего не означает. Точнее означает, но абсолютно бесполезна в большинстве случаев. Уж bool от выражения я наверное отличить и сам смогу в конкретном месте, а вот типы из шаблонов довольно часто не подсвечиваются никак. Опять же по моим ощущениям трёхлетней давности могу сказать, что тот же Visual Assist своей подсветкой вносил гораздо больше понимания в код, чем текущая реализация этого дела в MSVC2010.
Тут народ меня по всякому пытается убедить, что MSVC классный продукт, но половина из них приплюсовывает к поделию от MS ещё и Visual Assist. Это как бы намекает, что не одному мне не нравится продукт из коробки…
В какой комплектации нужно проверять эту 100% надёжность: Express, Pro, Ultimate, ещё какие? Какие плагины должны быть поставлены поверх. А то тут вроде говоришь о MSVC — народ слышит MSVC Pro + Visual Assist X («говоришь Ленин — подразумеваем партия, говоришь партия — подразумеваем Ленин» ©).
По поводу сложности развёртывания — смотря как делать. Ещё раз, когда представляешь код для пользователя необходимо строить дерево зависимостей, разворачивать шаблоны и макросы. Это не просто, но и прямо целиком дерево ведь сразу строить тоже не нужно. Тут конечно ума много на эту балалайку прикрутить нужно, но это не значит, что это не выполнимо для 90% случаев. MSVC же не срабатывает даже порой в пределах одного метода с локальными переменными без всяких шаблонов (особенно если есть одноимённая перенная в классе метода например, а ещё хуже глобальная), где никакого развёртывания не нужно. Что уж говорить про более сложные случаи. Да и потом, что вы меня убеждаете?! Тот же Visual Assist с задачей корректной навигации по коду гораздо лучше справляется. Хоть и не всегда идеально. Почему они могут, а MS — нет?
То же самое с подсветкой — она в большинсве случаев вообще ничего не означает. Точнее означает, но абсолютно бесполезна в большинстве случаев. Уж bool от выражения я наверное отличить и сам смогу в конкретном месте, а вот типы из шаблонов довольно часто не подсвечиваются никак. Опять же по моим ощущениям трёхлетней давности могу сказать, что тот же Visual Assist своей подсветкой вносил гораздо больше понимания в код, чем текущая реализация этого дела в MSVC2010.
Тут народ меня по всякому пытается убедить, что MSVC классный продукт, но половина из них приплюсовывает к поделию от MS ещё и Visual Assist. Это как бы намекает, что не одному мне не нравится продукт из коробки…
Ну, учитывая что клёвая идея до сих пор с C++ вообще не работает (да и с C# вроде тоже), обсуждать её преимущества в данном контексте как-то странно. Скорее уж решарпер.
> Ну, учитывая что клёвая идея до сих пор с C++ вообще не работает
неправда — никакого ВООБЩЕ и в помине нет: www.youtube.com/watch?v=3Fl9Y6Lj6zI или habrahabr.ru/company/JetBrains/blog/184830/ (маленькая оговорочка: я так понял, под «клёвая идея» вы имели ввиду именно, что у JetBrains нет продуктов для C++ — многие продукты для того же Ruby, или Python, или PHP строятся на едином ядре идеи, насколько мне известно).
> обсуждать её преимущества в данном контексте как-то странно.
В чём странность? Вас смущает, что языки разные? Ну вот вам тогда решение за 0$, которое по некоторым параметрам (особенно часто используемым) опережает Visual C++ за 500+$: www.youtube.com/watch?v=MQy2rVOf-z0
> Скорее уж решарпер.
Не работал — не знаю. А я привык отвечать за свои слова… Хотя популярность того же ReSharper, как бы намекает, что и там MS не идеал.
неправда — никакого ВООБЩЕ и в помине нет: www.youtube.com/watch?v=3Fl9Y6Lj6zI или habrahabr.ru/company/JetBrains/blog/184830/ (маленькая оговорочка: я так понял, под «клёвая идея» вы имели ввиду именно, что у JetBrains нет продуктов для C++ — многие продукты для того же Ruby, или Python, или PHP строятся на едином ядре идеи, насколько мне известно).
> обсуждать её преимущества в данном контексте как-то странно.
В чём странность? Вас смущает, что языки разные? Ну вот вам тогда решение за 0$, которое по некоторым параметрам (особенно часто используемым) опережает Visual C++ за 500+$: www.youtube.com/watch?v=MQy2rVOf-z0
> Скорее уж решарпер.
Не работал — не знаю. А я привык отвечать за свои слова… Хотя популярность того же ReSharper, как бы намекает, что и там MS не идеал.
Тогда зачем вы вообще взялись за голый VS, когда так много таких прекрасных возможностей, в том числе и с клёвой идеей? Я бы кстати с огромным интересом почитал обзор по текущим возможностям продуктов от JetBrains по работе с C++ от практикующего эксперта.
Если вы про вообще про то, как я программирую на С++ — то я не ввязывался… Если про тот проект, который в моём первом комменте упоминается — то это проект перешёл ко мне на поддержку и небольшую дработку от другого разработчика, который естественно лабал его с ипользованием MSVC со всеми вытекающими. Поэтому приходится, так сказать, хавать говно. Причём не по своей воле, а потому что предыдущий разработчик не видел альтернатив (а точнее даже не пытался увидеть — привычку и калёным железом не вытравишь).
Я не говорю про то, какие JetBrains молодцы, я про то, что MS позиционирует свой продукт как IDE, но по сути это поделие всего лишь основа для IDE, причём за нехилые надо сказать деньги.
> Я бы кстати с огромным интересом почитал обзор по текущим возможностям продуктов от JetBrains по работе с C++ от практикующего эксперта.
Так вам ссылки в комменте выше зачем приведены? Там вполне человек из JetBrains, который вроде понимает, про что говорит (т.е. практик), рассказывает про то, что у них уже вроде как есть, и куда они путь держат.
Я не говорю про то, какие JetBrains молодцы, я про то, что MS позиционирует свой продукт как IDE, но по сути это поделие всего лишь основа для IDE, причём за нехилые надо сказать деньги.
> Я бы кстати с огромным интересом почитал обзор по текущим возможностям продуктов от JetBrains по работе с C++ от практикующего эксперта.
Так вам ссылки в комменте выше зачем приведены? Там вполне человек из JetBrains, который вроде понимает, про что говорит (т.е. практик), рассказывает про то, что у них уже вроде как есть, и куда они путь держат.
> MS позиционирует свой продукт как IDE, но по сути это поделие всего лишь основа для IDE
Скорее — сильно устаревшее IDE, выбравшее не очень удачный путь омоложения. Старинные IDE вроде и похуже бывали.
> Так вам ссылки в комменте выше зачем приведены?
Так там нет ссылок на работающие продукты, доступные рядовому разработчику (ну, за исключением Vim, который вроде как не продукт JetBrains)
> Там вполне человек из JetBrains, который вроде понимает, про что говорит (т.е. практик)
Нененедэвидблейн, «понимает что говорит» — это «эксперт», а практик — это тот, кто насобирал достаточно обширную коллекцию граблей. Мнение разработчика продукта и связанных с ним лиц конечно тоже интересно (спасибо за ссылки, кстати), но тут есть нюанс.
Скорее — сильно устаревшее IDE, выбравшее не очень удачный путь омоложения. Старинные IDE вроде и похуже бывали.
> Так вам ссылки в комменте выше зачем приведены?
Так там нет ссылок на работающие продукты, доступные рядовому разработчику (ну, за исключением Vim, который вроде как не продукт JetBrains)
> Там вполне человек из JetBrains, который вроде понимает, про что говорит (т.е. практик)
Нененедэвидблейн, «понимает что говорит» — это «эксперт», а практик — это тот, кто насобирал достаточно обширную коллекцию граблей. Мнение разработчика продукта и связанных с ним лиц конечно тоже интересно (спасибо за ссылки, кстати), но тут есть нюанс.
Текущих продуктов в свободном доступе от JetBrains для C++ пока пока нет — у них политика такая — они пытаются не ударить в грязь лицом и начинают выкладывать беты, только после тщательного внутреннего тестирования и допиливания… Но вроде как не так уж и долго ждать осталось.
Ну и представить кого-то кроме чувака на видео сейчас по тем же причинам тоже проблематично…
Мои ожидания от JetBrains конечно ничем прямо сильно не подкреплены, но косвенные признаки — а именно другие продукты в других не-Java языках, а также крайне критичный подход к своим продуктам, направленный не только на наращивание всяких фишек, а именно на доделывание и максимальную оптимизацию под пользователя существующих решений — позволяет надеяться, что хотя у них получится ну по-крайней мере не хуже чем у MS (а казалось бы — куда уж...).
Ну и представить кого-то кроме чувака на видео сейчас по тем же причинам тоже проблематично…
Мои ожидания от JetBrains конечно ничем прямо сильно не подкреплены, но косвенные признаки — а именно другие продукты в других не-Java языках, а также крайне критичный подход к своим продуктам, направленный не только на наращивание всяких фишек, а именно на доделывание и максимальную оптимизацию под пользователя существующих решений — позволяет надеяться, что хотя у них получится ну по-крайней мере не хуже чем у MS (а казалось бы — куда уж...).
UFO just landed and posted this here
Sign up to leave a comment.
CodeLens в Visual Studio 2013