|
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
|
|
История, нужны идеи без религии01.10.2013, 22:36. Показов 2306. Ответов 20
Метки нет (Все метки)
Расскажу свою историю, может я и не прав, но так было у меня. Первое GUI с которого начал, это Qt, все примерчики не плохо пишутся, довольно интересно, с графикой все просто. Но как только нужно что то по сложнее начинаются баги, баги и баги, баги, причём баги когда функция возврашает 932409324 коды ошибок, то код ошибки 2 и ещё море других, не связанных со мной не коим образом, постепенно моя душа стала отдалятся от Qt. Но потом попробовал в ней OpenGL вроде ничего., понравилось, все просто и легко. Но потом пришлось писать заказ... все в неём было на самом деле просто, считать файл(в пару тысяч строк) записать его в БД(MS SQL Server 2008). Со считыванием проблем небыло использовал C'шные функции. Подключить с БД после некоторых мучений получилось, ну записать после небольших страданий тоже. Но когда дело дошло до вывода... Сколько форумов было прочитано, сколько тем, но вывод этих данных в обычную таблицу был адом... появлялись самые невероятные ошибки, просто полный бред... Ошыбку вызывало все что только могло её вызвать. Программу я в итоге написал, правда для того что бы записать в excel я использовал подпрограмму на C#(Заказчик не заметил это). Самое интересное требованием заказчика была программа именно на C++, только на нём, он мне долго рассказывал про Delphi и другой разный бред. Программа получилась невероятно медленная, тянула за собой тонну библиотек, хотя сложного в ней ничего небыло. Вес её составил порядка 60 мегабайт, 98% этого всего это вес dll. Я себя почувствовал убожеским программистом, абсолютно криворуким, даже после статический линковки Qt, файлы не стали весить меньше. Я потом ради интереса написал программу на C#, и её итоговый вес составил 200 килобайт, а работала на порядок быстрей. Потом мне пришлось программировать под iOS на Objective-C, все успешно, быстрые и прекрасные программы, и вот я возврашаюсь на Windows с целью заняться своим любиимым хобби, программирование графики, а именно OpenGL, и вспомнив Qt страдания я удалил его, да. И попробовал чудеса WinAPI, и честно говоря очень понравилось, в основном скорость, довольно великолепная штука, работает хорошо, класснейшая система сообщений у меня прям мозг заработал после расслабухи с Xcode на Mac'е, очень втянулся, написание программы прям как решения какойто математической задачи четко по плану как говорится, да ещё и пространство для ипровизации. Но решил получить я коментарии на тему WinAPI и её работы в купе с OpenGL + OpenAL, но мне так сказать "обосрали" (извиняюсь за выражение) её сног до головы, да бщественное мнение это странно, и я думаю это религиозный вопрос.
Да я понимаю что WinAPI не кроссплатформенно, но я думаю что для каждой платформы нужно писать на её собственном GUI, для Windows на WinAPI, для Mac OS на Cocoa, для Linux (GTK+, Qt, FTLK, FOX Toolkit). Таково мо1 мнение. Извиняюсь за длинное вступление, но все же выскажитесь без религиозных мыслей по поводу Qt Framework, WinAPI, GTK+, и вот слышал недавно про FOX Toolkit.
2
|
|
| 01.10.2013, 22:36 | |
|
Ответы с готовыми решениями:
20
нужны идеи в реализации кода Нужны идеи для практики С++ Тема для курсовой работы по ООП. Нужны идеи |
| 02.10.2013, 02:53 | |
|
Надо понимать, что количество Мирового Зла неизменно.
Любой фреймворк - это как рычаг Архимеда: выигрываем в силе - проигрываем в расcтоянии. За скорость расплачиваемся памятью (и наоборот), итд. Нужно качество - делаем на API, быстро "слабать" - ищем подходящий фреймворк. "Пипл хавает" - ну, продолжайте на Qt. Любой фреймворк - это набор тесно связанных классов или компонент, диктующий стиль разработки, а часто, даже стиль написания кода. Выбор среды - это подписание контракта. Проверяйте, чтобы он не оказался кабальным. В любом случае, проблемы никуда не исчезают - просто одни заменяются на другие. Если "другие" вам приятнее или не так критичны как "одни" - фреймворк может быть подходящим выбором.
2
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||
| 02.10.2013, 03:09 | |||
|
Добавлено через 2 минуты
1
|
|||
|
Неэпический
|
||
| 02.10.2013, 03:17 | ||
|
Фреймворки ускоряют разработку, освобождают от необходимости держать в памяти кучу информации, которая необходима при написании того же самого на API системы. Конечно, все эти фреймворки все равно сводятся к "общению с системой" и знание API может пригодится для понимания происходящего, но вопрос в том сможете ли Вы написать тот же GUI на системном API лучше, чем программисты, пишущие те самые фреймворки
1
|
||
|
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
|
||||
| 02.10.2013, 09:15 [ТС] | ||||
|
Скажи по путктам чем так плох WinAPI? Что не так, да долго, но ведь работает быстро и качественно? Я не пишу сложные ERP системы с триллионами окон, это делаю только на Java или C#. Я имею ввиду GUI для удобной работы с графикой.
0
|
||||
| 02.10.2013, 18:24 | |
|
1
|
|
|
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
|
||
| 02.10.2013, 20:03 [ТС] | ||
|
0
|
||
| 02.10.2013, 20:17 | |
|
если бы был выбор - писал бы сегодня гуи на wpf (конечно, если речь о windows). если "заказчик требует, чтобы программа была на с++", соединил бы их через пайп или еще как (гуи с логикой, написанной на сях). если портируемое писать - жаву бы предпочел.
зы. кстати, дотнетовые проги (хорошо написанные) только стартуют дольше нэйтивкодовых, дальше производительность того же порядка. кстати, старт тоже можно значительно ускорить, если это крайне необходимо.
0
|
|
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
|
| 02.10.2013, 20:31 | |
|
No10, пишешь графику - особого густого гуя тебе не нужно - ну ипиши на винапи - в чем проблема то?
0
|
|
|
17 / 17 / 7
Регистрация: 05.03.2013
Сообщений: 36
|
|
| 02.10.2013, 20:42 | |
|
Странно, года два назад решал аналогичную задачу (вывод таблиц, правда из postgresql) на Qt, таких ужасных эмоций, как у Вас, у меня это не вызывало. Наоборот, у меня остались только приятные впечатления от Qt как от фрэймворка.
Касательно вопроса, который Вы подняли. Писать GUI на WinAPIшных функциях конечно можно, но если вам не жалко своего времени. Плюс если требуется кроссплатформенность, то писать разный код для 2-3 систем -- дорогое удовольствие. Да и С++ (как и С) в принципе не тот язык, на котором следует писать GUI, все-таки тут высокопроизводительность кода не так важна
0
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||
| 02.10.2013, 23:12 | ||
|
Те с точки зрения вашей т.н. *скорости* проблема в графическом стеке отрисовки виджетов (который в самом низу то же самое api). Но тут еще вопрос кто еще религиозный фанатик - писать ui на winapi - это еще то извращение. Просто потому, что для того стеки технологий и создают, чтоб не работать с самыми низкими уровнями. Оконные приложения можно писать и на asm'e - но зачем? Microsoft никогда особо и не утверждала, что для UI нужно использовать winapi. У них есть с++ фреймворки MFC (для любителей извращений) и WTL (для любителей хардкорных развлечений)
0
|
||
|
|
||
| 02.10.2013, 23:34 | ||
|
Не думай, что ты заменишь CreateWindow на какой-то набор инструкций. На асме дудет точно так же call CreateWindow; А программа оконного приложения на асме будет выглядеть не сильно страшнее программы на Сях, (если кроме работы с WINAPI в ней ничего нету, конечно, остальное уже из области асм vs Си) Просто каждой строчке команды на Си будет соответствовать несколько asm комманд. То есть это рутинное дело не добавит программе ни высокоуровневости, ни низкоуровневости с точки зрения API.
0
|
||
|
Каратель
|
|||
| 02.10.2013, 23:46 | |||
|
0
|
|||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
| 20.01.2014, 22:03 | |
|
Извините за поднятие "старой темы", но интересует вопрос - "Это правда?"... По поводу багов в Qt. Исправляются ли они?... На сколько быстро исправляются?... Т.е. самые базовые моменты, т.е. написание графики\баз данных\конвертация в Excel-Word...
0
|
|
|
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
|
|
| 20.01.2014, 22:16 | |
|
Если писать нормальный код, ничего страшного не будет. Не так давно работал через Qt с MySQL, и все там было нормально. А если писать, сам не понимая что, собирая код из кусков с разных с форумов, то конечно все будет тормозить (чаще всего).
0
|
|
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||
| 20.01.2014, 22:29 | ||
0
|
||
| 20.01.2014, 22:29 | |
|
Помогаю со студенческими работами здесь
20
Ищу web-программиста или история зарождения идеи Нужны идеи Нужны идеи по созданию ОС Нужны идеи и советы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|