Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost vs Qt, НЕ holywar 
V
    Опции темы
borisbn
Дата 16.9.2011, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Всем добрый QDateTime::currentDateTime().toString() smile
Сразу хочу сказать: это - НЕ holywar
Я хочу выяснить только функциональные различия библиотек. Какие подсистемы/классы/функции есть в одной и нет в другой. И всё.
Высказывания типа "в Qt есть XML, в boost нет" или "в boost есть статические regex'ы (spirit), в Qt - нет" - принимаются.
Высказывания типа "Qt весит 20 МБ, boost тупо прикомпиливается к exe-шнику" или "как можно сравнивать шаблоны и метаинформацию" - не принимаются.
Просьба к модераторам удалять высказывания, не относящиеся к сравнению функционала, а также любую попытку холивора.

Спасибо.

P.S. Про наличие в Qt (и отсутствие в boost) GUI и БД можно не писать. Знаю. smile

Это сообщение отредактировал(а) borisbn - 16.9.2011, 09:59


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Alca
Дата 16.9.2011, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50





--------------------
PM WWW ICQ Skype Jabber   Вверх
borisbn
Дата 16.9.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Alca, спасибо, но кроме того, что в boost есть boost::bind и какие-то graph'ы (что такое - не понял) в документе больше ничего нет.
Да и странный он (документ) какой-то.
В начале говорится про boost
Цитата

Pushes C++ to its limits
...
More powerful than you might think...

а в конце
Цитата

But also keep in mind:
● Prefer equivalent Qt classes

smile 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Alca
Дата 16.9.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Цитата

Prefer equivalent Qt classes

может кютешники ваяли эту доку   smile 


--------------------
PM WWW ICQ Skype Jabber   Вверх
A5uKa
Дата 16.9.2011, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



Qt->KDE

Добавлено через 41 секунду
(C.O. Mode off)
PM   Вверх
borisbn
Дата 16.9.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



A5uKa, крткст сстр тлнт ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
alexSl
Дата 16.9.2011, 14:57 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


проходил мимо



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 22.2.2008

Репутация: нет
Всего: нет



В Qt отлично интегрирована интернационализация.  smile 
За бустом этого не замечено smile 
PM MAIL   Вверх
W4FhLF
Дата 16.9.2011, 17:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



В бусте есть очень гибкая и довольно развитая сериализация boost:serialization с поддержкой всех стандартных типов (STL в том числе). 
Сетевому функционалу Qt далеко до boost::asio. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
maydjin
Дата 16.9.2011, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



Цитата(W4FhLF @  16.9.2011,  17:08 Найти цитируемый пост)
В бусте есть очень гибкая и довольно развитая сериализация boost:serialization с поддержкой всех стандартных типов (STL в том числе). Сетевому функционалу Qt далеко до boost::asio. 

С 1 согласен, а насчет второго в Qt больше высокоуровневых возможностей, в boost низкоуровневых, например Qt сокет может работать через прокси без какого либо дополнительного кода, кроме указания адресса и порта прокси(хотя мб я просто в свое время не нашел такой возможности в boost).

От себя добавлю, в Qt множество удобных мини фреймворков, позволяющих быстро реализовать распостранненый функционал, например UndoRedo или виртуальную файловую систему.

А вообще , на мой взгляд, сравнивать Qt и boost не совсем правильно, т.к. Qt позиционируеться как фреймворк а boost как библиотека, точнее насколько я знаю набор библиотек.
По поводу последнего прошу заметить это just imho.

PM MAIL   Вверх
bsa
Дата 17.9.2011, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(W4FhLF @  16.9.2011,  17:08 Найти цитируемый пост)
В бусте есть очень гибкая и довольно развитая сериализация boost:serialization с поддержкой всех стандартных типов (STL в том числе). 

В Qt тоже есть сериализация. Правда, не такая гибкая... И только бинарная - QDataStream.
PM   Вверх
borisbn
Дата 17.9.2011, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Похоже нужно было сделать это сразу, но лучше поздно, чем никогда....
Поясню, зачем создал тему: я сейчас в своих проектах использую Qt, а boost - нет.
Так вот, хотелось узнать, что я приобрету, если буду использовать также и boost. И наоборот, uде я буду велосипедировать, что я буду делать "ручками", если не буду использовать boost. В общем, меня интересует функционал boost'а, которого нет ни под каким видом в Qt.
Спасибо всем отписавшимся. Жду продолжения smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 17.9.2011, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



borisbn, ну смотри. Есть список библиотек, входящих в boost. Открываешь и смотришь.
В принципе, при работе с Qt нет необходимости в большинстве функционала из boost. Более того, некоторые вещи просто конфликтуют (boost::signals).
Хотя, boost::spirit вещь очень полезная в определенных случаях. Да и boost::serialization очень полезна, когда необходимо работать с текстовыми форматами (бинарные аппаратно-зависимы).
PM   Вверх
borisbn
Дата 17.9.2011, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(bsa @  17.9.2011,  10:12 Найти цитируемый пост)
Есть список библиотек, входящих в boost. Открываешь и смотришь.

Именно так и поступил перед тем, как создавать тему. Почувствовал себя советским гражданином 70-х годов, случайно попавшим за границей в супермаркет. Захотелось выяснить, что из всего этого стОит пробовать, а что и у нас не хуже.
Вот вы с W4FhLF сказали про serialization, asio и spirit - обязательно посмотрю. Спасибо. Something else ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 17.9.2011, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



ASIO довольно низкоуровневая библиотека на мой взгляд. При наличии некоторого опыта работы с ней использовать ее становится довольно легко. Но, на мой взгляд, уж очень много кода писать надо. С другой стороны, у тебя есть возможность разруливать почти все ситуации.
PM   Вверх
mabrarov
Дата 19.9.2011, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 1
Всего: 9



