Re[2]: Про boost
От: shrecher  
Дата: 01.08.08 12:58
Оценка: :)
Здравствуйте, oncer, Вы писали:

O>По поводу нас: думаю многие не используют Буст просто потому, что он им кажется тяжелым (слабенькие спецы).


Я слышал что в Японии не рекомендуют использовать классы, т.к. они усложняют код.
Re[4]: Про boost
От: Handie  
Дата: 01.08.08 13:13
Оценка: +1 -1
sc>Буст — это набор библиотек. И никто не заставляет использовать все. Я использую только те, которые нужны. И помогает мне в этом утилитка bcp. Она умеет "выгрызать" только необходимые библиотечки.
sc>Теперь меняем стереотипы
sc>Universal Superlibrary -> Bundle of simple and sufficient libraries

Простые либы и Boost — это две большие разницы. Некоторые либы в бусте — просто монстры по сложности

sc>All Things to All Men -> Take only what you need


Возьми одну либу — подключи двадцать либ от которых она зависит.
Re[2]: Про boost
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.08.08 13:15
Оценка: 17 (5) +5 -4 :)
Здравствуйте, nen777w, Вы писали:

N>Я его использую и очень активно, в своих собственных проектах, потому как эта вещица!!... ну вы знаете


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

Почему люди считают нужным заявлять "Я использую Boost!", тогда как заявлений "Я использую ACE!" или "Я использую Poco!" не видать? Или использование Boost это как обряд инициации -- все, мол, не девственник я уже, но мужик?



N>В каждой конторе есть гуру, которому все верят и вот приходит человек горит, эй! давайте boost использовать будем, это ведь так и так и сяк, нам поможет, гуру косо посмотрит, потом одним глазом доку по бусту на искосок просмотрит и скажет... не фигня... тут можно обойтись этим и этим.


Да все еще проще -- гуру, особенно старые, которые начинали двадцать-пятнадцать лет назад, они же C++а-то нормального и не видели. То шаблонов там не было, то исключений, то были но кривые, то компиляторы глючные, то C++ники к ним в команду попадались такие, что проще пристрелить было, чем руки вправить. Багов им пришлось выловить множество из-за "красивого" кода, поэтому понятие прекрасного у них извращенное. Вот и остались они все такие неграмотные-неграмотные, зашоренные-зашоренные. Да еще все высокомерные, мол че вы, молодая милюзга, со своим boost-ом причапилися? Мы без него на перфокартах дырдочки пробивали и сейчас обойдемся.

Мне кажется, что такая точка зрения гораздо приятнее для любителей буста, чем доводы, что Boost -- это:
— охринительного размера архив;
— что библиотеки в нем все слеплены вместе. И если нужна одна-единственная библиотека, то нужно вручную вырезать ее из Boost-а через scp (и делать это потом регулярно);
— что в дебрях Boost-а полно шаблонов и #if-ов (для преодоления кривости компиляторов) и что нужно иметь большой опыт в C++, чтобы в случае необходимости забраться туда и понять, падает ли программа из-за Boost-а или из-за чего-то еще;
— что кроме Boost-а есть другие библиотеки, как общего назначения, так и специализированные. И как следствие, для некоторых вещей из Boost-а можно найти очень достойную альтернативу, которая и меньше, и проще, и обновляется быстрее (например, boost vs pcre для регулярных выражений);
— что часть вещей Boost-а, которые широко используются (например, shared_ptr) уже есть в других библиотеках (например, аналоги shared_ptr есть ACE, в Loki, в Poco). Поэтому, если в проекте уже используется другая большая библиотека (ACE или Poco), то не так уж хочется тянуть в него еще одну еще большую из-за пары рюшечек;
— что в Boost-е многого нет. Например, средства работы с XML. Тогда как в других фреймворках (Poco, Qt) есть.

N>Вот и нет продвижения для такой классной либы.


