LINUX.ORG.RU
ФорумTalks

Boost что за зверь такой?

 ,


2

7

На самом деле мне всё равно что это за хреновина, которая собирается очень долго и требует много места, в процессе сборки покрайней мере. Как какой-то gcc или firefox.

Удручает, что эту хреновину теперь используют в моих mpd и ncmpcpp, пришлось откатиться до версии 0.18.21 и 0.5.10 соответственно. И это навсегда. Козлячие, загубили своими инновациями самый лучший консольный аудиоплеер!

Перемещено mono из development

★★★★★

Последнее исправление: Spoofing (всего исправлений: 1)

Ответ на: комментарий от redgremlin

Так мы возвращаемся к вопросу того, почему его использование в общем случае — плохой тон. Это на просто какая-то там человеческая либа.

А критерии… Это должен быть конкурентоспособный продукт, который развивается группой людей (более или менее случайных, а не внутренняя разработка специально нанятых). Хотя что-нибудь вроде жирнолиса или либреофиса подойдёт. Или какая-нибудь bitwig studio. Или nginx там.

Мне казалось, я сразу сказал об этом, но, может быть, нет.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

shty ★★★★★
()
Ответ на: комментарий от shty

Между прочим, он в чём-то прав, достаточно допустить маленькую ошибку и часы дебага обеспечены. А хотя что это я, вендовый intellisense в таких случаях должен подсказывать.

wakuwaku ★★★★
()
Ответ на: комментарий от wakuwaku

Так мы возвращаемся к вопросу того, почему его использование в общем случае — плохой тон. Это на просто какая-то там человеческая либа.

Я нихера не понял что и к чему ты сказал.

Это должен быть конкурентоспособный продукт

А если прямых конкурентов у продукта нет?

который развивается группой людей

Насколько большой должна быть эта группа?

Ну вот, например, есть некий проект, достаточно известный, чтобы о нём постились новости на ЛОР, причём сильно больше одного раза.

$ find -iname '*.h' -o -iname '*.cpp' -exec cat '{}' \; | wc -l
119118
$ grep ' aka ' AUTHORS | wc -l
15
120 тысяч строк кода и 15 авторов — это крупный или так себе, мелочёвка?

redgremlin ★★★★★
()
Ответ на: комментарий от wakuwaku

достаточно допустить маленькую ошибку и часы дебага обеспечены

расскажи мне где такого не бывает, при условии, что пишется не helloworld

вендовый intellisense в таких случаях должен подсказывать

я всегда подозревал, что аниме на аватарках не сулит ничего хорошего

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)
Ответ на: комментарий от wakuwaku

Перечень крупных успешных проектов, использующих буст?

http://www.boost.org/users/uses_shrink.html

Adobe Photoshop CS2, SAP NetWeaver и т.д. Надо пацанам сказать, что они студенты.

Это из открытых проектов

http://www.boost.org/users/uses_open.html

vtVitus ★★★★★
()

Это страшный монстр...но без него пока не обойтись.

Видел копирайты адоба там - грепни.

anonymous
()
Ответ на: комментарий от vtVitus

Надо пацанам сказать, что они студенты.

Все правильно было сказано. Вот по mpd теперь можно сказать, что автор неосилятор и студент, т.к. тащить asio в плеер.. ну это тоже самое, что делать «hello world» для html на flash, ибо модно и современно!

Неужели нельзя было обойтись блокирующими потоками? Там же потоков будет не 100500, а от силы 2-3... Эх, mpd r.i.p.

gh0stwizard ★★★★★
()
Ответ на: комментарий от anonymous

Если в 143-й строке закомментировать using namespace qi::labels;, сколько экранов строк ошибок у вас видно?

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

minixml.cpp: In constructor ‘client::mini_xml_grammar<Iterator>::mini_xml_grammar()’:
minixml.cpp:161:28: error: ‘_r1’ was not declared in this scope
                 >   string(_r1)

Очевидно, что _r1 находится в namespace qi::labels. И ничего страшного здесь нет.

rupert ★★★★★
()
Ответ на: комментарий от userd

Почему в fib-obj-heap.cpp i<3 а в boost.cpp i<10?

