Re[9]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 20.06.12 20:01
Оценка:
Здравствуйте, landerhigh, Вы писали:

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

Т>>Значит в таком раскладе будет дамп или ещё что либо.
L>
См выделенное.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[5]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 20.06.12 20:01
Оценка:
Здравствуйте, Flat117, Вы писали:

Т>>Драсте! Ты коммерческие либы вообще видел? Там саппорт включён, если что.

Т>>As is относится к тому, что они не отвечают за damage. А баги фиксить их заставлять можно только в путь.
F>И прописано время фиксения бага?
Зависит от контракта.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[5]: почему такая нелюбовь к boost ?
От: Хвост  
Дата: 20.06.12 20:15
Оценка: +1
Здравствуйте, landerhigh, Вы писали:

L>Мне нужно было использовать asio. Она хоть и header only, но требует собранной boost::system. Используя вышеприведенную статью, мне удалось собрать блиотеки буста, не все, конечно, и с ворнингами. Потребовался специальный конфиг и правка одного jam-скрипта.


asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.
People write code, programming languages don't.
Re[3]: почему такая нелюбовь к boost ?
От: michae1  
Дата: 20.06.12 21:34
Оценка:
Здравствуйте, Abyx, Вы писали:

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


_>>когда буст станет стандартом, как stl,


A>часть библиотек буста использована в стантартной библиотеке C++11


Если не ошибаюсь, эти части были неслабо переписаны (те же shared_ptr)
Re[2]: почему такая нелюбовь к boost ?
От: michae1  
Дата: 20.06.12 21:41
Оценка:
Здравствуйте, Трололоша, Вы писали:

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


Т>Не так давно видел создание и чтение XML файлов через boost::property_tree — ИМХО за такое надо нещадно пиз...ть!


а что не так с чтением? в зависимости от задачи, это может быть довольно удобно.
Re[4]: почему такая нелюбовь к boost ?
От: nen777w  
Дата: 20.06.12 21:56
Оценка:
__>Здравствуйте, nen777w, Вы писали:
N>>Хорошо, дл примера кое что что использую я:
N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?
N>>ну да, разве что там где требуется большая скорость обработки данных, например в audio I/O в остальном же boost решает эту задачу проще.
__>callbackи сами по себе очень кривая архитектурная идея. они сейчас нигде почти не используются, кроме как раз типа audio io

Ладно... Пррримеррр-р-рр.
Програмисту Васе нужно написать класс таймера с калбеком.
Вася знает boost и пишет так:
#include "boost/function.hpp"

class timer
{
public:
  template< typename F >
  void subscribe( F fn ) { m_callback = fn; }

private:
  void tick() {
    ....
    m_callback( ++m_tick_number );
  } 

private:
  typedef boost::function<void(unsigned int /*tick*/)> callback_fn_t;
  callback_fn_t m_callback;
  unsigned int m_tick_number;
}


Програмисту Пете понадобилось ещё передать в этот калбек парочку своих параметров.
Програмист Петя не изменяя кода програмиста Васи пишет:

class C {
  void foo( int tick, int arg1, int& arg2 ) {}
private:
  timer m_timer;
};

...
int c;
m_timer.subscribe( boost::bind( &C::foo, this, _1, 10, boost::ref(c)) );


Теперь вопрос, как бы программисту Васе пришлось бы извернуться что бы обеспечить таймер под все возможные сигнатуры каллбеков программиста Пети, не используя boost ?
Re[10]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 21.06.12 00:06
Оценка: +1
Здравствуйте, Трололоша, Вы писали:

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

Т>>>Значит в таком раскладе будет дамп или ещё что либо.
L>>
Т>См выделенное.

Из выделенного у вас будет только распечатанная колода карт и попугай на том конце техподдержки, повторяющий, что они не могут воспроизвести проблему.
Если вы еще с таким не сталкивались, у вас просто все впереди.
Re[3]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 21.06.12 00:12
Оценка:
Здравствуйте, michae1, Вы писали:

Т>>Не так давно видел создание и чтение XML файлов через boost::property_tree — ИМХО за такое надо нещадно пиз...ть!


M>а что не так с чтением? в зависимости от задачи, это может быть довольно удобно.


А что не так с записью? Записать имеющиеся данные в определенном формате все-таки гораздо легче, чем считать их из формата, который не поддерживается полностью, так как сам можешь выбрать необходимое подмножество формата.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 21.06.12 00:16
Оценка:
Здравствуйте, Хвост, Вы писали:

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


L>>Мне нужно было использовать asio. Она хоть и header only, но требует собранной boost::system. Используя вышеприведенную статью, мне удалось собрать блиотеки буста, не все, конечно, и с ворнингами. Потребовался специальный конфиг и правка одного jam-скрипта.


Х>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.


Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом
Re[3]: почему такая нелюбовь к boost ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 21.06.12 00:49
Оценка:
Здравствуйте, nen777w, Вы писали:

N>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?


Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB

N>ну да, разве что там где требуется большая скорость обработки данных, например в audio I/O в остальном же boost решает эту задачу проще.


Ты только не забывай о том, что Visual Studio есть только на одной платформе, с которой работают далеко не все.
Re[2]: почему такая нелюбовь к boost ?
От: SkyDance Земля  
Дата: 21.06.12 00:55
Оценка:
ГВ>За других не скажу, а я как-то нарывался на то, что Boost не надо, мол, использовать, потому что тогда его начнут использовать другие программисты, которые ниже квалификацией. Отсюда руководство захотело, чтобы я кромсанул Boost и чуть ли не переименовал названия классов. Честно сказать, всего букета логических выводов из такой посылки я озвучивать не стал: ну хотят — пусть развлекаются, мне-то что за корысть их отговаривать? Расстались, правда, мы достаточно скоро, но дело было совсем не в Boost.