И поэтому целью жизни должна стать ее популяризация


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Про boost
От: Handie  
Дата: 01.08.08 13:21
Оценка: 1 (1) +1
N>Я его использую и очень активно, в своих собственных проектах, потому как эта вещица!!... ну вы знаете

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

N>А не используют по контором мне кажется вот по какой причине.

N>В каждой конторе есть гуру, которому все верят и вот приходит человек горит, эй! давайте boost использовать будем, это ведь так и так и сяк, нам поможет, гуру косо посмотрит, потом одним глазом доку по бусту на искосок просмотрит и скажет... не фигня... тут можно обойтись этим и этим.

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

Я не против Boost, я против его бездумного использования.
Re[3]: Про boost
От: Handie  
Дата: 01.08.08 13:27
Оценка: +2
Точно и образно подмечено.
У некоторых — прямо таки поклонение Boost.
Прям объект религиозного культа.

И грамотно сформулированы за и против, очень убедительно и лаконично
Re[2]: Про boost
От: carpenter Голландия  
Дата: 01.08.08 13:29
Оценка: :)
Здравствуйте, nen777w, Вы писали:


N>Я его использую и очень активно, в своих собственных проектах, потому как эта вещица!!... ну вы знаете

N> Вот и нет продвижения для такой классной либы.

Только вот без фанатизма пожалуйста
Весь мир — Кремль, а люди в нем — агенты
Re[5]: Про boost
От: sc Россия  
Дата: 01.08.08 13:36
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, sc, Вы писали:


sc>>Теперь меняем стереотипы

sc>>Universal Superlibrary -> Bundle of simple and sufficient libraries

E>Это какая библиотека там simple?


Ну может реализация там и не простая, но использование большинства бустовских библиотек достаточно простое и удобное.
Re[4]: Про boost
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.08.08 13:38
Оценка:
Здравствуйте, Handie, Вы писали:

H>И грамотно сформулированы за и против, очень убедительно и лаконично


Так блин, я же на boost смотрю года с 2002-го, если не с 2001. Несколько раз раньше мы всерьез обсуждали вопрос использования boost-а у себя, даже Boost.UnitTest использовали где-то в 2004-2005 гг. Вначале останавливало неважное качество документации и отсутствие на платформах, которые тогда нам нужны были. А потом как-то привыкли к другим фреймворками/библиотекам и надобности особой в Boost-е просто не возникает.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Про boost
От: sc Россия  
Дата: 01.08.08 13:45
Оценка:
Здравствуйте, Handie, Вы писали:

sc>>Буст — это набор библиотек. И никто не заставляет использовать все. Я использую только те, которые нужны. И помогает мне в этом утилитка bcp. Она умеет "выгрызать" только необходимые библиотечки.

sc>>Теперь меняем стереотипы
sc>>Universal Superlibrary -> Bundle of simple and sufficient libraries

H>Простые либы и Boost — это две большие разницы. Некоторые либы в бусте — просто монстры по сложности

Это они внутри, а снаружи белые и пушистые Никто ведь не заставляет лезть внутрь. По аналогии с автомобилем. Раньше они были простые. Не едет, открыл капот, поковырялся и поехал. Сейчас только звонок в автосервис и на эвакуатор. Хрен там внутри разберешься. И тем не менее все предпочитают современные авто, а не москвич 412.

sc>>All Things to All Men -> Take only what you need


H>Возьми одну либу — подключи двадцать либ от которых она зависит.

Ну и ладно. Взял я, например, смарт-пойнтеры и байнды, для начала, вытащил bcp-шкой в отдельный каталог и юзаю их на здоровье. И мне все равно, сколько там еще подцепилось, 10 или 20 хедеров.
Ну в принципе любое мнение имеет право на существование, и если для кого-то критично кол-во хэдеров, то тогда буст ему не подходит.
(пытаюсь не дать разгореться пламени флейма и дыма оффтопика )
Re[6]: Про boost
От: Handie  
Дата: 01.08.08 13:46
Оценка: 1 (1) +1
sc>Ну может реализация там и не простая, но использование большинства бустовских библиотек достаточно простое и удобное.

