Re[4]: почему такая нелюбовь к boost ?
От: Alexéy Sudachén Чили  
Дата: 21.06.12 04:31
Оценка:
H>Сравним код:
H>Node.js — 8 строк
H>Аналог на Boost ASIO — 137 строк

Ой, жабаскрипт против сисек! Тогда можно и я вас потроллю? Ну, немножечко ))) Всего каких-то 40 строк на С.

#include <tcpip.hc>
#include <prog.hc>

typedef struct SESSION {
  YOYO_TCPSOK *sok;
  byte_t bf[128];
} SESSION;

void SESSION_Destruct(SESSION *sst) {
  __Unrefe(sst->sok);
  __Destruct(sst);
}

int Cbk_Recv(SESSION *sst, int status, int count);
int Cbk_Send(SESSION *sst, int status) {
  if ( !ASIO_ST_SUCCEEDED(status) ) return 0;
  return Tcp_Asio_Recv(sst->sok,sst->bf,sizeof(sst->bf),1,sst,Cbk_Recv);
}

int Cbk_Recv(SESSION *sst, int status, int count) {
  if ( !ASIO_ST_SUCCEEDED(status) ) return 0;
  if ( !strncmp_I(sst->bf,"exit",Yo_Minu(count,4)) ) exit(0);
  return Tcp_Asio_Send(sst->sok,sst->bf,count,sst,Cbk_Send);
}
  
int Cbk_Accept(void *srv, int status, YOYO_TCPSOK *sok) {
  static char echo[] = "Echo server\r\n";
  SESSION *sst;
  if ( !ASIO_ST_SUCCEEDED(status) ) return 0;
  Tcp_Asio_Accept(srv,srv,Cbk_Accept);
  sst = __Object_Dtor(sizeof(SESSION),SESSION_Destruct);
  sst->sok = __Refe(sok);
  return Tcp_Asio_Send(sok,echo,sizeof(echo)-1,sst,Cbk_Send);
}

int main(int argc, char **argv) {
  YOYO_TCPSOK *srv;
  Prog_Init(argc,argv,"p:|port:,h|host:",0);
  srv = Tcp_Listen(TCPSOK_ASYNC,Prog_First_Opt("h","127.0.0.1"),Prog_First_Opt_Int("p",1337),0);
  Tcp_Asio_Accept(srv,srv,Cbk_Accept);
  while( Asio_Perform_IO(10,0) );
}
Re[5]: почему такая нелюбовь к boost ?
От: __kot2  
Дата: 21.06.12 05:49
Оценка: :)
Здравствуйте, nen777w, Вы писали:
N>Ладно... Пррримеррр-р-рр.
N>Програмисту Васе нужно написать класс таймера с калбеком.
вот видите — вы активно работаете с колбеками, и у вас есть причина использовать буст. используйте

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

я утвердаю немного другое
__>>callbackи сами по себе очень кривая архитектурная идея. они сейчас нигде почти не используются, кроме как раз типа audio io
то есть конечно же они используются. я там в школе и универе их активно использовал. просто теперь я понимаю насколько это все хреново выглядит и работает. и в моей жизни колбеки исчезли навсегда
Re[4]: почему такая нелюбовь к boost ?
От: nen777w  
Дата: 21.06.12 07:57
Оценка:
N>>boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?
KP>Как же я хотел оторвать руки человеку, который использовал boost::bind + boost::function в кроссплатформенном проекте и засунуть их ему в выпоняликуда, когда пробирался через все эти boost::bind в консольном GDB

Да ладно, я не утверждаю, т.к. с консольным GDB дело иметь не приходилось, но наверняка там есть что то вроде бинда комбинации клавиш и через сколько вызовов сделать остановку, вот как например в SoftIce. Задача должна быть вполне решаема.
Re[7]: почему такая нелюбовь к boost ?
От: nen777w  
Дата: 21.06.12 08:00
Оценка:
Х>>asio существует и в виде stand-alone проекта, который afaik header-only и никаких дополнительных зависимостей не требует.

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