Ситуация до боли знакомая. Меня так в одной (весьма большой и известной в Москве!) конторе заставили выкусить из Boost'а некоторые библиотеки (smart pointer'ы и что-то еще, не помню точно что), переименовать классы и т.п.. Перед этим были продолжительные беседы на тему "почему велосипеды — это хорошо", тянулось где-то с полгода. Во, я даже на RSDN, помню, заводил тред: этот
Автор: SkyDance
Дата: 19.04.05
.

Но то все таки был 2005 год, boost еще не получил широкого признания и распространения.

PS: помню, после битвы за smart pointers, последовало сражение за exceptions. Не знаю, чем оно закончилось, ибо из компании ушел.
Re[7]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 21.06.12 02:10
Оценка:
Здравствуйте, landerhigh, Вы писали:

Х>>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.


L>Ой! Знаешь, что самое смешное в этой истории? Совсем еще недавно Крис работал за соседним с моим столом, и он нам даже давал презентации по бусту и асио. И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом


Видимо, он предполагал, что это и так все знают...
http://blog.think-async.com/2008/05/boostasio-vs-asio.html
2008 год
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[8]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 21.06.12 02:22
Оценка:
Здравствуйте, jazzer, Вы писали:


J>Видимо, он предполагал, что это и так все знают...

J>http://blog.think-async.com/2008/05/boostasio-vs-asio.html
J>2008 год

Хех. Сколько нам открытий чудных
Re[4]: почему такая нелюбовь к boost ?
От: enji  
Дата: 21.06.12 02:54
Оценка:
Здравствуйте, Handie, Вы писали:

H>Сравним код:


H>Node.js — 8 строк


H>Аналог на Boost ASIO — 137 строк


Ну какой-же это аналог? Ты сравниваешь синхронный код с асинхронным. Синхронный на asio значительно проще.
А во вторых ты сравниваешь высокоуровневую либу и низкоуровневую. Если взять cpp-netlib, то сервер на ней будет таким
Re[4]: почему такая нелюбовь к boost ?
От: enji  
Дата: 21.06.12 03:13
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?


KP>Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB


Не брался еще за gdb вплотную, но мне это предстоит. Насколько я понимаю, с 7.0 есть pretty printers на питоне.

С gdb кстати проблема далеко не только в boost, stl тоже нифига не поддерживается из коробки...

И кстати почему консольный gdb? Есть же всякие эклипсы и ко...
Re[5]: почему такая нелюбовь к boost ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 21.06.12 03:18
Оценка:
Здравствуйте, enji, Вы писали:

E>Не брался еще за gdb вплотную, но мне это предстоит. Насколько я понимаю, с 7.0 есть pretty printers на питоне.


На Маке нету.

E>С gdb кстати проблема далеко не только в boost, stl тоже нифига не поддерживается из коробки...


С STL проблема легко решается.

E>И кстати почему консольный gdb? Есть же всякие эклипсы и ко...


Потому что системный демон. Как показали эксперименты — консольный GDB самый просто путь.
Re[6]: почему такая нелюбовь к boost ?
От: enji  
Дата: 21.06.12 03:29
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


E>>Не брался еще за gdb вплотную, но мне это предстоит. Насколько я понимаю, с 7.0 есть pretty printers на питоне.


KP>На Маке нету.


У меня кросс-gdb для арма, из коробки тоже нету поддержки этой возможности. Однако планирую пересобрать gdb сам и ее включить. Для мака так сделать нельзя?

E>>С gdb кстати проблема далеко не только в boost, stl тоже нифига не поддерживается из коробки...


KP>С STL проблема легко решается.


А как? И в чем проблема также решить ее с бустом?
Re[7]: почему такая нелюбовь к boost ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 21.06.12 03:39
Оценка:
Здравствуйте, enji, Вы писали:

E>У меня кросс-gdb для арма, из коробки тоже нету поддержки этой возможности. Однако планирую пересобрать gdb сам и ее включить. Для мака так сделать нельзя?


Я обдумывал такую возможность, но уперся в то, что GDB на Маке довольно сильно модифицирован Эпплом. Ну а так как глубоко копать эту тему небыло ни времени ни желания, то бросил.

KP>>С STL проблема легко решается.


E>А как? И в чем проблема также решить ее с бустом?


Для GDB я находил набор скриптов для вывода значений стандартных контейнеров. Проблема не в связке BOOST + GDB, а в boost::bind/boost::function + GDB, так как при ее использовании, пройтись по функциям отладчиком становится крайне трудно, а стеки вызовов начинают напоминать шутки про Java.
Буст не нужен
От: ArtemGorikov Австралия жж
Дата: 21.06.12 04:00
Оценка: +2 -4 :)
... Отправлено с помощью КЫВТ.андроид 0.1
Re[5]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 21.06.12 04:02
Оценка:
Здравствуйте, enji, Вы писали:

E>А во вторых ты сравниваешь высокоуровневую либу и низкоуровневую. Если взять cpp-netlib, то сервер на ней будет таким


+1. Причем клиентский код вообще в одну строчку можно записать:
// The client sends an HTTP request to the server, and the output is printed to the console.
cout << body(client().get(client::request("http://www.boost.org/")));
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.