— Сложные либы в виде хедеров увеличивают время компилляции, прекомпал хедеры помогают, но не всегда
— Многие либы тянут вереницу зависимостей, что раздувает репозитарий. Я не считаю нормальным выделять 100 мегабайт кода для проекта который может уместиться в 10 Mb с использованием более простых либ
— Да, в Boost тоже есть баги.
— Обновление либ такого объема — еще та радость
— Далеко не все либы в boost хорошего качества

К примеру — я посмотрел регулярные выражения в boost и взял TRE (TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching). 400kb без внешних зависимостей и куча платформ.

Взяв 3-4 библиотки которые мне нужны я получил все что мне надо
Re[2]: Про boost
От: Vzhyk  
Дата: 01.08.08 15:56
Оценка:
nen777w пишет:
>
> А не используют по контором мне кажется вот по какой причине.
> В каждой конторе есть гуру, которому все верят и вот приходит человек
> горит, эй! давайте boost использовать будем, это ведь так и так и сяк,
> нам поможет, гуру косо посмотрит, потом одним глазом доку по бусту на
> искосок просмотрит и скажет... не фигня... тут можно обойтись этим и этим.
А бывает и наоборот.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Про boost
От: Vzhyk  
Дата: 01.08.08 16:07
Оценка: 1 (1) +3
sc пишет:
>
>
> Ну может реализация там и не простая, но использование большинства
> бустовских библиотек достаточно простое и удобное.

Да што ты оправдываешься. Какой русский (програмер) не любит разработать
собственный велосипед с квадратными колесами.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Про boost
От: skeptik_  
Дата: 01.08.08 16:40
Оценка:
Здравствуйте, eao197, Вы писали:

E>- охринительного размера архив;

E>- что библиотеки в нем все слеплены вместе. И если нужна одна-единственная библиотека, то нужно вручную вырезать ее из Boost-а через scp (и делать это потом регулярно);

Почему это вас так волнует? Я рассматриваю буст как обязательную часть оснащения машины С++-разработчика, и при нынешних размерах жесткого диска и толщины каналов в интернет -- в чём тут вообще проблема? Вы же поди не плачете из-за того, что студия занимает на диске 2-3 гига?
Re[4]: Про boost
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.08.08 18:30
Оценка:
Здравствуйте, skeptik_, Вы писали:

E>>- охринительного размера архив;

E>>- что библиотеки в нем все слеплены вместе. И если нужна одна-единственная библиотека, то нужно вручную вырезать ее из Boost-а через scp (и делать это потом регулярно);

_>Почему это вас так волнует? Я рассматриваю буст как обязательную часть оснащения машины С++-разработчика, и при нынешних размерах жесткого диска и толщины каналов в интернет -- в чём тут вообще проблема? Вы же поди не плачете из-за того, что студия занимает на диске 2-3 гига?


У нас принята система, в которой использованные в проектах 3rd-party библиотеки размещаются в репозитории. Это дает возможность извлечь конкретную версию конкретного проекта с теми версиями сторонних библиотек, которые использовались на момент фиксации версии. А когда делаешь checkout какого-нибудь проекта, а он затем начинает тянуть за собой десятки мегабайт архивов, которые затем еще и долго и мучительно компилируются, то начинаешь ценить минимализм зависимостей.

Впрочем, если иметь на машине всего одну студию, один буст и работать над одним проектом для одной платформы, то всех прелестей можно не оценить. Тут согласен.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Про boost
От: minorlogic Украина  
Дата: 01.08.08 19:15
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Впрочем, если иметь на машине всего одну студию, один буст и работать над одним проектом для одной платформы, то всех прелестей можно не оценить. Тут согласен.


А не получается ли то что вы СВОИ технические проблемы переностите на библиотеку ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Размер boost
От: Roman Odaisky Украина  
Дата: 01.08.08 21:06
Оценка:
Здравствуйте, Handie, Вы писали:

