VCL vs Qt, религиозные войны |
Здравствуйте, гость ( Вход | Регистрация )
VCL vs Qt, религиозные войны |
AD |
1.7.2008, 14:24
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
VCL и Qt - сравнивать, по-моему, не стоит. У Qt задач больше, они шире и глубже и выполняет Qt их очень даже успешно.
|
|
|
Red Devil |
1.7.2008, 17:47
Сообщение
#2
|
Студент Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: 3 |
Цитата Например та же виуалка ужасть до чего тяжелая Она лучшая IDE для С++. Если на нее еще расширение установить типа codeRush или еще лучше Visual Assist X, то ее переплюнусь вообще никто не может. Вот именно такая мне нужна в линуксах. Дебаггер, мощный autocomplete и навигация по коду. Чтобы по одному щелчку клавиутары мне сразу же открывалась нужная функция, генерировалось описание функции из обьявления, открывался необходимый класс, файл, были подсказки о том какие параметры у функции, чтобы не лезть в документацию. Чтобы был помощник для добавления include, чтобы опять так не лезть в документации или файловую систему, вспомнить в какой подпапке лежит такой-то хедер и еще есть целая куча мелочей, которые время разработки уменьшают в разы. |
|
|
Litkevich Yuriy |
1.7.2008, 21:21
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
31512 |
2.7.2008, 10:25
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 0 раз(а) Репутация: 0 |
Она лучшая IDE для С++. Если на нее еще расширение установить типа codeRush или еще лучше Visual Assist X, то ее переплюнусь вообще никто не может. Вот именно такая мне нужна в линуксах. Дебаггер, мощный autocomplete и навигация по коду. Чтобы по одному щелчку клавиутары мне сразу же открывалась нужная функция, генерировалось описание функции из обьявления, открывался необходимый класс, файл, были подсказки о том какие параметры у функции, чтобы не лезть в документацию. Чтобы был помощник для добавления include, чтобы опять так не лезть в документации или файловую систему, вспомнить в какой подпапке лежит такой-то хедер и еще есть целая куча мелочей, которые время разработки уменьшают в разы. Я собственно к этому и клоню. У меня стойкое ощущение, что уже выработались стандарты IDE. Для Pascal это Delphi, для С++ это VS. Мне бы тоже хотелось иметь нечто подобное под Linux. ОСОБЕННО ОТЛАДЧИК! Я даже согласено смириться с KDevelop, будь там такой отладчик. Было бы неплохо если бы в этом проекте ребята взяли всё самое лучшее от VS. VCL и Qt - сравнивать, по-моему, не стоит. У Qt задач больше, они шире и глубже и выполняет Qt их очень даже успешно. Да как же их не сравнивать, если они очень похожи? И можно узнать что означает: "У Qt задач больше, они шире и глубже"? Мне неизвесно задач которые нельзя было бы решить используя VCL, но можно в Qt. (кроме кроссплатформенности, но и это можно обойти). Она лучшая IDE для С++ Это рейтинг на основе чего? Представим на секунду, что Мукрософт, делает только IDE (т.е. ни тебе виндовоза ни WinAPI) много ли людей будут при этом пользоватся студией? А кто говорит о рейтинге? Я говорю о сложившихся неформальных стандартах. Большинство сред напоминают по структуре VS, потому, что там очень много удобных решений. M$ ворует не хуже других. И опять же отладчик там очень хорош. И эта... Если мы будем допускать невозможное, то конструктивного разговора не выйдет. Давай так: есть масса средств разработки, у всех есть свои недостатки и преимущества. Но в силу конкуренции между ними есть среды, которые лучше многих других. Я считаю, что это Visual Studio. А кто-то так не считает. Поэтому при разработке альтернативной IDE нужно это учитывать. И сначала следует провести опрос хотелок. |
|
|
Tonal |
2.7.2008, 14:44
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Вот очень похожий проект: http://prog.org.ru/forum/index.php/topic,7336.0.html
P.S. По поводу VCL-я - там не поддерживается (практически) MVC, что вынуждает дублировать данные в контролах, либо делать всё на DataSet-ах. Для быстрой разработки морды к базе - само то (+ удобная формошлёпка) а если есть какая-то логика, то довольно тяжко в отличии от Qt, где ты можешь нарисовать слой логики на своих объектах а потом прикрутить к ниму слой отображения на моделях и делегатах... |
|
|
31512 |
2.7.2008, 15:13
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот очень похожий проект: http://prog.org.ru/forum/index.php/topic,7336.0.html P.S. По поводу VCL-я - там не поддерживается (практически) MVC, что вынуждает дублировать данные в контролах, либо делать всё на DataSet-ах. Для быстрой разработки морды к базе - само то (+ удобная формошлёпка) а если есть какая-то логика, то довольно тяжко в отличии от Qt, где ты можешь нарисовать слой логики на своих объектах а потом прикрутить к ниму слой отображения на моделях и делегатах... Правильно. А это и нафиг не надо. Это уже написано сторонними разработчиками. Равно как и навороченные компоненты типа DevExpress. Всё в одном флаконе не есть good. VCL - даёт базовые возможности и быструю разработку новых компонентов. Среди недостатков VCL я бы выделил 1) Отсувствие кросплатформенности (только через дохлый теперь CLX). 2) Отсувствие Unicode. Лечится установкой других компонентов 3) Немногопоточность. Только через метод Synchronize. |
|
|
Red Devil |
2.7.2008, 20:25
Сообщение
#7
|
Студент Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: 3 |
А и не говорил что в Visual Studio все хорошо. Есть многие места которые можно сделать лучше, но на данный момент другие IDE ей уступают по самым главным компонентам - скорости набора кода и отладки. Управление проектом можно сделать лучше.
Самый главный ресурс - это время, глупо его тратить чтобы вбивать весь код вручную, когда половину может за тебя набить программа. Monkey Studio - я лично так и не понял чем она лучше KDevelop или Eclipse, что она умеет такого что не умеют другие. Ну кроме того что она на Qt написана. Сообщение отредактировал Red Devil - 2.7.2008, 20:38 |
|
|
31512 |
3.7.2008, 4:56
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 0 раз(а) Репутация: 0 |
Т.е. ты согласен со мной о Цитата ...быстрой разработки морды к базе... Мой опыт мне подсказывает несколько иное. Видишь ли MVC, оно конечно, хорошо. Но не всем оно нужно и не всем оно нравится. Я с Delphi работаю уже очень давно. И реализовал в ней кучу проектов, которые ну никак с базой данных не связаны. Из последнего http://rados.ru/support-software.html Это задача промышленного уровня и надёжности. Опять же проекты The Bat, QIP, Nero и многие другие. То, что в ней очень удобно и быстро создаются GUI - это правда. И не обязательно для БД. И другие задачи в ней решаются не менее успешно. Пока дело не касается задач системного уровня(драйвера, например. Но и их можно создавать имея под рукой соответсвующий линковщик) и Linux Delphi вполне себе достойный инструмент. Под Linux Qt лучшее (и единственное) что может быть. А действительно удобную, хорошую и заточенную под неё IDE мне найти так и не удалось. И чтоб отладчик хороший. Вот это реально серьёзная необходимость. |
|
|
Tonal |
3.7.2008, 8:41
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
[злостный оффтоп]
Ну если уж пошло мерение разными органами, то проект, на в котором я работал дольше всего (~10 лет), имел такую статистику: 180424 строк на паскале, 107346 на C++ и 289 на Asm Delphi начиная с 4ки и заканчивая 7кой. Последние ~1.5, 2 года я был тимлидом, и вёл поддержку/разработку 18 из 26 модулей delphi и половины модулей на С++. Щас непомню в скольких регионах было промышленное внедрение, но крутится цифра 30... Ушел оттуда ~6 лет назад. Так что я в курсе возможностей Delphi. А один мой хороший знакомый создал и поддерживал промышленную систему на VB6 там была и графика, и сложные рассчёты, и печатные отчёты и скриптование. Но не было базы данных. [/злостный оффтоп] [VCL vs Qt] Главный недостаток VCL-я в кривой архитектуре и неподдержки MVC - из за этого приходится делать специализацию любых сложных контролов под конкретную задачу. Что и делают библиотеки EhLib, DevExpress, JVCL и много других. В названных тобой прогах используются в основном тоже свои внутренние специализации. Причём специализация для VCL-я - это пакет Delphi, т.е. дополнительный проект, который должен быть установлен в среду. Сравни это с Qt, где простым изменением модели (класс приложения) я могу заставить грид или дерево работать и с базой и с любым моим контейнером, или где для того, чтобы в комбобоксе показывалось дерево требуется классик ~100 строк в приложении. Ну и пакеры в VCL существенно хуже чем в Qt - попробуй например создать форму с изменянмыми размерами, на которой 2 грида и каждый занимает ровно половину не зависимо от размеров (без кода). Ну о мелких ляпах я не новорю - они везде есть да и подзабыл уже. [/VCL vs Qt] Как IDE Delphi тоже не айс (по крайней мере включая 7ку): 1) Нет возможности настроить несколько конфигураций сборки и их переключать - приходится каждый раз, при необходимости пересобрать релиз после дебага открывать настройки проекта и перенастраивать. И так для каждого проекта в "группе проектов". 2) Нет возможности указать зависимости одного проекта от другого - либо пересобирать явно руками, либо все. 3) Нет возможности указать пользовательские шаги сборки (можно написать плагин к delphi но API долго не было описано и меняется с каждой версией). 4) Добавление обработки своего типа исходного файла мучительно (тоже через плагины) 5) Добавление подсветки своего типа исходного файла невозможно (может через плагины?) 6) Интеграция с системами контроля версий не от багланда появилась только недавно (плагин из JVCL) 7) Файл настроек проекта *.dof содержит как общую информацию так и пользовательскую, так что неудобно работать с системами контроля версий. 8 ) Файл *.dof содержит версию модуля, но игнорирует её изменение т.к. она же содержится в *.res файле. Поэтому для того, чтобы поднять вериси модулей нужно это делать руками в каждом проекте (или удалять *.res файлы модулей, а потом тупо жмякать на мессадж о том что *.res будет пересоздан для каждого проекта. 9) Редактор и среда не скриптуется (опять же можно через плагины) 10) Регулярные выражения для поиска в редакторе куцые 11) Фолдинга нет 12) Перехода по парам begin/end или if/then/else нет 13) Автоматического форматирования блока кода нет. 14) Узнать где используется символ невозможно (удобнейшая возможность в Slick-е) 15) Рефакторинга нет 16) Отладчик путается если пытаться ходить внутрь dll-ек или пакетов. 17) Отладчик часто ломается при исключениях. 18) Сломать отладку можно прото посмотрев значения свойства (всплывающая подсказка при наведении). Короче, для своих применений среда вполне сносная. Особенно если доставить/дописать кучу плагинов для удобной работы. Собственно о чём это я? Я о том, что когда выбираешь среду хотелось бы чтобы в ней было как можно меньше этих косяков, не зависимо от языка. Сообщение отредактировал Tonal - 3.7.2008, 8:46 |
|
|
31512 |
3.7.2008, 14:09
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 0 раз(а) Репутация: 0 |
Эта... Я в общем с тобой согласен. Всё ты правильно говоришь, особенно касательно версий после Delphi 7. п. 16 - 18 в Delphi 7 у меня не наблюдались ни разу. После 7 сколько угодно. Мне эти недостатки также прекрасно известны. Рефракторинг есть начиная D2005. И начиная же с D2005 всё остальное очень плохо пахнет. Не могу согласиться, пожалуй, насчёт кривой архитектуры и минуса неподдержки MVC. Повторюсь ещё раз: не всем она нравится и не всем и везде нужна. И рассуждения здесь вот какие. На имеющейся архитектуре можно создавать и поддержку MVC и много всего интересного. VCL даёт базовые возможности(пусть они и не фонтан). Дело в цене и в скорости разработки. Для меня, как руководителя, ещё и в качестве разработки. И печаль не в том, что VCL хуже/лучше или Qt хуже/лучше. Печаль в том, что на Qt сроки разработки тут же распухают втрое и втрое распухает бюджет. То, что раньше на Delphi занимало 1 час, сейчас на Qt, c его С++, день. Цитата Ну и пакеры в VCL существенно хуже чем в Qt - попробуй например создать форму с изменянмыми размерами, на которой 2 грида и каждый занимает ровно половину не зависимо от размеров (без кода). Хм. Признаться для меня это никогда не было проблемой. Но в Qt его Layout меня реально бесят! Чтобы сверстать форму, нужно париться час. Почему я не могу выровнять виджет по левой границе или по правой? Или на всю доступную область? В Qt своих тараканов хватает и они не маленькие. Особенно скорость компиляции... И почему бинарник должен в release весить 17 Мб? Кстати, вот в свете последних изменений, а именно тех, что CodeGear продались EMBARCADERO MVC в Delphi может и появиться. Хотя разговоров я таких покамест не наблюдал, да и давно не следил за этим. А у нас вместо MVC используется PL. Не подошла нам MVC. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 9:01 |