WOW Круто, а где это Вы работаете если не секрет?
Re[2]: почему такая нелюбовь к boost ?
От: Wolverrum Ниоткуда  
Дата: 21.06.12 09:24
Оценка:
Здравствуйте, java_coder771, Вы писали:

_>потому что они идиоты

_>не помню кто писал "подсадили меня на этот наркотик, теперь приходится посылать лесом все конторы где буст запрещен"(с)

Это уже кристальный снобизм вида: "все кругом — пидорасы, а я — д'Артаньян".
Re[8]: почему такая нелюбовь к boost ?
От: enji  
Дата: 21.06.12 10:03
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Проблема не в связке BOOST + GDB, а в boost::bind/boost::function + GDB, так как при ее использовании, пройтись по функциям отладчиком становится крайне трудно


Так это и в msvc так. Жутко неудобно Но к счастью у меня обычно получается так, что я знаю, куда попаду. И могу точку останова поставить непосредственно в клиентском коде. Редко когда приходится идти по шагам. Кстати, для gdb можно попробовать какой-то макр изобразить, который даст несколько команд входа в функцию. По моему, там всегда это кол-во фиксированным получается.

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

KP>а стеки вызовов начинают напоминать шутки про Java.

Я стек перед использованием немного обрабатываю и выкидываю куски из bind\function\thread\asio — получается более-менее нормально.
Re[3]: почему такая нелюбовь к boost ?
От: wander  
Дата: 21.06.12 10:05
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP> Экзотические это какие? Если есть компилятор С++ совместимый, то почему нет? Под тот же arm всё работает. Да чего уж там под древний как г. мамонта "Эльбрус 90 микро" и то работает. А на сертификацию отправляется исходный код продукта со всеми зависимостями.


Подтверждаю. Работает и на эльбрусе (это SPARC, если кто не знает) и на MIPSах разношерстных (32 и 64 бит) и на ARM. Но, конечно, не все библиотеки буста, мы просто выделили необходимый минимум, который может функционировать на всех наших платформах. Зафиксировали версию. Используем. Полет нормальный 3 года уже.

Мысли вслух по теме:
Насчет багов тут говорили. Да, баги были. Исправлялись самостоятельно. Времени заняло немного. Примерно неделя на 3 года использования.

Насчет велосипедов. Раньше был набор библиотек чисто наших, старых. Некоторые из них дублировали нынешний функционал буста. Перечислю проблемы, которые возникли и привели в конечном итоге к переходу на буст.
1) Не очень хорошая документация. (в условиях сжатых сроков максимум чего можно было ожидать от разработчиков — комментарии в коде)
2) Заточка под конкретные версии компиляторов (после обновления окружения начались проблемы)
3) Скрытые особенности, недоработки и т.п. (Если разработчик конкретной либы один — мог забыть, его могли срочно перевести на другие работы, он мог уволиться т.д. Следовательно никто больше про эти особенности не знает.).
4) Плохая масштабируемость на новые задачи. Приведу пример. Была самописная библиотека для работы с БД. Все ей пользовались. В один прекрасный момент возникла необходимость использовать notify, а библиотека этот функционал не поддерживала. (Да я знаю, что в бусте нет БД — это просто пример)

В целом я не хочу сказать, что буст надо всегда использовать. Просто для нас он стал хорошей альтернативой нашей базовой библиотеке.
avalon 1.0rc3 build 426, zlib 1.2.3
Re[4]: почему такая нелюбовь к boost ?
От: Abyx Россия  
Дата: 21.06.12 10:43
Оценка:
Здравствуйте, Uzumaki Naruto, Вы писали:

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


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


UN>>>Обычно из boost вырезают нужные куски не морочат голову... Засунь boost на тостер — а я поржу х)


A>>boost.mpl или boost.preprocessor?

A>>не забывайте, некоторые вещи не генерят кода вообще.

A>>scoped_ptr<T> размером с T* ?


A>>rtfm.


UN>Ты засунь на uclinux