H>Ну например мне он кажется "тяжелым". В прямом смысле. ZIP весит 44 мегабайта, в распакованном виде — больше 100MB.

H>Делать лишний депенденси на 100 мегабайт — это я так понимаю — профессиональное решение? У меня проект со всеми внешними либами лезет в 5-6 мегабайт и буста в нем не будет.

~ :) du -c /usr/lib/libboost_*-gcc41{,-mt}-1_34_1.* | tail -n 1
24382   total

Не топикстартер виноват, что в MS Windows это же занимает 621638 КБ, используйте правильные ОС.

А тем более в архивах:
for pkg in $(apt-cache search libboost | awk '{ print $1; }')
do
    echo "[tr][td]$(apt-cache show $pkg | egrep '^Size:' | head -n 1 | awk '{ print $2; }')[/td][td]${pkg}[/td][/tr]"
done

Размер,
байт
Пакет
46121532libboost-dbg
1932116libboost-dev
9268976libboost-doc
368768libboost-python-dev
199602libboost-python1.34.1
182014libboost-date-time-dev
56790libboost-date-time1.34.1
80496libboost-filesystem-dev
55748libboost-filesystem1.34.1
508518libboost-graph-dev
252322libboost-graph1.34.1
128294libboost-iostreams-dev
45066libboost-iostreams1.34.1
271540libboost-program-options-dev
190290libboost-program-options1.34.1
1062616libboost-regex-dev
550924libboost-regex1.34.1
622362libboost-serialization-dev
415554libboost-serialization1.34.1
87640libboost-signals-dev
69724libboost-signals1.34.1
455970libboost-test-dev
235016libboost-test1.34.1
46036libboost-thread-dev
37000libboost-thread1.34.1
829808libboost-wave-dev
468098libboost-wave1.34.1
Кто здесь самый большой? Boost.Regex. Т. е., поставил в зависимость libboost-regex, менеджеру пакетов клиента придется (о ужас!) загрузить полмегабайта пакета с библиотеками.

В MS Windows, кстати, можно переполовинить библиотеки Boost, заменив копии на симлинки (если они есть в вашей любимой ФС, конечно). Остальной размер, наверное, происходит из-за статической линковки чего-нибудь.
До последнего не верил в пирамиду Лебедева.
Re[3]: Про boost
От: astral_marine  
Дата: 01.08.08 22:23
Оценка: 16 (6) +2 -3 :))) :)))
E>Почему люди считают нужным заявлять "Я использую Boost!", тогда как заявлений "Я использую ACE!" или "Я использую Poco!" не видать? Или использование Boost это как обряд инициации -- все, мол, не девственник я уже, но мужик?

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

E>Мне кажется, что такая точка зрения гораздо приятнее для любителей буста, чем доводы, что Boost -- это:

E>- охринительного размера архив;
У вас все еще диалап? Или Поиск-1? Тогда мы к вам идем
E>- что библиотеки в нем все слеплены вместе. И если нужна одна-единственная библиотека, то нужно вручную вырезать ее из Boost-а через scp (и делать это потом регулярно);
Нафиг надо.
E>- что в дебрях Boost-а полно шаблонов и #if-ов (для преодоления кривости компиляторов) и что нужно иметь большой опыт в C++, чтобы в случае необходимости забраться туда и понять, падает ли программа из-за Boost-а или из-за чего-то еще;
Я легко могу вычленить код для моего компилятора, если вы — нет, то это ваша проблема. К тому же доки никто не отменял.
Более того, в бусте уже пройдены подводные камни, а в ваших велосипедах — нет.
E>- что кроме Boost-а есть другие библиотеки, как общего назначения, так и специализированные. И как следствие, для некоторых вещей из Boost-а можно найти очень достойную альтернативу, которая и меньше, и проще, и обновляется быстрее (например, boost vs pcre для регулярных выражений);
Ну и что? Boost запрещает это использовать?
E>- что часть вещей Boost-а, которые широко используются (например, shared_ptr) уже есть в других библиотеках (например, аналоги shared_ptr есть ACE, в Loki, в Poco). Поэтому, если в проекте уже используется другая большая библиотека (ACE или Poco), то не так уж хочется тянуть в него еще одну еще большую из-за пары рюшечек;
А использовать можно только то, что надо. Boost не требует использовать все классы во всех либах.
E>- что в Boost-е многого нет. Например, средства работы с XML. Тогда как в других фреймворках (Poco, Qt) есть.
Ну так и используйте! Boost вам не мешает.

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

Кстати, CRT и STL — тоже по вашим меркам гигантские библиотеки. Давайте вы их тоже в топку выкините и будете писать прямые инструкции процессору (Привет фанатам ассемблера).

E>У нас принята система, в которой использованные в проектах 3rd-party библиотеки размещаются в репозитории. Это дает возможность извлечь конкретную версию конкретного проекта с теми версиями сторонних библиотек, которые использовались на момент фиксации версии. А когда делаешь checkout какого-нибудь проекта, а он затем начинает тянуть за собой десятки мегабайт архивов, которые затем еще и долго и мучительно компилируются, то начинаешь ценить минимализм зависимостей.


Третьесторонние либы не поддарются версионному контролю. При необходимости есть в интернете репозитории с необходимыми версиями. Для размещения либ достаточно файлового сервера, на котором с исходиниками можно и разместить откомпилированные lib файлы. А превращать хранилище исходных кодов в файловую помойку не вижу смысла. Тогда уже туда надо запихнуть образы тестовых серверов на момент тестирования, базы данных от заказчиков с багами и кучу всякого мусора .
Хранилище нужно для файлов, которые вы изменяете, а не для сторонних либ, которые вы не трогаете. Вот вам хранилище буста: http://svn.boost.org/svn/boost. Используйте его и не изобретайте велосипед.

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

Boost — это почти стандарт. Много библиотек от туда попадут в следующий стандарт С++ и хотите вы этого или нет, но у всех разработчиков будет возможность его использовать в новых компиляторах за пару лет.
Re[2]: Про boost
От: zakima Канада  
Дата: 02.08.08 00:36
Оценка:
Здравствуйте, oncer, Вы писали:

O>По поводу нас: думаю многие не используют Буст просто потому, что он им кажется тяжелым (слабенькие спецы). Думаю что чтоб юзать Буст нужен неплохой уровень знания языка и теории (смарт поинтеры , функторы, и т.д. ).


Многие не используют Буст потому что они понимают, что чтоб юзать Буст нужен очень неплохой уровень знания языки и теории у всех программистов в компании, что очень редко достижимо. Нафиг-нафиг.
Re[3]: Про boost
От: skeptik_  
Дата: 02.08.08 04:31
Оценка:
Здравствуйте, zakima, Вы писали:

Z>Здравствуйте, oncer, Вы писали:


O>>По поводу нас: думаю многие не используют Буст просто потому, что он им кажется тяжелым (слабенькие спецы). Думаю что чтоб юзать Буст нужен неплохой уровень знания языка и теории (смарт поинтеры , функторы, и т.д. ).


Z>Многие не используют Буст потому что они понимают, что чтоб юзать Буст нужен очень неплохой уровень знания языки и теории у всех программистов в компании, что очень редко достижимо. Нафиг-нафиг.

Для чего? Чтобы lexical_cast или shared_ptr заюзать?
Re[4]: Про boost
От: skeptik_  
Дата: 02.08.08 04:34
Оценка:
Здравствуйте, astral_marine, Вы писали:

_>Хранилище нужно для файлов, которые вы изменяете, а не для сторонних либ, которые вы не трогаете. Вот вам хранилище буста: http://svn.boost.org/svn/boost. Используйте его и не изобретайте велосипед.

Именно! А вот здесь http://svn.boost.org/svn/boost/tags/release лежат все версии.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.