Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QTL or STL? 
V
    Опции темы
Alca
Дата 21.11.2011, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Какую стандартную библтотеку стоит использовать в Qt-ом проекте?
QTL или STL? 


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


pattern`щик
****


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

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



Alca, от тебя-то я точно не ожидал увидеть такого вопроса smile 
PM WWW   Вверх
bsa
Дата 21.11.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



имхо, QTL+STL  smile 
PM   Вверх
newbee
Дата 21.11.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


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

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



Лучше использовать Qt, потому что внутри Qt использует эти контейнеры для хранения данных. Совместимость с std c++ есть, но зачем лишний раз гонять данные из одного представления в другое (логически идентичное!)?


--------------------
You're face to face
With man who sold the world
PM   Вверх
Alca
Дата 21.11.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



boostcoder, спасибо за комплимент   smile

Добавлено через 11 минут и 14 секунд
Цитата

QTL или STL? 

По-мне, так это тоже самое, что и использование STL в билдере.

Это сообщение отредактировал(а) Alca - 21.11.2011, 18:55


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


Эксперт
****


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

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



Цитата

Alca, от тебя-то я точно не ожидал увидеть такого вопроса

хотел узнать, кто как мешает либы (Qt, stl, boost и свои наработки). 
Как-то не хочеться все перемешивать.

Это сообщение отредактировал(а) Alca - 21.11.2011, 19:17


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


Эксперт
****


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

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





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


Эксперт
****


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

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



Использую QString и QStringList вместо std::string и что_то< std::string >, т.к. у них функционал на голову выше.
В остальном - STL, но не потому, что вижу какие-то преимущества, а по-старинке... по-наезженному smile


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


pattern`щик
****


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

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



юзаю boost.string_algo и boost.range. QTL не юзаю ибо blob и уг и не очевиден. QString и QSet самый наглядный тому пример.

Это сообщение отредактировал(а) boostcoder - 22.11.2011, 15:07
PM WWW   Вверх
newbee
Дата 22.11.2011, 15:30 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


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

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



Ну раз тут все хвостами стали меряться, скажу и свое веское слово. Использую (make-sequence 'string) и char*!


--------------------
You're face to face
With man who sold the world
PM   Вверх
bsa
Дата 22.11.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(boostcoder @  22.11.2011,  16:06 Найти цитируемый пост)
QTL не юзаю ибо blob и уг и не очевиден. QString и QSet самый наглядный тому пример.
Частично согласен. Много лишнего там. Но зато код использующий QString получается значительно читабельней и проще, чем использующий стандартные и бустовские алгоритмы.
boost и STL пытаются покрыть все сферы применения. А Qt создана для решения вполне конкретных прикладных задач.
Сравнивать std::string и QString это все равно что сравнивать программу на С и программу на C# - на одном работает быстрее, а на втором удобнее и безопасней...

PM   Вверх
borisbn
Дата 22.11.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(newbee @  22.11.2011,  15:30 Найти цитируемый пост)
Использую (make-sequence 'string) и char*!

со вторым (char*) немножко знаком, а что такое
Цитата(newbee @  22.11.2011,  15:30 Найти цитируемый пост)
make-sequence 'string

не соображу.
как говорит один из персонажей одного из сериалов - чойта ?


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


pattern`щик
****


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

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



Цитата(bsa @  22.11.2011,  15:44 Найти цитируемый пост)
boost и STL пытаются покрыть все сферы применения. А Qt создана для решения вполне конкретных прикладных задач.

Вы все напутали.
boost ничего "покрыть" не пытается, ибо это коллекция библиотек. а вот каждая конкретная библиотека покрывает каждую конкретную область. при том уровень доверия к boost необычайно высок. а так же, boost служит "испытательным полигоном" перед принятием в стандарт.
первое что вспомнил:
Цитата

"...one of the most highly regarded and expertly designed C++ library projects in the world." — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Цитата

"Item 55: Familiarize yourself with Boost." — Scott Meyers, Effective C++, 3rd Ed.

Цитата

"The obvious solution for most programmers is to use a library that provides an elegant and efficient platform independent to needed services. Examples are BOOST..." — Bjarne Stroustrup, Abstraction, libraries, and efficiency in C++


STL же, тоже ничего покрыть не пытается, ибо это СТАНДАРТНАЯ БИБЛИОТЕКА ШАБЛОНОВ! сколько можно уже об одном и том же :facepalm

покрыть все пытается именно Qt.
единственная задача куте на мой взгляд - это гуй. но таже там это уг. ибо мок не дает кодить в привычном стиле.

зы
я вот только одно не могу никак понять.. кутешники таким образом самообманываются, или самоутверждаются?


Это сообщение отредактировал(а) boostcoder - 23.11.2011, 10:48
PM WWW   Вверх
borisbn
Дата 23.11.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(boostcoder @  23.11.2011,  10:39 Найти цитируемый пост)
я вот только одно не могу никак понять.. кутешники таким образом самообманываются, или самоутверждаются?

ни то ни то. делают свою работу. делают хорошо. получают за это деньги. что ещё надо ?


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


pattern`щик
****


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

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



Цитата(borisbn @  23.11.2011,  10:58 Найти цитируемый пост)
делают хорошо

значит все же самообманываются.

PM WWW   Вверх
mes
Дата 23.11.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



boostcoder, если вы о дубликате средств, то Qt дает иные гарантии, которым стандартные средства не удовлетворяют.. 


Это сообщение отредактировал(а) mes - 23.11.2011, 11:25


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


Эксперт
****


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

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



boostcoder, когда я говорил о покрытии, то имел в виду области применения. Стандарту и бусту (как испытательному полигону) нужно покрыть как можно больший спектр приложений, в которых их целесообразно использовать: сервера, прикладное ПО, ОС, компиляторы и пр. А у Qt довольно узкая специализация - прикладное ПО (ПО для взаимодействия с пользователем). Конечно, и на C# и питоне сервера могут писать. Но это лишь исключения.
Цитата(boostcoder @  23.11.2011,  11:39 Найти цитируемый пост)
единственная задача куте на мой взгляд - это гуй. но таже там это уг. ибо мок не дает кодить в привычном стиле.

Конкретней? Нельзя использовать слово "signal"? Или что тебя смущает? Кстати, сейчас в лаборатории тролли веду разработку сигналов/слотов аналогичных бусту...
Цитата(boostcoder @  23.11.2011,  11:39 Найти цитируемый пост)
я вот только одно не могу никак понять.. кутешники таким образом самообманываются, или самоутверждаются?

Я лично использую и то, и другое. Вот только GUI мне удобней делать на Qt, а сервера на boost... Просто я уже не пытаюсь фанатично следовать какой-то идеологии. Да, в QString нет возможности сменить аллокатор памяти, отказаться от COW, потокобезопасности и юникода. В нем куча функций, многие из которых мне лично не нужны и их следовало бы выделить отдельно... Но когда ты делаешь прикладное ПО, то скорость работы (в разумных пределах) не самый главный критерий качества программы (пользователь не заметит разницы в отклике интерфейса между 1 мс и 100 мс).
Буст же он более академически правильный. Чувствуется мощь ума разработчиков. Но чтобы его освоить нужно быть достаточно опытным. А потом, некоторые используемые в нем решения вызывают вопросы. Например, зачем в локализации было делать сразу два варианта исходного текста при использовании множественных форм слов? Т.е. получается разработчик жестко привязывается к английскому языку (или другому, имеющему только две множественные формы). Если же ты хочешь использовать японский в тексте, то придется два раза писать одно и тоже (у них нет множественных форм), а если русский, то кроме двойного написания придется делать еще и перевод, чтобы отработать третью форму... В этом плане, подход троллей мне больше нравится. Ты пишешь в единственной форме, подразумевающей все возможные (tr("%n byte(s)", 0, n)). А в переводе делаешь все по отдельности - просто меньше работы программисту.

Добавлено через 2 минуты и 52 секунды
boostcoder, если не секрет, сколько тебе лет? Просто когда мне было 20-25 я тоже был достаточно фанатично настроен по разным вещам... Сейчас смотрю на все уже более философски.
PM   Вверх
boostcoder
Дата 23.11.2011, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(bsa @  23.11.2011,  11:38 Найти цитируемый пост)
сколько тебе лет?

достаточно, чтоб застать это безобразие еще в версии 3.0.1 и наблюдать за ним по сей день.

Цитата(bsa @  23.11.2011,  11:38 Найти цитируемый пост)
когда мне было 20-25 я тоже был достаточно фанатично настроен по разным вещам... Сейчас смотрю на все уже более философски.

никакого фанатизма. не саброг же.
если вопрос стоИт о том, что использовать для написания кроссплатформенного гуя, то ответ однозначен - Qt. но это не от того что оно удобное/замечательное/перспективное, нет. а от безвыходности.

Цитата(bsa @  23.11.2011,  11:38 Найти цитируемый пост)
Конкретней? Нельзя использовать слово "signal"?

 smile 
первое и основное - то, что нельзя создавать шаблонные классы наследники QObject. а значит нельзя вообще использовать шаблоны при разработке гуя.

пора заканчивать, а то превратиться в жесткий холивар.

Добавлено через 1 минуту и 36 секунд
Цитата(mes @  23.11.2011,  11:24 Найти цитируемый пост)
Qt дает иные гарантии

какие, например?
PM WWW   Вверх
mes
Дата 23.11.2011, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(boostcoder @  23.11.2011,  11:02 Найти цитируемый пост)
. а значит нельзя вообще использовать шаблоны при разработке гуя.

Qt давит на рантайм, со всеми вытекающими последствиями.. 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 23.11.2011, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(mes @  23.11.2011,  12:05 Найти цитируемый пост)
Qt давит на рантайм, со всеми вытекающими последствиями.

вот и я о том же. оно не дает кодить мне в привычной для меня манере.

Цитата(bsa @  23.11.2011,  11:38 Найти цитируемый пост)
на C# и питоне сервера могут писать. Но это лишь исключения.

а вот тут Вы не правы.
про C# не скажу, но пайтоновские сокеты используют IOCP/kqueue/epoll для поллинга. в то время, как куте использует select(), на всех платформах smile  лучше уж я на пайтоне сервер напишу.

Добавлено через 1 минуту и 41 секунду
Цитата(bsa @  23.11.2011,  11:38 Найти цитируемый пост)
Кстати, сейчас в лаборатории тролли веду разработку сигналов/слотов аналогичных бусту.

да. наслышен. хочется посмотреть уже на это. а то по их заявлению, с новыми сигналами можно будет использовать и _настоящие_функциональные_объекты, и лямбды! но что-то не верится..
PM WWW   Вверх
newbee
Дата 23.11.2011, 12:48 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


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

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



Забавно наблюдать сотни ненависти фанатиков к конкретным библиотекам. И идеалогически они неправильные, и писать в своей манере не дают, и вообще блобы проклятые. Индустрии нужны простые инструменты, которые могут понять простые программисты, которых всегда можно заменить другими простыми программистами. Почему в индустрии правят баллом ява с сишарпиком? Потому что это в первую очередь просто! Идти против этого течения быссмысленно, имеет смысл смириться или создавать свое течение!


--------------------
You're face to face
With man who sold the world
PM   Вверх
boostcoder
Дата 23.11.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(newbee @  23.11.2011,  12:48 Найти цитируемый пост)
Почему в индустрии правят баллом ява с сишарпиком?

потому же, почему и я не тусуюсь в ява и сишарп разделе.
PM WWW   Вверх
baldina
Дата 23.11.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(newbee @  23.11.2011,  12:48 Найти цитируемый пост)
ява с сишарпиком
просто? конечно нет, и дело не в этом. а в том что порог вхождения низок. 
это почти тоже самое, что сравнивать простоту win и lin

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


Эксперт
****


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

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



boostcoder, если Qt - это blob (частично даже соглашусь), то твой подход напоминает golden_hammer
Самая правильная там - это последняя фраза.

И почему все делят программирование на "сервера" и "гуй" ?
Ведь есть ещё БД, конкурентное программирование (не знаю, правильно ли назвал, но в куте это - QtConcurrent), работа с вебом и много чего ещё.


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


pattern`щик
****


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

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



Цитата(borisbn @  23.11.2011,  13:03 Найти цитируемый пост)
БД

Цитата(borisbn @  23.11.2011,  13:03 Найти цитируемый пост)
конкурентное программирование

Цитата(borisbn @  23.11.2011,  13:03 Найти цитируемый пост)
работа с вебом

и где здесь место для гуя(т.е. куте)? оО

Это сообщение отредактировал(а) boostcoder - 23.11.2011, 13:18
PM WWW   Вверх
newbee
Дата 23.11.2011, 13:17 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


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

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



Цитата(boostcoder @  23.11.2011,  13:52 Найти цитируемый пост)
потому же, почему и я не тусуюсь в ява и сишарп разделе. 
Ты там не тусуешься, потому что вместо них зазубрил буст (к слову, на мой взгляд, просто чудовищный набор костылей и бесполезных усложнений для С++).

Цитата(baldina @  23.11.2011,  13:58 Найти цитируемый пост)
просто? конечно нет, и дело не в этом. а в том что порог вхождения низок. 
Проще. И войти проще, и работать проще, думать приходится редко. О чем думает обычный явакодер? Правильно, где найти класс, решающий поставленную задачу. И это хорошо, программы пишутся, люди трудоустроены, всем ПРОФИТ. Но некоторые, илита чуть поумней среднего явакодера, излучают лучи ненависти к таким простым вещам, как же они делают это просто, если я могу изхитровыeбстись и сделать вот такенную загогулину, обмазовшись бустом. А еще более сообразительный народец, представителем которого в топике является bsa, просто выбирают под свою задачу оптимальный инструмент из сотношения простота/функциональность. Такие дела.

Это сообщение отредактировал(а) newbee - 23.11.2011, 13:19


--------------------
You're face to face
With man who sold the world
PM   Вверх
boostcoder
Дата 23.11.2011, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(newbee @  23.11.2011,  13:17 Найти цитируемый пост)
(к слову, на мой взгляд, просто чудовищный набор костылей и бесполезных усложнений для С++)

конечно, саттер, александреску, майерс, и еще куча известных и авторитетных личнойстей заблуждаются. и ты с борисом правы.
PM WWW   Вверх
spyswamp
Дата 23.11.2011, 13:31 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А зачем использовать сотни шаблонов в GUI? Это Александреску Головного Мозга какое-то. smile


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
boostcoder
Дата 23.11.2011, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(spyswamp @  23.11.2011,  13:31 Найти цитируемый пост)
сотни шаблонов

ты там даже одного не используешь.

Добавлено через 39 секунд
странно что тема еще не мусорке)
PM WWW   Вверх
borisbn
Дата 23.11.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(boostcoder @  23.11.2011,  13:24 Найти цитируемый пост)
и ты с борисом правы.

Я никогда не говорил, что буст - это Г. Я его использую, правда без фанатизма.

Цитата(boostcoder @  23.11.2011,  13:15 Найти цитируемый пост)
и где здесь место для гуя(т.е. куте)

Я никогда не говорил, что Qt - это исключительно гуй.

Всё, что я перечислил, там реализовано, и реализовано достаточно удобно.


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


Эксперт
****


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

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



Цитата(boostcoder @  23.11.2011,  14:24 Найти цитируемый пост)
конечно, саттер, александреску, майерс, и еще куча известных и авторитетных личнойстей заблуждаются. и ты с борисом правы. 

Все правы. Только у каждого правда своя. Мейерс и Александреску пытаются сделать минималистичные УНИВЕРСАЛЬНЫЕ и надежные инструменты - кирпичики. А Qt делает более узкозаточенные - панели. Из кирпичей собрать можно все что угодно, а вот из панелей жилого здания храм сложно сложить. Но можно. Правда, не очень эффективно. Зато жилой дом будет построен за меньшее время, чем из кирпичей. Тем более, что крышу (GUI) по любому из последних не сделать.
Поэтому, ты можешь приводить кучу списков умных и достойных людей, поддерживающих буст, но ни один не убедит меня писать гуи или пользовательскую программу, работающую с БД исключительно на бусте. В тоже время, никто не убедит меня писать высоконагруженный сервер на Qt.
Qt не содержит ряд функций, которые имеются в бусте и стандарте. И это довольно сильно напрягает, если ставить задачу специально не использовать STL и boost.
PM   Вверх
boostcoder
Дата 23.11.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



банальный пример разделения гуй+логики+автобиндинг сигналов/слотов.
Код

template<typename impl_type, typename bind_map>
struct window: QWidget {
   Q_OBJECT
   window(impl_type& impl, const bind_map& map, QObject* parent=0)
      :QObject(parent)
      ,_map(map)
   { _map.bind_all(impl, *this); }
private:
   bind_map _map;
};

но из этого ничего невозможно.
вместо этого кутешники городят кучу сущностей, полиморфизм, оверхеда, ран-тайм ошибок, и говорят что у них получилось прямое решение smile

Добавлено @ 14:09
bsa, а ведь предложение писать гуй с использованием буст не было.
но вот работать с БД используя куте - это снова кривое решение основанное на _постоянных_кастах_всего_ руками!

Это сообщение отредактировал(а) boostcoder - 23.11.2011, 14:10
PM WWW   Вверх
spyswamp
Дата 23.11.2011, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

основанное на _постоянных_кастах_всего_ руками

Например?


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
borisbn
Дата 23.11.2011, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(spyswamp @  23.11.2011,  15:33 Найти цитируемый пост)
Например?

Код

iParam = record.value( "IPARAM" ).toInt();
i64Param = record.value( "I64PARAM" ).toULongLong();
dateTime = record.value( "TIME_START" ).toDateTime();
rawData = record.value( "SOME_BLOB" ).toByteArray();


Добавлено через 2 минуты и 23 секунды
Интересно, а API каких СУБД это не так ?


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


Бывалый
*


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

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



но ведь в том же SOCI...

Это сообщение отредактировал(а) Sahab - 23.11.2011, 15:51
PM MAIL   Вверх
boostcoder
Дата 23.11.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(borisbn @  23.11.2011,  15:38 Найти цитируемый пост)
а API каких СУБД это не так ? 

акцент был на "руками". специально во избежании подобных вопросов, жирным выделил.

Это сообщение отредактировал(а) boostcoder - 23.11.2011, 16:01
PM WWW   Вверх
spyswamp
Дата 23.11.2011, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

int id = ...;
string name;
int salary;

sql << "select name, salary from persons where id = " << id,
       into(name), into(salary);


? Оно? В чем прикол?


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
boostcoder
Дата 23.11.2011, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



spyswamp, ты, по всей видимости, при работе с БД, извлекаешь все в отдельные переменные? и кортежи в паре с boost.fusion для работы с ними, тебе не знакомы? - тогда вопрос не к тебе.
страшно представить как выглядит твой код при использовании средненькой БД. куча переменных, циклов, проверок, повторений кода во множестве фрагментов smile

Добавлено через 2 минуты и 40 секунд
да и чего это мы к БД скатились? давайте о гуе! покажите пожалуйста как заставить работать мой пример в куте. сам недоежаю.

Это сообщение отредактировал(а) boostcoder - 23.11.2011, 16:06
PM WWW   Вверх
bsa
Дата 23.11.2011, 16:19 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



boostcoder, мы просто не доезжаем, зачем это может быть нужно...
PM   Вверх
boostcoder
Дата 23.11.2011, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(bsa @  23.11.2011,  16:19 Найти цитируемый пост)
зачем это может быть нужно

для чего разделять гуй и реализацию? smile

Добавлено через 4 минуты и 23 секунды
заранее знаю, что мой вопрос так и останется без ответа. зато предложат костылей в духе куте.
в тему больше не ходок.
PM WWW   Вверх
bsa
Дата 23.11.2011, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



кто тебе мешает сделать реализации в виде отдельных классов, имеющих общего предка? Причем, в этом случае ты можешь использовать шаблоны.
PM   Вверх
spyswamp
Дата 23.11.2011, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



boostcoder, ты прав, с БД в Qt я работаю месяца два всего, до этого как-то не приходилось (только если с легаси кодом на java, гибернейты всякие и т.п.). Мне и самому пока страшно, не то что тебе, великому гуру. smile Но я буду благодарен, если ты мне подскажешь правильное направление. Поизучаю.

> куча переменных, циклов, проверок, повторений кода во множестве фрагментов

Для этого, кстати, модели есть. Можно вообще с переменными и циклами дел не иметь. Ну а про повторения кода - это ты уже куда-то не туда полез. 

А по поводу твоего примера: давно уже есть MVC и прочие альтернативы ему.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
mes
Дата 23.11.2011, 20:00 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(boostcoder @  23.11.2011,  11:14 Найти цитируемый пост)
вот и я о том же. оно не дает кодить мне в привычной для меня манере.

мне тоже ни буст, ни qt не дает насладится программированием в той степени что я хочу smile
но это субъективное мнение пользователя,а не объективная критика.. тем более что любимые вами шаблоны в рантайме бесполезны.. 

Цитата(boostcoder @  23.11.2011,  11:02 Найти цитируемый пост)
Qt дает иные гарантии
какие, например? 

если речь до сих пор о контейнерах (которые повторяют стлные) то в частности их бинарная совместимость..


Цитата(boostcoder @  23.11.2011,  12:24 Найти цитируемый пост)
конечно, саттер, александреску, майерс, и еще куча известных и авторитетных личнойстей заблуждаются. 

не красиво приводить группу известных авторитетов для отстаивания своей позиции, когда названные авторитеты не могут между собой общего языка найти smile

Добавлено через 1 минуту и 46 секунд
Цитата(boostcoder @  23.11.2011,  12:57 Найти цитируемый пост)
вместо этого кутешники городят кучу сущностей, полиморфизм, оверхеда, ран-тайм ошибок, и говорят что у них получилось прямое решение

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

Добавлено через 4 минуты и 52 секунды
Цитата(boostcoder @  23.11.2011,  15:21 Найти цитируемый пост)
для чего разделять гуй и реализацию?

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

Добавлено через 5 минут и 54 секунды
Цитата(boostcoder @  23.11.2011,  15:21 Найти цитируемый пост)
заранее знаю, что мой вопрос так и останется без ответа. зато предложат костылей в духе куте.
в тему больше не ходок. 

если все ж зайдете, уточните какой именно вопрос имеете ввиду..

Добавлено через 7 минут и 39 секунд
P.S.  я не выгораживаю Qt.. она написана ужасно.. но альтернативы (из тех что удовлетворили бы boostcoder'a) для той области в которой она применяется, пока нет..

Добавлено через 9 минут и 35 секунд
кстати даже в бусте есть вещи, которые желали бы лучшего.. но как можно сравнивать (как тут правильно назвали) академическую библиотеку и  обычный продукт нацеленный на покрытие определенной области.. 



--------------------
PM MAIL WWW   Вверх
mes
Дата 23.11.2011, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



спор напоминает сравнение китайских палочек для еды и вилок:
 пользование палочками это целое искусство, тольки с помощью их можно насладиться едой, они одобны неприхотливы и требуют лишь ловкости пальцев.. не могу понять для кого придумали эти вилки и как можно этими уродливыми и непоротливыми приборами пользоваться.. и откуда еще берутся заводы их производящее и неучи ими пользующиеся.. 
 smile 


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


Опытный
**


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

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



mes, он в тему больше не ходок. smile Говна и ###кода кинул и слился. Такое опенсорсное поведение. smile


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
newbee
Дата 24.11.2011, 10:29 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


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

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



spyswamp, нехорошо заглаза шушукаться!


--------------------
You're face to face
With man who sold the world
PM   Вверх
spyswamp
Дата 24.11.2011, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



newbee, русские прощаются и не уходят, сам(а) знаешь. smile


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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