Цитата(borisbn @ 17.9.2011,  09:14)
Поясню, зачем создал тему: я сейчас в своих проектах использую Qt, а boost - нет.

Сколько использую Qt - всегда с Boost.
Точнее так: сначала беру Standard C++ Library. Не хватает - добавляю Boost. Не хватает - добавляю Qt. На Qt стараюсь выносить только GUI/graphics, configuration, i18n, (иногда) plugin subsystem... эээ все, кроме самой логики (без фанатизма - зачастую стоит и для логики местами использовать Qt). 
Qt и Boost хороши по-своему. Вместе их готовить довольно легко. 
Да, Boost.Asio - низкоуровневая "штучка". На ней делают то, что некоторые до сих пор пишут на plain-old-C. Сравнив с Java, можно сказать так: Boost.Asio ~ Apache MINA (но Asio гораздо лучше), а QtNetwork ~ Apache HTTP Client (ну, в плане HTTP -  реально QtNetwork гораздо шире).


PM MAIL WWW Skype   Вверх
borisbn
Дата 19.9.2011, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



mabrarov, спасибо за развёрнутый ответ, но хотелось бы знать, что, например, Вы используете такого в бусте, чего нет в Qt ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mabrarov
Дата 19.9.2011, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 1
Всего: 9



borisbn, перечислю то, что использую совместно с Qt (а не то, что использую, и чего нет в Qt), начиная с наиболее частого:
  • Utility
  • SmartPtr (shared_ptr, weak_ptr, scoped_ptr, scoped_array, intrusive_ptr), 
  • Bind, 
  • Function, 
  • Array, 
  • DateTime, 
  • Tuple,
  • Boost.Asio,
  • Thread, 
  • System,
  • Integer,
  • MPL,
  • Intrusive, 
  • MultiIndex, 
  • Operators.
Что-то из этого списка можно было бы заменить аналогом из std:: но... MSVC 9 еще актуален, поэтому выбираю кросс-решение.
PM MAIL WWW Skype   Вверх
borisbn
Дата 19.9.2011, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



mabrarov, спасибо. Плюсанул.
/me ушёл курить указанные мануалы.
Пока информации столько, что тему, пожалуй, закрываю, но ответы буду почитывать.


mabrarov, ещё раз спасибо.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mabrarov
Дата 20.9.2011, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 1
Всего: 9



Цитата(borisbn @ 19.9.2011,  18:00)
Плюсанул.
/me ушёл курить указанные мануалы.
Пока информации столько, что тему, пожалуй, закрываю, но ответы буду почитывать.

Это было просто IMHO smile 
Для меня C++ (к сожалению) почти хобби. Последние 2,5 года работы на Java.
Надеюсь, кто-то из C++-профи что-нибудь напишет/даст критику.

Это сообщение отредактировал(а) mabrarov - 20.9.2011, 10:09
PM MAIL WWW Skype   Вверх
EnergoHokum
Дата 20.9.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: 2
Всего: 6



Профессионалом я себя не назову, но boost-ом пользуюсь очень часто. Вот основное, без чего жить трудно:
    bind -- создавать из функций объекты, привязывать к входным параметрам функций требуемые значения. Header-only.
    CRC -- CRC он и в Африке CRC. Header-only
    date-time -- работа с датами и временем, с временными интервалами. Может потребовать линковки к проекту.
    enable_if -- выбор "как быть дальше" на этапе компиляции, а не в runtime. Header-only.
    filesystem -- работа с файлами, каталогами, путями к ним. Требует линковки к проекту.
    function -- функциональные объекты, созданные bind-ом можно сохранять. Header-only.
    lambda -- создание безымянных функций, с введением C++0x теряет актуальность. Header-only.
    property-tree -- удобно использовать для работы с конфигурационными файлами *.iniXMLJSONINFO. Header-only.
    signals V2 -- реализация механизма сигнал-слот, потокобезопасная, типобезопасная, проверки типов в compile-time. Header-only.
    smart-ptr -- умные указатели. Header-only.
    Spirit -- фреймворк, вкючающий в себя лексический анализатор (Lex), генератор LL-парсеров (Qi), генератор генераторов (Karma). Header-only.
    static_asserts -- предупреждения времени компиляции, очень полезная штука. Header-only.
    system -- обёртки над системозависимыми кодами ошибок. Требует линковки к проекту.
    thread -- потоки, на пару с bind заруливают все прочие реализации (как пример, Qt-шные потоки) в минуса, можно создать поток внутри экземпляра класса, привязанный к произвольной его (класса) функции, с передачей функции этого потока нужного количества входных параметров. Header-only.
    Xpressive -- регулярные выражения. Header-only.
Вот, пожалуй, пока и всё.
PM MAIL ICQ   Вверх
borisbn
Дата 20.9.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



EnergoHokum, спасибо. Я так скурюсь
Цитата(borisbn @  19.9.2011,  18:00 Найти цитируемый пост)
/me ушёл курить указанные мануалы.

 smile 
Голова уже кругом от такого:
Цитата(http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/tutorial.html)

path p;  // compose a path from the command line arguments

for (; argc > 1; --argc, ++argv)
  p /= argv[1];

Я, конечно, понимаю, что там делается, однако... И это - ещё, пожалуй, самое простое...  smile 

А если серьёзно, то спасибо большое. Буду изучать.
Плюсанул (теперь я обязан - как честный человек)

Это сообщение отредактировал(а) borisbn - 20.9.2011, 14:19


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0735 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.