Re: почему такая нелюбовь к boost ?
От: Uzumaki Naruto Ниоткуда  
Дата: 20.06.12 06:17
Оценка: -2
Обычно из boost вырезают нужные куски не морочат голову... Засунь boost на тостер — а я поржу х)

Re[2]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 20.06.12 06:36
Оценка:
Здравствуйте, Uzumaki Naruto, Вы писали:

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


В данный момент засовываю его в Андроид. Лезет. Скрипит, но лезет
www.blinnov.com
Re[5]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.12 06:41
Оценка: 5 (3) +1
Здравствуйте, denisko, Вы писали:

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


H>>>>5) Boost страдает переусложнизмом и синдромом читателей книги Александреску. давайте сделаем так, чтобы никто понять не мог чего мы ваще написали. Давайте сдесь забахаем паттерны и побольше

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

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


D>Предложи свой вариант библиотеки. Я если честно слабо представляю, как можно на плюсах написать меньше буковок.


HTTP server:

#include <boost/network/protocol/http/server.hpp>

struct hello_world;
typedef boost::network::http::server<hello_world> server;

struct hello_world {
    void operator() (server::request const &request, server::response &response) {
        std::string ip = source(request);
        response = server::response::stock_reply(
            server::response::ok, std::string("Hello, ") + ip + "!");
    }
};

int main(int argc, char * argv[]) {
    hello_world handler;
    server server_(argv[1], argv[2], handler);
    server_.run();
}
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[2]: почему такая нелюбовь к boost ?
От: nen777w  
Дата: 20.06.12 06:42
Оценка:
Здравствуйте, __kot2, Вы писали:

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

N>>Я вот реально не понимаю, квалификации кадров не хватает что бы почитать документацию, которая кстати довольно хорошая, или просто лень?
__>а какие проблемы решает буст?

__>хорошо, а теперь — есть ли эти проблемы в вашем проекте? никаких? зачем вам тогда буст?


Хорошо, дл примера кое что что использую я:
boost::bind + boost::function — кривые callback с голыми указателями на фнукции, и дополнительными void* аргументами?
ну да, разве что там где требуется большая скорость обработки данных, например в audio I/O в остальном же boost решает эту задачу проще.
boost::preprocessor — ну тут вообще говорить много не нужно, сколько я кода навернул на нём, во общем must have вообще всегда.
boost::serialization — есть конечно специфика, тут от архитектуры проекта зависит. Я на "несподiванки" не нарывался пока. За трекинг указателей вообще жирный +.
boost::algorithm — многа многа многа велосипедов
boost::thread/filesystem — для кросс платформенного программирования то что нужно, был очень приятно удивлен когда это заработало и на iOS
boost::multiindex/bimap — отличная библиотека — must have, ну да, можно обойтись и набором решений из STL, но в этом случае будет так кри-ии-во, крииииво....
boost::date_time — использовал один раз, но простота понравилась — разобрался очень быстро, очень удобно что можно загружать таймзоны из внешнего файла

и многое другое, на этом пока думаю можно остановиться..
Re[3]: почему такая нелюбовь к boost ?
От: nen777w  
Дата: 20.06.12 06:47
Оценка:
UN>>Обычно из boost вырезают нужные куски не морочат голову... Засунь boost на тостер — а я поржу х)
L>В данный момент засовываю его в Андроид. Лезет. Скрипит, но лезет

Опа. Я как раз задумываюсь про портирование на Android, можете рассказать, в двух словах, чего там ждать?
Может статья какая-то есть?
Что значит "Скрипит, но лезет"?
Re[3]: почему такая нелюбовь к boost ?
От: Nikе Россия  
Дата: 20.06.12 08:39
Оценка:
Здравствуйте, nen777w, Вы писали:

N>За трекинг указателей вообще жирный +.


Это та вещь после которой я, фактически, прекратил использовать boost
Нужно разобрать угил.
Re[6]: почему такая нелюбовь к boost ?
От: Handie  
Дата: 20.06.12 08:47
Оценка:
J>HTTP server:

J>
J>#include <boost/network/protocol/http/server.hpp>

J>struct hello_world;
J>typedef boost::network::http::server<hello_world> server;

J>struct hello_world {
J>    void operator() (server::request const &request, server::response &response) {
J>        std::string ip = source(request);
J>        response = server::response::stock_reply(
J>            server::response::ok, std::string("Hello, ") + ip + "!");
J>    }
J>};

J>int main(int argc, char * argv[]) {
J>    hello_world handler;
J>    server server_(argv[1], argv[2], handler);
J>    server_.run();
J>}
J>