Потому что плохой тест. Не стоило вообще этим заниматься. Microbenchmarks обычно совсем не годятся для анализа производительности реального кода.

rupert ★★★★★
()
Ответ на: комментарий от anonymous

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

Шаблоны компиляют в либы? Для всех зависящих пакетов? Анонимус уже не торт :(

yoghurt ★★★★★
()
Ответ на: комментарий от emulek

Т.о. Boost позволяет писать на C++ типа как на php (доступно любому дебилу)

Ты сделал мой день! Давно так не ржал.

qrck ★★
()
Ответ на: комментарий от qrck

Т.о. Boost позволяет писать на C++ типа как на php (доступно любому дебилу)

Ты сделал мой день! Давно так не ржал.

ты действительно думаешь, что писать код с boost'ом так сложно и недоступно простым смертным?

emulek
()
Ответ на: комментарий от gh0stwizard

Студент бы и написал на «блокирующих потоках», а потом год бы вычищал рейсы и лечил тормоза. Если бы вместо asio взяли бы libev, то было бы лучше? По-моему, те же яйца вид в профиль, только с дополнительными сложностями на пустом месте для разработчика.

Reset ★★★★★
()
Ответ на: комментарий от anonymous

В либы компиляется имплементация с обвязками для кода конкретных платформ. По сути это уже не шаблоны.

Reset ★★★★★
()
Ответ на: комментарий от emulek

я-то уже читал, твоя очередь.

Попробуй boost-threads использовать в режиме «header only»

qrck ★★
()
Ответ на: комментарий от emulek

Ты только не останавливайся, пиши еще! :)

qrck ★★
()
Ответ на: комментарий от Reset

Судя по главной аналогичная школота ваяет ядро линукса :)

Доо, а в закрытых продуктах такого никогда-никогда не бывает.

tailgunner ★★★★★
()
Ответ на: комментарий от wakuwaku

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

Reset ★★★★★
()
Ответ на: комментарий от emulek

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

qrck ★★
()

Набор библиотек «посмотрите какую клёвую магическую штуку можно сотворить на обычном C++!». Потом интересные части оттуда переходят в стандартную библиотеку.

ranka-lee
()
Ответ на: комментарий от userd

C++ (heap) Время теста, сек = 10.4
C++ (boost)Время теста, сек = 1.27

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

reality_hacker
()
Ответ на: комментарий от wakuwaku

использовать его — очень плохой тон

Училка по информатике так сказала?

urandom
()
Ответ на: комментарий от alix

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

zinfandel ★★
()
Ответ на: комментарий от vtVitus

Спасибо за подтверждение моей теории. Адоба — монополист, может позволить себе и не такое. Ну и кроме того, там в большом количестве работают индусы, со своими особыми стандартами качества. Второе просто монстр, использование буста для монстров может быть оправдано и ничего не меняет (это в случае, если там используется что-то помимо Boost.Regex).

wakuwaku ★★★★
()
Ответ на: комментарий от anonymous

libevent больно монструозный местами. Тогда уж libuv.

ncrmnt ★★★★★
()
Ответ на: комментарий от vtVitus

Adobe Photoshop CS2, SAP NetWeaver и т.д. Надо пацанам сказать, что они студенты.

Судя по тому, как заботливо баги и «фичи» переносятся из версии в версию, там работают очень ответственные студенты.

andreyu ★★★★★
()
Ответ на: комментарий от anatoly

Во всяком случае Бьярн Страуструп сам по семе не из умнейших людей, раз C++ сделал.

Quasar ★★★★★
()
Ответ на: комментарий от zinfandel

Это так. Но зачем человеку «не в теме» собирать mpd, который с вероятностью 98% есть в репозитории?

alix ★★★★
()
Ответ на: комментарий от alix

К примеру он собирает ЛФС/Генту. Ковыряет какой-нибудь rPi. Хочет иметь live версию, что-бы например проверить баг.

zinfandel ★★
()
Ответ на: комментарий от alix

если кто-то не знает, что такое boost, значит, он не знает матчасть

Я правильно понимаю, что под «в теме» мы понимаем знание C/C++ и основных библиотек/инструментов на уровне большем чем "...one of the most highly regarded and expertly designed C++ library projects in the world."

