Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для No10
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465

История, нужны идеи без религии

01.10.2013, 22:36. Показов 2257. Ответов 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
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.10.2013, 22:36
Ответы с готовыми решениями:

нужны идеи в реализации кода
В общем если кто подскажет хоть примерно как это должно выглядеть буду очень благодарен. Или просто части кода в качестве примера можно...

Нужны идеи для практики С++
Здравствуйте. Скиньте задачи для практики. Изучил темы: оператор ветвления, тернарный оператор, циклы, массивы (одномерные, двумерные...

Тема для курсовой работы по ООП. Нужны идеи
Ребята,всем привет!Хочу у вас попросить идеи для написания курсовой по ООП для 2 курса.Лучше бы какую-нибудь не особо сложную игру,которую...

20
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
01.10.2013, 22:43
и чё?

Добавлено через 53 секунды
Цитата Сообщение от No10 Посмотреть сообщение
Я потом ради интереса написал программу на C#, и её итоговый вес составил 200 килобайт
про установку фреймворка не надо забывать
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.10.2013, 02:53
Надо понимать, что количество Мирового Зла неизменно.

Любой фреймворк - это как рычаг Архимеда: выигрываем в силе - проигрываем в расcтоянии.

За скорость расплачиваемся памятью (и наоборот), итд. Нужно качество - делаем на API, быстро "слабать" - ищем подходящий фреймворк.

"Пипл хавает" - ну, продолжайте на Qt.

Любой фреймворк - это набор тесно связанных классов или компонент, диктующий стиль разработки, а часто, даже стиль написания кода. Выбор среды - это подписание контракта. Проверяйте, чтобы он не оказался кабальным.

В любом случае, проблемы никуда не исчезают - просто одни заменяются на другие. Если "другие" вам приятнее или не так критичны как "одни" - фреймворк может быть подходящим выбором.
2
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.10.2013, 03:09
Цитата Сообщение от No10 Посмотреть сообщение
для Windows на WinAPI
кхм, ну успехов в написании гуя

Добавлено через 2 минуты
Цитата Сообщение от gazlan Посмотреть сообщение
Нужно качество - делаем на API
дайте я опять посмеюсь про качество в написании на winapi или чистых Xах например
1
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
02.10.2013, 03:17
Цитата Сообщение от No10 Посмотреть сообщение
Да я понимаю что WinAPI не кроссплатформенно, но я думаю что для каждой платформы нужно писать на её собственном GUI, для Windows на WinAPI, для Mac OS на Cocoa, для Linux (GTK+, Qt, FTLK, FOX Toolkit). Таково мо1 мнение.
Писать на чистом API достаточно сложно и долго, лучше всё-таки будет использовать то, что уже не первый день используют.
Фреймворки ускоряют разработку, освобождают от необходимости держать в памяти кучу информации, которая необходима при написании того же самого на API системы.
Конечно, все эти фреймворки все равно сводятся к "общению с системой" и знание API может пригодится для понимания происходящего, но вопрос в том сможете ли Вы написать тот же GUI на системном API лучше, чем программисты, пишущие те самые фреймворки
1
 Аватар для No10
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
02.10.2013, 09:15  [ТС]
Цитата Сообщение от alex_x_x Посмотреть сообщение
кхм, ну успехов в написании гуя

Добавлено через 2 минуты

дайте я опять посмеюсь про качество в написании на winapi или чистых Xах например
Для тебя это религиозны вопрос, я же просил без религии. По мне WinAPI просто великолепие. Qt да хорошо, бесспорно Qt Assistant с примерами не плох, очень даже не плох, но работа с таблицами отвратная, модель предсталения данных Interview или MVC, по сравнению как видит эту концепцию Apple, у них это просто великолепие. Я согласен работа с тойже базой и вывот её в таблицу на ODBC и WinAPI не чуть не легче.(C#, VB.Net, Delphi, Java - это делает это до смешного просто).
Скажи по путктам чем так плох WinAPI? Что не так, да долго, но ведь работает быстро и качественно?
Цитата Сообщение от Croessmah Посмотреть сообщение
Писать на чистом API достаточно сложно и долго, лучше всё-таки будет использовать то, что уже не первый день используют.
Фреймворки ускоряют разработку, освобождают от необходимости держать в памяти кучу информации, которая необходима при написании того же самого на API системы.
Конечно, все эти фреймворки все равно сводятся к "общению с системой" и знание API может пригодится для понимания происходящего, но вопрос в том сможете ли Вы написать тот же GUI на системном API лучше, чем программисты, пишущие те самые фреймворки
Полностью согласен, но мне не нужны сложные списки, свои стили кнопок, свои стили окон, сложные списки на всех языках мира(английского будет вполне достаточно) мне нужно окно, вставленное в него представление OpenGL(ну если грубо говоря) и управление I/O. Все Я не пишу сложные ERP системы с триллионами окон, это делаю только на Java или C#. Я имею ввиду GUI для удобной работы с графикой.

Цитата Сообщение от gazlan Посмотреть сообщение
Надо понимать, что количество Мирового Зла неизменно.

Любой фреймворк - это как рычаг Архимеда: выигрываем в силе - проигрываем в расcтоянии.

За скорость расплачиваемся памятью (и наоборот), итд. Нужно качество - делаем на API, быстро "слабать" - ищем подходящий фреймворк.

"Пипл хавает" - ну, продолжайте на Qt.

Любой фреймворк - это набор тесно связанных классов или компонент, диктующий стиль разработки, а часто, даже стиль написания кода. Выбор среды - это подписание контракта. Проверяйте, чтобы он не оказался кабальным.

В любом случае, проблемы никуда не исчезают - просто одни заменяются на другие. Если "другие" вам приятнее или не так критичны как "одни" - фреймворк может быть подходящим выбором.
Согласен. Недавно читал о FOX Toolkit, как вам? Думаю писать гуи в Linux на нём, под Mac есть великолепие Cocoa.Ну если придётся конечно переносить свою программу, пока ориентируюсь только на Windows.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
02.10.2013, 10:23
Лучший ответ Сообщение было отмечено как решение

Решение

Ругающие Windows демонстрируют комплекс неполноценности.
3
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.10.2013, 17:14
Цитата Сообщение от No10 Посмотреть сообщение
под Mac есть великолепие Cocoa
а теперь сравни Cocoa и WinAPI. где для людей делалось, а где лишь бы отписатся?

Цитата Сообщение от No10 Посмотреть сообщение
Скажи по путктам чем так плох WinAPI?
тебе ли об этом спрашивать, ты же знаком с Cocoa
1
02.10.2013, 18:24

Не по теме:

Цитата Сообщение от No10 Посмотреть сообщение
даже после статический линковки Qt, файлы не стали весить меньше.
Это как понимать-то?

1
 Аватар для No10
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
02.10.2013, 20:03  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
а теперь сравни Cocoa и WinAPI. где для людей делалось, а где лишь бы отписатся?


тебе ли об этом спрашивать, ты же знаком с Cocoa
Cocoa хорош, скорость неплохая, но WinAPI выглядит профессиональней, лучше и глубже чем Cocoa. Cocoa это обёртка, хорошая красивая внутри красивый пластелин, а WinAPI это гаечный ключ. Он более научный, да сложный, но если сложно писать на WinAPI используй C#, ничего в нём сложного нет, за вечер можно программу наваять, но скорости как у WinAPI не видать, даже с OpenTK, хоть как распределяй вычисления, C++ быстрей работает, а +OpenCL, то вообще супер. Но это моё мнение, я то и хочу узнать как люди писавшие проекты на том же Qt, WinAPI или ином GUI, думаю о WinAPI.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
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
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.10.2013, 23:12
Цитата Сообщение от No10 Посмотреть сообщение
Скажи по путктам чем так плох WinAPI? Что не так, да долго, но ведь работает быстро и качественно?
просто это несерьезно. Qt для всех системных операций в винде использует winapi. Для отрисовки использует GDI/DirectDraw
Те с точки зрения вашей т.н. *скорости* проблема в графическом стеке отрисовки виджетов (который в самом низу то же самое api). Но тут еще вопрос кто еще религиозный фанатик - писать ui на winapi - это еще то извращение. Просто потому, что для того стеки технологий и создают, чтоб не работать с самыми низкими уровнями. Оконные приложения можно писать и на asm'e - но зачем?
Microsoft никогда особо и не утверждала, что для UI нужно использовать winapi. У них есть с++ фреймворки MFC (для любителей извращений) и WTL (для любителей хардкорных развлечений)
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
02.10.2013, 23:34
Цитата Сообщение от alex_x_x Посмотреть сообщение
Оконные приложения можно писать и на asm'e - но зачем?
на асме тоже придётся использовать WinAPI. Никакого API ниже WINAPI уже нет.
Не думай, что ты заменишь CreateWindow на какой-то набор инструкций.
На асме дудет точно так же call CreateWindow;
А программа оконного приложения на асме будет выглядеть не сильно страшнее программы на Сях, (если кроме работы с WINAPI в ней ничего нету, конечно, остальное уже из области асм vs Си)
Просто каждой строчке команды на Си будет соответствовать несколько asm комманд.
То есть это рутинное дело не добавит программе ни высокоуровневости, ни низкоуровневости с точки зрения API.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.10.2013, 23:46
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Цитата Сообщение от alex_x_x Посмотреть сообщение
Оконные приложения можно писать и на asm'e - но зачем?
на асме тоже придётся использовать WinAPI. Никакого API ниже WINAPI уже нет.
Не думай, что ты заменишь CreateWindow на какой-то набор инструкций.
На асме дудет точно так же call CreateWindow;
а где тут(в словах alex_x_x) сказано что на асме не будет вызовов апи? дело в отсутсвии абстракций в этом апи, а асм там или си неважно. "это несерьезно"

Цитата Сообщение от tony_pershin Посмотреть сообщение
Касательно вопроса, который Вы подняли. Писать GUI на WinAPIшных функциях конечно можно, но если вам не жалко своего времени. Плюс если требуется кроссплатформенность, то писать разный код для 2-3 систем -- дорогое удовольствие. Да и С++ (как и С) в принципе не тот язык, на котором следует писать GUI, все-таки тут высокопроизводительность кода не так важна
ППКС
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.01.2014, 22:03
Извините за поднятие "старой темы", но интересует вопрос - "Это правда?"... По поводу багов в Qt. Исправляются ли они?... На сколько быстро исправляются?... Т.е. самые базовые моменты, т.е. написание графики\баз данных\конвертация в Excel-Word...
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
20.01.2014, 22:15
Цитата Сообщение от Izual Посмотреть сообщение
"Это правда?"... По поводу багов в Qt.
Конечно, а почему бы нет? Этож миллионы строк кода, как они могут быть без багов?
Цитата Сообщение от Izual Посмотреть сообщение
На сколько быстро исправляются?
Можно посмотреть здесь.
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
20.01.2014, 22:16
Если писать нормальный код, ничего страшного не будет. Не так давно работал через Qt с MySQL, и все там было нормально. А если писать, сам не понимая что, собирая код из кусков с разных с форумов, то конечно все будет тормозить (чаще всего).
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.01.2014, 22:29
Этож миллионы строк кода
Ну я на WinApi программирую с самого начала... Там наверно не меньше =) Однако вроде всё корректно. Хотя не понимаю, почему сказали(да и говорят) что мол WinApi сложный?.. Т.е. это что же он сложнее чем Qt? По моему так WinApi очень логичен и лёгок, т.к. логичен))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2014, 22:29
Помогаю со студенческими работами здесь

идеи, идеи, идеи для начинающих
доброй ночи, уважаемые форумчане. перейдем сразу к делу =) в общем, собираюсь с 2 одногруппниками написать какой-нибудь проект, но вот идей...

Ищу web-программиста или история зарождения идеи
Здравствуйте. Зовут меня Владимир. 25 лет. Живу в Санкт-Петербурге. Ищу партнёра, web-программиста, который знаком с: HTML, CSS,...

Нужны идеи
Пишу обучающе-тестирующую программу по русскому для школьников и студетов. А программе уже реализовано: теоретический материал с...

Нужны идеи по созданию ОС
Говоря заранее нужны именно дельные советы и идеи.Остальных прошу сразу не писать.Идеи касаются ОС.Может Вам чего-то не хватает в...

Нужны идеи и советы
Нужна помощь с определением темы дипломной работы! Хочу разработать какое-нибудь полезное устройство и чтобы оно работало с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru