Здравствуйте, eao197, Вы писали:
E>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Здравствуйте, eao197, Вы писали:
E>>>2. Движение C++ников по созданию новой стандартной библиотеки для C++ (типа нашего ответа Чемберленам JDK и .NET Framework).
E>>>Имхо, вторая составляющая в спорах вокруг Boost-а является доминирующей.
KV>>Кстааати, (раз уж выделенное тут прозвучало), в чем преимущества буста перед дотнетом?
E>Боюсь, этот вопрос сродни вопросу о преимуществе бананов перед помидорами.
Здравствуйте, eao197, Вы писали:
E>>>2. Движение C++ников по созданию новой стандартной библиотеки для C++ (типа нашего ответа Чемберленам JDK и .NET Framework).
E>>>Имхо, вторая составляющая в спорах вокруг Boost-а является доминирующей.
KV>>Кстааати, (раз уж выделенное тут прозвучало), в чем преимущества буста перед дотнетом?
E>Боюсь, этот вопрос сродни вопросу о преимуществе бананов перед помидорами.
Тогда как оно может являться ответом управляемому Чемберлену?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>>Кстааати, (раз уж выделенное тут прозвучало), в чем преимущества буста перед дотнетом?
E>>Боюсь, этот вопрос сродни вопросу о преимуществе бананов перед помидорами.
KV>Тогда как оно может являться ответом управляемому Чемберлену?
Неоспоримое достоинство JDK и .NET Framework для многих разработчиков состоит в том, что они являются большими стандартными библиотеками, в которых есть очень и очень много всего. Стандартная библиотека C++ по сравнению с ними -- это просто бедный родственник. Даже для поддержки многопоточности или hash-таблиц C++никам сейчас нужно использовать сторонние, а значит нестандартные, библиотеки.
Поэтому очень и очень многие C++ники, включая самого Страуструпа, мечтают о тех светлых днях, когда у C++а будет большая и хорошая стандартная библиотека. И Boost-оводы пытаются ее воплотить посредством своего детища.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
H>>Некоторые библиотеки буст — редкостное дерьмо. _>Пример можно? Насколько я понимаю, Вы настолько круты, что одной левой напишете лучше? И это будет работать на десятке компиляторов? Вас как зовут? Саттер или Мейерс?
В этой ветке уже четыре раза прозвучало TRE vs. Boost::Regex
Тут уже говорилось про XML
_>Сложно что ли посмотреть, что там есть?
E>>Аналогично, мне нужны средства для работы с сокетами и разделяемой паматью. Первый вариант на рассмотрении -- Boost? _>Да.
E>>Если нужна криптография -- Boost? _>Нет.
E>>Если нужна работа с XML -- Boost? _>Нет.
E>>Если нужна работа с HTTP -- Boost? _>Пока нет.
E>>Если нужна работа с матрицами -- Boost? _>Да.
E>>Если нужен GUI -- Boost? _>Пока нет.
E>>Если нужна работа с БД -- Boost? _>Нет.
E>>Если нужна сериализация -- опять Boost? _>Да.
Здравствуйте, Mamut, Вы писали:
H>>>Некоторые библиотеки буст — редкостное дерьмо. _>>Пример можно? Насколько я понимаю, Вы настолько круты, что одной левой напишете лучше? И это будет работать на десятке компиляторов? Вас как зовут? Саттер или Мейерс?
M>В этой ветке уже четыре раза прозвучало еvs. Boost::Regex M>Тут уже говорилось про XML
И при чём здесь XML? Товарищ выдвинул утверждение -- "Некоторые библиотеки буст — редкостное дерьмо.". XML в бусте нет. Как несуществующая библиотека может быть дерьмом?
А TRE рядом с творением Мэддока даже рядом не стояло.
H>>>>Некоторые библиотеки буст — редкостное дерьмо. _>>>Пример можно? Насколько я понимаю, Вы настолько круты, что одной левой напишете лучше? И это будет работать на десятке компиляторов? Вас как зовут? Саттер или Мейерс?
M>>В этой ветке уже четыре раза прозвучало еvs. Boost::Regex M>>Тут уже говорилось про XML _>И при чём здесь XML? Товарищ выдвинул утверждение -- "Некоторые библиотеки буст — редкостное дерьмо.". XML в бусте нет. Как несуществующая библиотека может быть дерьмом? _>А TRE рядом с творением Мэддока даже рядом не стояло.
Судя по всему, некоторые считают совсем наоборот. Более того, уже не раз говорилось, что есть альтернативы бусту — и это совсем не обязательно собственноручно написаный велосипед
ЗЫ. Если XML'я в бусте нет, и я уже использую библиотеку, в которой он есть, и которая предоставляет аналоги из буста, зачем мне буст?
Здравствуйте, Mamut, Вы писали:
M>ЗЫ. Если XML'я в бусте нет, и я уже использую библиотеку, в которой он есть, и которая предоставляет аналоги из буста, зачем мне буст?
Вам -- незачем. Можете даже писать на голом компиляторе, используя исключительно функции операционки. Всё остальное -- от лукавого.
M>>ЗЫ. Если XML'я в бусте нет, и я уже использую библиотеку, в которой он есть, и которая предоставляет аналоги из буста, зачем мне буст?
_>Вам -- незачем. Можете даже писать на голом компиляторе, используя исключительно функции операционки. Всё остальное -- от лукавого.
Блин. Почему такие крайности? Почему или обязательно буст или голый компилятор или кривые велосипеды? Почему не тот же loki?
Здравствуйте, Mamut, Вы писали:
M>>>ЗЫ. Если XML'я в бусте нет, и я уже использую библиотеку, в которой он есть, и которая предоставляет аналоги из буста, зачем мне буст?
_>>Вам -- незачем. Можете даже писать на голом компиляторе, используя исключительно функции операционки. Всё остальное -- от лукавого.
M>Блин. Почему такие крайности? Почему или обязательно буст или голый компилятор или кривые велосипеды? Почему не тот же loki?
Дима, ну ты прям как маленький! Другие библиотеки ведь искать нужно, сравнивать, выбирать. А Boost -- вот он, готовенький, все про него знают. В нем все есть, а чего сейчас нет, то когда-нибудь будет, а сейчас оно и не надо. Берешь и пользуешься, короче говоря. Да и еще и осознаешь себя продвинутым C++ником: как же, я же Boost знаю, использую его, помогаю делать новую стандартную библиотеку для C++.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Дима, ну ты прям как маленький! Другие библиотеки ведь искать нужно, сравнивать, выбирать. А Boost -- вот он, готовенький, все про него знают. В нем все есть, а чего сейчас нет, то когда-нибудь будет, а сейчас оно и не надо. Берешь и пользуешься, короче говоря. Да и еще и осознаешь себя продвинутым C++ником: как же, я же Boost знаю, использую его, помогаю делать новую стандартную библиотеку для C++.
Именно так. Порог вхождения в буст может быть намного меньше , как и попрог вхождения в STL , именно потому что буст довольно известная библиотека.
Здравствуйте, Дм.Григорьев, Вы писали:
E>>В нем все есть
ДГ>Выходит, он нарушает single responsibility principle?
Boost -- это не библиотека, а набор библиотек, собранных под одной крышей. Эдакая сборная солянка различных вещей, выполненных, однако, в традициях modern C++ overdesign (шучу, но только от части).
Задача Boost-а в том, чтобы быть полигоном для разработки библиотек, которые могут быть включены в следующие версии стандартных библиотек C++. Первые плоды этой работы уже видны в TR1, который станет частью будущего стандарта C++0x.
Отличие Boost-а от таких библиотек, как ACE, Poco, Qt или wxWidgets состоит в том, что прием новых библиотек в Boost осуществляется на основании откликов пользователей на новые библиотеки. Т.е. некий Вася Пупкин решил, что его библиотека достойна принятия в Boost, оформил ее в соответствии с требованиями Boost-а, сообщил о ней Boost-оводам, те сделали предварительную оценку, потом вывели на публичное обсуждение. Набрала библиотека достаточное количество голосов -- попала в Boost. Насколько она будет нужна конечным пользователям -- это отдельный вопрос и я не знаю, как он учитывается при приеме новых библиотек в Boost.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, minorlogic, Вы писали:
M>Именно так. Порог вхождения в буст может быть намного меньше , как и попрог вхождения в STL , именно потому что буст довольно известная библиотека.
Ну да. Только тут сочетается два принципа, которые приводят меня в бешенство: "Есть только один правильный способ делать вещи" и "Кто не с нами, тот против нас".
Вот например. Boost.Serialization или Boost.Regex не единственные библиотеки подобного рода для C++. Наверняка в какой-то области они для кого-то лучше других, а в какой-то хуже. Тем не менее, они обе находятся в более выигрышном положении по отношении к другим подобным библиотекам. Если пользователи выбирают их только потому, что они есть в Boost-е, а пользователь уже знаком с Boost-ом, то, в конечном счете, пользователи обкрадывают самих себя, лишая себя возможности использования более достойной альтернативы (в каких-то условиях).
В конце-концов, это обычное дело в области продуктов массового потребления (95% потребителей, по заверениям Генри Форда, готовы брать то, что им предлагают, если это достаточного хорошего качества и по приемлимой цене). Но, когда речь идет о инструментарии для разработки ПО нужно понимать, что любая библиотека имеет недостатки. Будь то Boost или STL. И могут быть условия, при которых лучше отказаться от мейнстримовых инструментов в пользу чего-то экзотического. Однако, когда я вижу фанатичное доказывание, что Boost -- наше все, мне кажется, что такого понимания возникнуть не может.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Отличие Boost-а от таких библиотек, как ACE, Poco, Qt или wxWidgets состоит в том, что прием новых библиотек в Boost осуществляется на основании откликов пользователей на новые библиотеки.
Да я в общем-то чиста пошутить пытался. Но за вот эту разжёванную инфу спасибо, подробностей про Васю Пупкина я не знал.
Здравствуйте, eao197, Вы писали:
E>Отличие Boost-а от таких библиотек, как ACE, Poco, Qt или wxWidgets состоит в том, что прием новых библиотек в Boost осуществляется на основании откликов пользователей на новые библиотеки. Т.е. некий Вася Пупкин решил, что его библиотека достойна принятия в Boost, оформил ее в соответствии с требованиями Boost-а, сообщил о ней Boost-оводам, те сделали предварительную оценку, потом вывели на публичное обсуждение. Набрала библиотека достаточное количество голосов -- попала в Boost. Насколько она будет нужна конечным пользователям -- это отдельный вопрос и я не знаю, как он учитывается при приеме новых библиотек в Boost.
Насчёт нужности -- последний ревью это как раз демонстрирует. Библиотека Egg -- вроде неплохо сделано, но! народ как-то не заинтересовался, и несмотря на обсуждение, был получен только один отзыв. Этого недостаточно, всё -- библиотека в пролёте. Я вот скажем не вникал, но мимолётным взгядом тоже не понял, зачем она нужна. Вот со следующим ревью такого я думаю не произойдёт -- FSM, вещь в хозяйстве незаменимая, и сделано гораздо эффективней, чем старый вариант. Если народ явных изъянов не найдёт, то она, я думаю, войдёт в буст. Автор кстати русский.
Здравствуйте, skeptik_, Вы писали:
_>Насчёт нужности -- последний ревью это как раз демонстрирует. Библиотека Egg -- вроде неплохо сделано, но! народ как-то не заинтересовался, и несмотря на обсуждение, был получен только один отзыв. Этого недостаточно, всё -- библиотека в пролёте. Я вот скажем не вникал, но мимолётным взгядом тоже не понял, зачем она нужна. Вот со следующим ревью такого я думаю не произойдёт -- FSM, вещь в хозяйстве незаменимая, и сделано гораздо эффективней, чем старый вариант. Если народ явных изъянов не найдёт, то она, я думаю, войдёт в буст. Автор кстати русский.
Я знаю еще несколько примеров таких же незаменимых вещей, как FSM -- spirit, expressive, wave, foreach, gil, graph, lambda, mpi, mpl, preprocessor, python, serialization, ublas. Т.е. кому-то они явно нужны и кто-то жить без них не может. Но вот мне -- ну ни в Красную Армию. Тем не менее, если мне потребуется boost::multi_index, то придется тянуть к себе весь boost со всей этой байдой.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
M>>Блин. Почему такие крайности? Почему или обязательно буст или голый компилятор или кривые велосипеды? Почему не тот же loki?
E>Дима, ну ты прям как маленький! Другие библиотеки ведь искать нужно, сравнивать, выбирать. А Boost -- вот он, готовенький, все про него знают. В нем все есть, а чего сейчас нет, то когда-нибудь будет, а сейчас оно и не надо. Берешь и пользуешься, короче говоря. Да и еще и осознаешь себя продвинутым C++ником: как же, я же Boost знаю, использую его, помогаю делать новую стандартную библиотеку для C++.
Здравствуйте, eao197, Вы писали:
E>Ну да. Только тут сочетается два принципа, которые приводят меня в бешенство: "Есть только один правильный способ делать вещи" и "Кто не с нами, тот против нас".
Я понимаю про какие ты принцыпы пишешь и откуда ты их взял. Если ты думаешь что используя буст не можешь больше использовать ACE например, это не так.
E>Вот например. Boost.Serialization или Boost.Regex не единственные библиотеки подобного рода для C++. Наверняка в какой-то области они для кого-то лучше других, а в какой-то хуже. Тем не менее, они обе находятся в более выигрышном положении по отношении к другим подобным библиотекам. Если пользователи выбирают их только потому, что они есть в Boost-е, а пользователь уже знаком с Boost-ом, то, в конечном счете, пользователи обкрадывают самих себя, лишая себя возможности использования более достойной альтернативы (в каких-то условиях).
Как пользователей буста я бы первым делом посмотрел , есть ли в нем необходимая функциональность. У меня есть достаточная уверенность , что откровенная лажа в буст не попадет.
Если использование бустовского решения меня не удовлетворяет , я бы поискал другое.
E>В конце-концов, это обычное дело в области продуктов массового потребления (95% потребителей, по заверениям Генри Форда, готовы брать то, что им предлагают, если это достаточного хорошего качества и по приемлимой цене). Но, когда речь идет о инструментарии для разработки ПО нужно понимать, что любая библиотека имеет недостатки. Будь то Boost или STL. И могут быть условия, при которых лучше отказаться от мейнстримовых инструментов в пользу чего-то экзотического. Однако, когда я вижу фанатичное доказывание, что Boost -- наше все, мне кажется, что такого понимания возникнуть не может.
Вроде бы разумный абзац, но например в этой ветке я фанатичное отношение к бусту наблюдаю только у тебя.
Здравствуйте, minorlogic, Вы писали:
E>>Ну да. Только тут сочетается два принципа, которые приводят меня в бешенство: "Есть только один правильный способ делать вещи" и "Кто не с нами, тот против нас".
M>Я понимаю про какие ты принцыпы пишешь и откуда ты их взял.
"Есть только один правильный способ делать вещи" появился из:
— фактов того, что в Boost-е реализуют по своему функциональность, уже существующую в других библиотеках. Например, asio и interprocess;
— утверждений пользователей Boost-а о том, что Boost-овские библиотеки круче других (см. здесь
По поводу нас: думаю многие не используют Буст просто потому, что он им кажется тяжелым (слабенькие спецы). Думаю что чтоб юзать Буст нужен неплохой уровень знания языка и теории (смарт поинтеры , функторы, и т.д. ).
А не используют по контором мне кажется вот по какой причине.
В каждой конторе есть гуру, которому все верят и вот приходит человек горит, эй! давайте boost использовать будем, это ведь так и так и сяк, нам поможет, гуру косо посмотрит, потом одним глазом доку по бусту на искосок просмотрит и скажет... не фигня... тут можно обойтись этим и этим.
Все это наводит на мысль, что у некоторого количества людей складывается стереотип "Boost -- это хорошо и правильно. А вот не Boost -- это слабенькие спецы/старые пердуны и пр."
M>Если ты думаешь что используя буст не можешь больше использовать ACE например, это не так.
Я думаю, что если кто-то взялся за Boost, то ему уже не объяснить, зачем может потребоваться ACE.
M>Вроде бы разумный абзац, но например в этой ветке я фанатичное отношение к бусту наблюдаю только у тебя.
Ну кому-то же нужно повторять "Карфаген должен быть разрушен!". А то очень удобно считать, что Boost это классная и полезная штука. Не обращая внимания на то, что определенное количество разработчиков видят в Boost-е недостатки. И на то, что могут быть другие пути развития C++ных библиотек и систем их распространения.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.