...
AG>>...совместить положительные стороны студии, с положительными сторонами QtCreator...
I>Вот тут можно поподробнее про положительные стороны? Поделитесь опытом. I>Когда и зачем используют две системы разработки?
ЗА QtCreator:
1) Создание нового проекта на Qt;
2) Создание, разработка, редактирование диалоговых и прочих GUI форм (QML и классических виджетов);
3) Специфические случаи. Пример: поддержка .rep файлов (и опций REPC_REPLICA, REPC_SOURCE) для разработок Qt Remote Object проектов;
4) Удобен в случае, когда НЕ привязаны к Windows (и в частности, если в проекте даже не применяется Qt).
ЗА MSVS:
1) Удобство редактирования кодов проекта (поддержка dockable редакторов файлов проекта);
2) Непосредственно GUI системы разработки — куда удобнее и гибче для пользователя;
3) Весьма удобная и продуманная навигация по проекту;
4) Очень удобный отладчик и сам процесс отладки;
5) Хороший IntelliSense, особенно это актуально в MSVC-2017;
6) Более продуманная система парсинга C++ синтаксиса (при написании кода — выделение неверных выражений);
7) Интергация с системами контроля версий (как пример — с теж же GIT-ом) здесь более удобна.
В общем — львиную долю времени при разработках — проводим в студии (MSVC-2017 CE)
и некоторое, относительно небольшое время, — в QtCreator
P.S. Перечисленные ниже мои собственные соображения, вполне возможно, кому-то покажутся не обоснованными.
Не следует воспринимать всё это в виде истины в последней инстанции
Здесь — скорее дело вкуса и личных предпочтений, а не принцыпа.
P.P.S. Из списка достоинств MSVS я убрал работу с двумя мониторами — так как QtCreator v4.6.1 также позволяет выносить окно на доп/монитор.
Здравствуйте, AlexGin, Вы писали:
AG>ЗА QtCreator:
80% действий: редактирование, навигация, интеграция с гитом, сборка.
AG>ЗА MSVS:
Отладчик. Все остальное в Креаторе значительно лучше.
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, AlexGin, Вы писали:
AG>>ЗА QtCreator: S>80% действий: редактирование, навигация, интеграция с гитом, сборка.
AG>>ЗА MSVS: S>Отладчик. Все остальное в Креаторе значительно лучше.
Что там может быть лучше?
— "интеграция с гитом"? — в креаторе она лучше только если студийным никогда не пользовался.
— "сборка"? — студийные солюшены с их .props — это фактически эталон сборки, конкурентов нет.
— "навигация"? — тут даже спорить не о чем. Во-первых табы гораздо удобнее открытых файлов в креаторе. Во вторых — опять же табы, которые можно сложить бок-о-бок, развесить по остальным мониторам + учитывая их с интеграцией в Win десктоп — подобного удобства не предоставляет ниодна среда. В креаторе одна боль редактировать если код распределён по многим местам.
А "Peek definition"? Да ну, после этого не получится всерьез обсуждать креатор (я даже не уверен, что там вообще когда-либо появится подобная функциональность).
— и т.д.
Но! Мы же не голую студию обсуждаем, а стандартную среду разработки под с++? В этом случае без VAX вообще не имеет смысла сравнивать.
А с VAX:
— VA View — с отсутствием этой штуки сразу можно давать -90% продуктивности на больших или незнакомых проектах. Фактически это киллер-фича — ни одна другая IDE не сможет составить альтернативу студии, если у неё отсутствует данная штука.
— VA Outline — с отсутствием этой штуки надо добавить ещё -90% продуктивности на незнакомых проектах и отсутствие удобства при большом рефакторинге
— VA Hashtags — в тяжелых и больших проектах неоценимая помощь, особенно спасает в легаси
— дополнительные подсказки
— дополнительная навигация, + list methods, open correcponding file, find references(!!! кто этим попользовался — уже сложно когда нет), подсветка мест где изменяется переменная (то же для чтения)
— дополнительные средства рефакторинга
— сниплеты (да, они кругом есть, но тут удобнее всего)
— инспекция кода
Потому креатор против студии выглядит как блокнот против Word. Большинство функционала просто отсутствует, либо в зачаточном состоянии, либо сделано неудобно.
Но да, Qt Creator — это лучшее, что есть для не-Windows ОС.
Здравствуйте, AeroSun, Вы писали:
AS>- "интеграция с гитом"? — в креаторе она лучше только если студийным никогда не пользовался.
"git blame", "git rebase --interactive", "git stash" в студии уже есть? С нормальными хоткеями?
AS>- "сборка"? — студийные солюшены с их .props — это фактически эталон сборки, конкурентов нет.
Смешно. Весь топик о неспособности студии работать с разными системами сборки.
AS>- "навигация"? — тут даже спорить не о чем. Во-первых табы гораздо удобнее открытых файлов в креаторе.
Глупость. Табы — это самообман. Если у вас большой проект, то у вас десятки открытых файлов, визуальная навигация по табам — анти-паттерн который снижает производительность.
AS>Во вторых — опять же табы, которые можно сложить бок-о-бок, развесить по остальным мониторам + учитывая их с интеграцией в Win десктоп — подобного удобства не предоставляет ниодна среда.
В креаторе можно открыть несколько редакторов и развести их по разным мониторам, только при нормальной навигации это редко надо
AS>В креаторе одна боль редактировать если код распределён по многим местам.
Ну если пытаться переходить с помощью мышки — может быть да. Но вся мощь в F2 ("Follow symbol under cursor") и локаторе (переход к классам, методам, файлам и т.д. в т.ч. fuzzy logic) и переходе вперед-назад как в браузере.
AS>А "Peek definition"?
Ужас. В креаторе: F2, посмотрел и "alt+left" чтобы вернуться обратно.
AS>Да ну, после этого не получится всерьез обсуждать креатор (я даже не уверен, что там вообще когда-либо появится подобная функциональность).
Студия это тупиковый путь эволюции в плане редактирования, никто не повторяет их подход, а сами МС пилят Visual Studio Code.
AS>Но! Мы же не голую студию обсуждаем, а стандартную среду разработки под с++? В этом случае без VAX вообще не имеет смысла сравнивать.
Во-во, без платного плагина студия вообще не вменяема (за исключением отладчика).
AS>А с VAX: AS>- VA View — с отсутствием этой штуки сразу можно давать -90% продуктивности на больших или незнакомых проектах. Фактически это киллер-фича — ни одна другая IDE не сможет составить альтернативу студии, если у неё отсутствует данная штука. AS>- VA Outline — с отсутствием этой штуки надо добавить ещё -90% продуктивности на незнакомых проектах и отсутствие удобства при большом рефакторинге AS>- VA Hashtags — в тяжелых и больших проектах неоценимая помощь, особенно спасает в легаси AS>- дополнительные подсказки AS>- дополнительная навигация, + list methods, open correcponding file, find references(!!! кто этим попользовался — уже сложно когда нет), подсветка мест где изменяется переменная (то же для чтения) AS>- дополнительные средства рефакторинга AS>- сниплеты (да, они кругом есть, но тут удобнее всего) AS>- инспекция кода
Если перевести с птичьего на нормальный, то окажется, что значительная часть этого есть в Креаторе из коробки. Бесплатно. Кроссплатформенно.
AS>Потому креатор против студии выглядит как блокнот против Word. Большинство функционала просто отсутствует, либо в зачаточном состоянии, либо сделано неудобно.
Ну понятно, как и в случае с qbs выйти за рамки выученного шаблона — никак.
Здравствуйте, Skorodum, Вы писали:
... AG>ЗА QtCreator: S>80% действий: редактирование, навигация, интеграция с гитом, сборка.
... AG>ЗА MSVS: S>Отладчик. Все остальное в Креаторе значительно лучше.
Уважаемый Skorodum!
Я выразил мою точку зрения.
Это совсем не означает, что у Вас она должна совпадать с моей
P.S. Под интеграцией с системой контроля кода, я подразумеваю тот факт, что GitExtensions у меня интегрируются в MSVC.
В MSVC я вижу тулбар и меню — позволяющее мне напрямую работать с моей любимой системой контроля версий (Git) и её графической оболочкой (GitExtensions). Таким образом, у меня нет необходимости куда-то выходить из студии, чтобы выполнить "commit" и другие команды Git-а.
К сожалению, данное поведение не наблюдается в QtCreator (хотя и в крейторе сделана нейкая поддержка для Git).
Здравствуйте, AeroSun, Вы писали:
... AS>Но! Мы же не голую студию обсуждаем, а стандартную среду разработки под с++? В этом случае без VAX вообще не имеет смысла сравнивать. AS>А с VAX:
Я вообще-то подразумевал именно MSVS — без установки каких-либо доп средств...
Если подразумевается это: https://en.wikipedia.org/wiki/Visual_Assist — то оно идёт как коммерческий продукт
Лично я такими не пользуюсь.
Студия сама по себе — обеспечивает отличные возможности для работы с кодами проекта.
...
Опять подчеркиваю — здесь дело вкуса и я не в праве навязывать Вам, уважаемый AeroSun, что выбирать.
...
AS>Но да, Qt Creator — это лучшее, что есть для не-Windows ОС.
+100500
Да, для Linux-а это самая лучшая IDE.
Здравствуйте, Skorodum, Вы писали:
S>"git blame", "git rebase --interactive", "git stash" в студии уже есть? С нормальными хоткеями?
Есть(к тому же блейм гораздо удобнее). Если надо дополнительные опции — то установить нужный экстеншн.
Но мы не об количестве фич, а об удобстве использования инструмента в повседневной жизни. Такой интеграции в любых других IDE просто нет.
S>Смешно. Весь топик о неспособности студии работать с разными системами сборки.
Действительно смешной комментарий. Нет смысла поддерживать остальные системы сборки, если у них нет не то чтобы преимуществ, а ещё и недостатки присутствуют. Тем не менее студия вообще-то пилит безшовную поддержку того же cmake, мейкфайлы изначально умела. Qt плагин может открывать кутешные проекты. Так как они имеют широкое распространение.
Хочешь ещё больше посмеяться? Как там у других систем сборки с поддержкой солюшенов студии? Как-то никак, да?
S>Глупость. Табы — это самообман. Если у вас большой проект, то у вас десятки открытых файлов, визуальная навигация по табам — анти-паттерн который снижает производительность.
Серьезно?))) То есть если у меня код перед глазами — это снижает производительность, а если я его не вижу — то повышает? Похоже ты просто не работал с ними и особенно в мультимониторной среде.
S>В креаторе можно открыть несколько редакторов и развести их по разным мониторам, только при нормальной навигации это редко надо https://www.linux.org.ru/images/16134/original.jpg
S>Ну если пытаться переходить с помощью мышки — может быть да. Но вся мощь в F2 ("Follow symbol under cursor") и локаторе (переход к классам, методам, файлам и т.д. в т.ч. fuzzy logic) и переходе вперед-назад как в браузере.
Не "с помощью мышки" а "удобно" — это разные вещи. Мощь не в хоткеях, они и в студии есть.
Локатор — это просто свалка. Всё, что туда навалили надо ещё сделать удобно.
AS>>А "Peek definition"? S>Ужас. В креаторе: F2, посмотрел и "alt+left" чтобы вернуться обратно.
Это вообще разные вещи.
S>Студия это тупиковый путь эволюции в плане редактирования, никто не повторяет их подход, а сами МС пилят Visual Studio Code.
В чм заключается тупиковость студии? оО В том, что никто не может повторить их подход?
AS>>Но! Мы же не голую студию обсуждаем, а стандартную среду разработки под с++? В этом случае без VAX вообще не имеет смысла сравнивать. S>Во-во, без платного плагина студия вообще не вменяема (за исключением отладчика).
Такое впечатление, что общаюсь с подростком в период максимализма. Мы обсуждаем вообще-то среды разработки. Студия + VAX всегда идут вместе.
S>Если перевести с птичьего на нормальный, то окажется, что значительная часть этого есть в Креаторе из коробки. Бесплатно. Кроссплатформенно.
Да ну? Где же мне найти хотя бы первые 3 пункта? В локаторе?
Вдруг их не найдётся, то хотя бы find references.
S>Ну понятно, как и в случае с qbs выйти за рамки выученного шаблона — никак.
Мы ведь взрослые люди и оба понимаем, что претензия "выйти за рамки выученного шаблона — никак" означает — "не смогли сделать"?
Здравствуйте, AlexGin, Вы писали:
AG>Студия сама по себе — обеспечивает отличные возможности для работы с кодами проекта. AG>...
Да, студия и сама по себе отличный инструмент. Просто Вы, наверное, первый человек которого вижу, кто не пользует VAX. Фактически этот плагин — стандарт де-факто для разработки на плюсах под студию.
Здравствуйте, AeroSun, Вы писали:
AS>Да, студия и сама по себе отличный инструмент. Просто Вы, наверное, первый человек которого вижу, кто не пользует VAX. Фактически этот плагин — стандарт де-факто для разработки на плюсах под студию.
(Холивара ради)
Глупости, решарпер в сто раз лучше и умнее. Ушёл с помидор где-то в 2015 году, когда решарпер стал более-менее нормально парсить игровые движки и кутэ.
Здравствуйте, Skorodum, Вы писали:
S>В креаторе можно открыть несколько редакторов и развести их по разным мониторам, только при нормальной навигации это редко надо
+100500
Огромное Спасибо!
Только теперь, благодаря Вашему посту, уважаемый Skorodum, экспериментируя с крейтором, понял — что и его можно задействовать на два монитора!
Оказывается — здесь окна (с текстовыми редакторами файлов проекта) можно разделять сплиттером!
S>Ну если пытаться переходить с помощью мышки — может быть да. Но вся мощь в F2 ("Follow symbol under cursor")...
А вот здесь вы меня не удивите!
Аналогичный функционал — по клавише F12 в среде MSVS.
P.S. Я прекрасно Вас понимаю, уважаемый Skorodum, Вы долго работаете с QtCreator — хорошо знаете его особенности и привыкли к нему.
Для многих разработчиков под Windows — то же самое можно сказать относительно студии.
Здравствуйте, SaZ, Вы писали:
SaZ>решарпер в сто раз лучше и умнее.
Имхо, тормозное глюкало. Недавно попробовал как раз. Чтобы его как следует под себя настроить, нужно прилично поработать (скрипты и правила долго и потно пилить). Остался на VAX, в итоге. Для решетки Решарпер, наверное, норм, а под плюсы, опять же имхо, не алё.
Здравствуйте, AlexGin, Вы писали:
AG>К сожалению, данное поведение не наблюдается в QtCreator (хотя и в крейторе сделана нейкая поддержка для Git).
Какое типичное действие с git вы не можете выполнить из QtCreator?
QtCreator поддерживает:
git commit
git log (файл или проект)
git blame
git add
git stash/stash pop
git diff
git push
git pull
git show
git fetch
git merge
git rebase/rebase -i
gitk
git cherry pick
git branch
git reflog
git amend
и еще по мелочи. Что-то мне подсказывает, что это перекрывает 99% потребностей любого пользователя. Все это работает по горячим клавишам/командам из локатора и возвращение в режим редактирования по Esc тоже работает. Все это работает даже если просто откртыть файл который в репозитории. Единственное, зачем мне приходиться использовать командную строку это "git add -i" (когда находящиеся рядом изменения надо закоммитить по раздельности).
Здравствуйте, AlexGin, Вы писали:
S>>В креаторе можно открыть несколько редакторов и развести их по разным мониторам, только при нормальной навигации это редко надо AG>+100500 AG>Огромное Спасибо!
Пожалуйста ) Скромно напомню, что на кывте есть система оценок )
AG>Оказывается — здесь окна (с текстовыми редакторами файлов проекта) можно разделять сплиттером!
Хоть вертикально, хоть горизонтально, не ограниченное число раз.
AG>А вот здесь вы меня не удивите! AG>Аналогичный функционал — по клавише F12 в среде MSVS.
Да, более-менее так же работает.
AG>P.S. Я прекрасно Вас понимаю, уважаемый Skorodum, Вы долго работаете с QtCreator — хорошо знаете его особенности и привыкли к нему. AG>Для многих разработчиков под Windows — то же самое можно сказать относительно студии.
У меня сейчас примерно поровну: QtCreator и MSVC 2017 (без плагинов). Из коробки QtCreator явно лучше (за исключением отладчика).
Еще есть такой момент. Начиная с версии 4.7 в QtCreator clang используется для большинства задач связанных с парсингом C++, это дает полноценную поддержку С++17, по другому ее слишком сложно реальзовать, разработчики IDE уже не успевают за языком. Сейчас посмотрел в MSVC 2017 — даже автодополнение для auto не особо работает.
Здравствуйте, XOOIOOX, Вы писали:
XOO>Здравствуйте, SaZ, Вы писали:
SaZ>>решарпер в сто раз лучше и умнее.
XOO>Имхо, тормозное глюкало. Недавно попробовал как раз. Чтобы его как следует под себя настроить, нужно прилично поработать (скрипты и правила долго и потно пилить). Остался на VAX, в итоге. Для решетки Решарпер, наверное, норм, а под плюсы, опять же имхо, не алё.
Ну не знаю. Конечно бывает, что тормозит. Но обычно это первые 10-20 минут после открытия проекта, пока все индексы строятся. При переоткрытии проектов — всё ок. Пробовал и с Qt и с Unreal engine — полёт отличный. Хотя, может у меня просто рабочий комп шустрый.
Насчёт правил — один раз настроить и положить конфиг в папку с проектом. Всякие code style сразу расшарятся на всю команду.
Но я вас понимаю, коллеги, которые долго юзали ассист тоже сначала плевались. Потом привыкли
Здравствуйте, Skorodum, Вы писали:
...
AG>>Оказывается — здесь окна (с текстовыми редакторами файлов проекта) можно разделять сплиттером! S>Хоть вертикально, хоть горизонтально, не ограниченное число раз.
Кстати — да! Классный функционал!
AG>>P.S. Я прекрасно Вас понимаю, уважаемый Skorodum, Вы долго работаете с QtCreator — хорошо знаете его особенности и привыкли к нему. AG>>Для многих разработчиков под Windows — то же самое можно сказать относительно студии. S>У меня сейчас примерно поровну: QtCreator и MSVC 2017 (без плагинов). Из коробки QtCreator явно лучше (за исключением отладчика).
Крейтор какой версии?
QtCreator v 4.6.1 — самое свежее, что я видел.
S>Еще есть такой момент. Начиная с версии 4.7 в QtCreator clang используется для большинства задач связанных с парсингом C++, это дает полноценную поддержку С++17, по другому ее слишком сложно реальзовать, разработчики IDE уже не успевают за языком. Сейчас посмотрел в MSVC 2017 — даже автодополнение для auto не особо работает.
ИМХО — при правильном пректировании программного продукта — в выделенном большой необходимости не вижу
Так, если я буду проектировать и разрабатывать IDE, то прежде всего — обеспечу программный интерфейс с подсистемой запуска компилятора.
Теперь: компилятор — запускаем как отдельный процесс (симитировав ему среду системной консоли), при этом я
скармливаю компилятору программный код и провожу парсинг выходного файла.
По результатам парсинга — раскрашиваю код в редакторе.
Знание всех самых свежих стандартов — мне, для решения данной задачи, НЕ принцыпиально.
P.S. Насчёт MSVC 2017 — как я понял, при работе с новой студией, они серьезно доработали IntelliSense.
Насчет проблем с auto — не в курсе, у меня с этим вроде всё OK.
Здравствуйте, AlexGin, Вы писали:
AG>Так, если я буду проектировать и разрабатывать IDE, то прежде всего — обеспечу программный интерфейс с подсистемой запуска компилятора. AG>Теперь: компилятор — запускаем как отдельный процесс (симитировав ему среду системной консоли), при этом я AG>скармливаю компилятору программный код и провожу парсинг выходного файла. AG>По результатам парсинга — раскрашиваю код в редакторе.
Ну так clangd это примерно это и есть, только интерактивно. Тут проблема пока в быстродействие в сравнении с классическими самописными бэкэндами.