Тогда да, что-бы собрать генту/лфс не надо быть сишником высшего разряда.

zinfandel ★★
()
Ответ на: комментарий от wakuwaku

буст так и используется в основном в студентоподелках

Дооо, студентоподелки, каанешна: авторы LyX, MariaDB(используется для oqgraph, опционально), MongoDB, PyCUDA, OpenImageIO, кучи scientific софта(писанного в том числе и профессорами, да) тут же бросились и стали всё переписывать, потому что достопочтенный wakuwaku считает что Boost - говно.

Не спорю, иногда Boost пихают в приложения ради пары фич(а тянут всю либу, которая жирновата). Ну так это проблема авторов приложения, а не библиотеки.

Вон в тех же LeechCraft-ах Boost довольно органично используется, несмотря на то, что по твоим понятия это как раз и есть «студентоподелка». Но 0xd34df00d вообще упарывается по новым стандартам, так что не удивительно :-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

в основном

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

проблема авторов приложения

так и сказал.

А разве говорил, что Boost - говно? My bad, нужно было сказать, некоторые разработчики слишком вечная студентота в душе и никак не могут совладать с привычками обмазаться чем-нибудь.

wakuwaku ★★★★
()
Ответ на: комментарий от wakuwaku

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

А, ну извини, неправильно тебя понял. С данным тезисом согласен

Pinkbyte ★★★★★
()
Ответ на: комментарий от KRoN73

у вас там php 5.5 быстрее хипхопа )
это нормально? вроде как должно быть наоборот
в версии 5.5 улучшили производительность? виртуальную машину всунули? джит-компиляцию?

rogerw
()
Ответ на: комментарий от rogerw

у вас там php 5.5 быстрее хипхопа )
это нормально? вроде как должно быть наоборот

Там хитрые отношения. На объектах и арифметике тот hhvm (версия в тестах записана) уступал обычному PHP. На конкатенации строк — обходил раза в два, если мне память не изменяет. Но тест работу со строками не проверяет. Хотя можно добавить, сделав вычисления Фибоначчи на строках :)

Новые версии hhvm не тестировал, но не слышал про заметные прибавки.

в версии 5.5 улучшили производительность? виртуальную машину всунули? джит-компиляцию?

Ну, не так, чтобы сильно лучше. В тесте видно, что по сравнению с 5.4 прибавка скорости составила 7%. 5.4 в свою очередь тоже немного быстрее, чем 5.3, но в тесте его нет.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

rogerw
()
Последнее исправление: rogerw (всего исправлений: 1)
Ответ на: комментарий от rogerw

то есть так как основная работа пхп как раз строки клеить то в реальных задачах хипхоп раза в два быстрее?

Ну, мне сложно представить работу из единственно склейки строк :)

Типовая работа PHP — это БД/файлы, объекты/методы, циклы/условия И склейка/арифметика. Т.е. насколько эффективен hhvm надо смотреть по конкретным задачам.

Есть интересные тесты по конкретным задачам:
https://www.techempower.com/benchmarks/

Скажем, JSON-сериализация там получается у чистого PHP 180 тыс. rps, у hhvm — 60.5 тыс. То ли код не оптимальный, то ли х.з.

Создание страницы с множественными сырыми mysql-запросами у PHP — 5.9 тыс, у hhvm — 10.7 тыс.

KRoN73 ★★★★★
()
25 февраля 2015 г.
Ответ на: комментарий от KRoN73

Замерил на своём «объёктном Фибоначчи» hhvm 3.5.1 (до этого тестировал только 2.x) — результат отличный. Скорость стала втрое(!) выше, чем у чистого PHP:
https://github.com/Balancer/benchmarks-fib-obj/wiki/Результат-теста:-i3-2.2ГГц

hhvm 3.5.1 — 33.7 сек
php 5.5 — 158 сек

Похоже, hhvm созрел для сервера :)

KRoN73 ★★★★★
()
Ответ на: комментарий от intelfx

Или мозги отсохли?

давно уже. Я бы его в игнор давно отправил если бы не

Платиновые треды

reprimand ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.