Ужосы

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Re[2]: почему такая нелюбовь к boost ?
От: Abyx Россия  
Дата: 20.06.12 08:53
Оценка:
Здравствуйте, mike_rs, Вы писали:

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


часть библиотек буста использована в стантартной библиотеке C++11
In Zen We Trust
Re[2]: почему такая нелюбовь к boost ?
От: Abyx Россия  
Дата: 20.06.12 08:58
Оценка:
Здравствуйте, Uzumaki Naruto, Вы писали:

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


boost.mpl или boost.preprocessor?
не забывайте, некоторые вещи не генерят кода вообще.

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

rtfm.
In Zen We Trust
Re[7]: почему такая нелюбовь к boost ?
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.12 09:18
Оценка:
Здравствуйте, Handie, Вы писали:

H>Ужосы


H>
H>var http = require('http');
H>http.createServer(function (req, res) {
H>  res.writeHead(200, {'Content-Type': 'text/plain'});
H>  res.end('Hello World\n');
H>}).listen(1337, '127.0.0.1');
H>console.log('Server running at http://127.0.0.1:1337/');
H>


Не вижу разницы, за исключением разницы самих языков — в JS не указываются типы, нету функции main и прочая — решение на С++ неизбежно будет более многословным
Да, в С++11 можно будет точно так же лямбды заюзать, как и у тебя в JS, если так уж необходимо все в один вызов утоптать.
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: почему такая нелюбовь к boost ?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.06.12 10:30
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Я вот реально не понимаю, квалификации кадров не хватает что бы почитать документацию, которая кстати довольно хорошая, или просто лень?


За других не скажу, а я как-то нарывался на то, что Boost не надо, мол, использовать, потому что тогда его начнут использовать другие программисты, которые ниже квалификацией. Отсюда руководство захотело, чтобы я кромсанул Boost и чуть ли не переименовал названия классов. Честно сказать, всего букета логических выводов из такой посылки я озвучивать не стал: ну хотят — пусть развлекаются, мне-то что за корысть их отговаривать? Расстались, правда, мы достаточно скоро, но дело было совсем не в Boost.

Для меня с тех пор отношение к Boost служит определённым маркером. Если руководство начинает озвучивать откровенно иррациональные идеи — нужно драть когти. Иррациональность поведения — штука заразная и "выстрелить" может в самый неожиданный момент с самыми разрушительными последствиями, я лучше на это всё издалека посмотрю. Я не пытаюсь сказать, что Boost нужно обязательно тащить в любой проект на C++ во что бы то ни стало, просто надо прислушиваться к аргументации.

Вот, например, такой довод:

N> "Если програмер который писал на boost уйдет в отпуск или уволится этот код будет сложно поддерживать другому програмеру"


...наводит на очень серьёзные подозрения, что в этой компании вменяемым людям нечего делать. По содержанию здесь возражать невозможно, поэтому лучше пройти мимо.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[7]: почему такая нелюбовь к boost ?
От: Трололоша  
Дата: 20.06.12 11:12
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>>>Это "заставлять" работает только если либа поставляется в сырцах.

Т>>Как раз обычно если дают сырцы то %битесь с ними как хотите.
L>Отучаемся говорить за всех (С)
Слово "обычно" там не просто так написано.

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

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

L>>> Чтобы горе-девелоперов можно быть в их собственное говнецо носом ткнуть.

Т>>Вот ещё нехрен делать, искать где именно у них в коде баг. Они получают деньги за то, чтоб у нас всё работало согласно контракту.
L>Пока вы переписываетесь, ваша работа стоит, так сказать.
А то пока мы в коде чужой либы будем ковыряться работа не будет стоять?
Тут в любом случае 2 варианта: правьте сами или пусть правят авторы. В первом случае мы тратим время и ресурсы на то, чтоб найти баг в чужом коде, во втором мы тратим время но ресурсы можем направить на решение других задач, а в коде колупаются авторы.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[4]: почему такая нелюбовь к boost ?
От: Flat117  
Дата: 20.06.12 11:17
Оценка:
Здравствуйте, Трололоша, Вы писали:

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

Т>As is относится к тому, что они не отвечают за damage. А баги фиксить их заставлять можно только в путь.
И прописано время фиксения бага?
Re: почему такая нелюбовь к boost ?
От: java_coder771  
Дата: 20.06.12 11:26
Оценка:
N>Походил тут по собеседованиям, почти везде НЕ используют boost.