что, uclinux такой особенный что там для struct foo { T* x; };
sizeof(foo) > sizeof(T*) ?
In Zen We Trust
Re[2]: почему такая нелюбовь к boost ?
От: Abyx Россия  
Дата: 21.06.12 10:46
Оценка:
Здравствуйте, __kot2, Вы писали:

__>нужно знать ответ на простой вопрос: конкретно он зачем нужен? если на него ответа нет, то и делать этого не стоит.


а зачем нужен С++ Вы тоже задаете вопрос? (есть же Си) а стандартная библиотека зачем нужна? (мы же ее сами можем написать)
In Zen We Trust
Re[8]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 21.06.12 11:43
Оценка:
Здравствуйте, nen777w, Вы писали:

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


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


N>WOW Круто, а где это Вы работаете если не секрет?


Ситуация на самом деле еще смешнее — в то время, когда он у нас работал, буст у нас был запрещен
www.blinnov.com
Re[6]: почему такая нелюбовь к boost ?
От: Flat117  
Дата: 21.06.12 12:36
Оценка:
Здравствуйте, Трололоша, Вы писали:

F>>И прописано время фиксения бага?

Т>Зависит от контракта.
Не верю!
Re[4]: почему такая нелюбовь к boost ?
От: Abyx Россия  
Дата: 21.06.12 14:33
Оценка:
Здравствуйте, michae1, Вы писали:

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


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


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


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


M>Если не ошибаюсь, эти части были неслабо переписаны (те же shared_ptr)


понятное дело, что переписаны, хотя бы потому что стандартной библиотеке g++ нет смысла компилиться под vc++
однако спецификация написанная в стандарте как правило подразумевает однозначную реализацию, особенно для простых библиотек
In Zen We Trust
Re[3]: почему такая нелюбовь к boost ?
От: Ulter  
Дата: 21.06.12 16:22
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Написали, и не одну, посмотри на Амазоне.


Искал, не нашел, подскажите пожалуйста.
Re[4]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 21.06.12 16:33
Оценка:
Здравствуйте, Ulter, Вы писали:

J>>Написали, и не одну, посмотри на Амазоне.


U>Искал, не нашел, подскажите пожалуйста.


Не знаю, как ты там чего искал:
http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&amp;field-keywords=boost+c%2B%2B
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[3]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 22.06.12 01:23
Оценка: +1
Здравствуйте, Abyx, Вы писали:

A>а стандартная библиотека зачем нужна? (мы же ее сами можем написать)

Она нужна только как runtime compiler support
А функционал в ней мегаубогий, лучше сразу тем что ОС предоставляет пользоваться.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[11]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 22.06.12 01:23
Оценка:
Здравствуйте, landerhigh, Вы писали:

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

L>Если вы еще с таким не сталкивались, у вас просто все впереди.

Мы у таких индусов видимо ничего не покупаем.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[7]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 22.06.12 01:23
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>И при этом даже не раскололся, что у него же есть версия асио, свободная от буста. Партизан, одним словом

Надо же поржать было как все парятся а ему хорошо.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[7]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 22.06.12 01:23
Оценка:
Здравствуйте, Flat117, Вы писали:

F>>>И прописано время фиксения бага?

Т>>Зависит от контракта.
F>Не верю!

Ну или прописано в нём гарантируемое время реакции или нет
Я ж не могу тебе за все саппорт контракты ответить.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[12]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 22.06.12 03:05
Оценка:
Здравствуйте, Трололоша, Вы писали:

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

L>>Если вы еще с таким не сталкивались, у вас просто все впереди.

Т>Мы у таких индусов видимо ничего не покупаем.




Вам просто их не показывают.
www.blinnov.com
Re[5]: почему такая нелюбовь к boost ?
От: Ulter  
Дата: 22.06.12 11:18
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Не знаю, как ты там чего искал:

J>http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&amp;field-keywords=boost+c%2B%2B

А, я понял.
Я имел ввиду что у нас не издавались.
Покупать книжки по 1.5 — 2 тыр на амазоне далеко не все могут себе позволить...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.