потому что они идиоты
не помню кто писал "подсадили меня на этот наркотик, теперь приходится посылать лесом все конторы где буст запрещен"(с)
Re[8]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 20.06.12 11:29
Оценка: +2
Здравствуйте, Трололоша, Вы писали:

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

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



Святая наивность.

Дамп памяти, полученный после "аккуратного" расстрела памяти может рассказать только то, что пациент $дох. Как и почему — останется гадать на картах. По крайней мере при невозможности стабильного повторения и отсутствии исходников.
www.blinnov.com
Re[4]: почему такая нелюбовь к boost ?
От: landerhigh Пират  
Дата: 20.06.12 13:20
Оценка:
Здравствуйте, nen777w, Вы писали:

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

L>>В данный момент засовываю его в Андроид. Лезет. Скрипит, но лезет

N>Опа. Я как раз задумываюсь про портирование на Android, можете рассказать, в двух словах, чего там ждать?


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

N>Может статья какая-то есть?


В интернетах имеется несколько статей о сборке буста под андроид (здесь, например), и даже пара полузабытых портов буста на андроид. Но, они уже пару лет не обновлялись, а с тех пор вышел как новый NDK, так и новый буст. Новый NDK-r8 делает сборку несколько проще, ибо позволяет создать standalone build environment, а также наконец разрешает exceptions и libstdc++, но многие из имеющихся советов или портов уже не собираются.

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

Я также тестовую аппликуху с использованием asio под андроид. Но вот незадача — протестировать в реале пока руки не доходят (поручикам молчать!).

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

N>Что значит "Скрипит, но лезет"?


С header-only либами проблем меньше (там же честный gcc!). Пляски с бубном начинаются, когда трбуется pre-built либа.
www.blinnov.com
Re[3]: почему такая нелюбовь к boost ?
От: __kot2  
Дата: 20.06.12 17:09
Оценка:
во-первых я бы хотел добавить, что буст это хорошая библиотека. как танк, например, хорошее транспортное средство. но если вам нужно ехать в магаз за продуктами, то танк вам просто не нужен. я участвовал в десятках разных проектов. могут сказать, что буст был не нужен почти во всех. то есть можно было сделать и с ним, но зачем? он ничего не упрощал, делал бы подготовку компа к разработке геморройней и дольше

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

N>boost::preprocessor — ну тут вообще говорить много не нужно, сколько я кода навернул на нём, во общем must have вообще всегда.

N>boost::serialization — есть конечно специфика, тут от архитектуры проекта зависит. Я на "несподiванки" не нарывался пока. За трекинг указателей вообще жирный +.
что-то как-то слишком абстрактно. я с ними никогда не работал. я вообще не люблю код, который препроцессится — его отлаживать тяжело. причем не столько при написании, сколько когда чужой код разбираешь

N>boost::algorithm — многа многа многа велосипедов

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

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

N>boost::thread/filesystem — для кросс платформенного программирования то что нужно, был очень приятно удивлен когда это заработало и на iOS

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

N>boost::multiindex/bimap — отличная библиотека — must have, ну да, можно обойтись и набором решений из STL, но в этом случае будет так кри-ии-во, крииииво....

полезно. но не всегда нужно

N>boost::date_time — использовал один раз, но простота понравилась — разобрался очень быстро, очень удобно что можно загружать таймзоны из внешнего файла

тоже полезно. но, опять же, редко
Re[3]: почему такая нелюбовь к boost ?
От: Uzumaki Naruto Ниоткуда  
Дата: 20.06.12 19:36
Оценка: -1
Здравствуйте, Abyx, Вы писали:

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


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


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

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

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


A>rtfm.


Ты засунь на uclinux

Re: почему такая нелюбовь к boost ?
От: __kot2  
Дата: 20.06.12 19:48
Оценка: +3 -1
Здравствуйте, nen777w, Вы писали:
N>Походил тут по собеседованиям, почти везде НЕ используют boost.
я даже так вкратце скажу

а почему, например, почти везде, при посвящении в ведущие программисты, не проводится обряд обрезания?

ответ простой — а почему вообще должен? да, есть места, где при посвящении проводится этот обряд, но даже если это можно и, может быть, распространено, это не поводу его использовать. нужно знать ответ на простой вопрос: конкретно он зачем нужен? если на него ответа нет, то и делать этого не стоит.
Re[4]: почему такая нелюбовь к boost ?
От: MT-Wizard Украина  
Дата: 20.06.12 19:56
Оценка: +5
Здравствуйте, __kot2, Вы писали:

__>callbackи сами по себе очень кривая архитектурная идея. они сейчас нигде почти не используются, кроме как раз типа audio io


А ти, москалику, вже приїхав (с)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.