Re[7]: офтопик про буст
От: FR  
Дата: 26.10.04 12:10
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Я сотрудничаю с Эриком Джонсом, приятелем Дейва Абрахамса, и как-то спросил его, почему они используют SWIG а не boost/python для взаимодействия между Питоном и C++. Причнины следующие:

MS>1. Низкая надежность, слишком много проблем с разными компиляторами и платформами.
MS>2. Монстрообразность получаемого кода. Можно, конечно, "доработать напильником", но это требует слишком больших усилий.
MS>3. Время компиляции находится далего за предемами допустимого.

Самое главное он забыл, SWIG это практически средство автоматического создания кода, и пользоватся им на порядок проще чем boost/python, так что сравнение тут совершенно некорректно.
... << RSDN@Home 1.1.3 stable >>
Re[8]: офтопик про буст
От: McSeem2 США http://www.antigrain.com
Дата: 26.10.04 15:08
Оценка:
Здравствуйте, FR, Вы писали:

FR>Самое главное он забыл, SWIG это практически средство автоматического создания кода, и пользоватся им на порядок проще чем boost/python, так что сравнение тут совершенно некорректно.


В том то и дело, что SWIG их по неким причинам не вполне устраивает и они попытались переключиться на direct use boost/python. Все там вроде бы хорошо и не так уж и сложно, но вот компиляция...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: офтопик про буст
От: McSeem2 США http://www.antigrain.com
Дата: 26.10.04 15:18
Оценка:
Здравствуйте, alexeiz, Вы писали:

MS>>А это уже "будем посмотреть". Если, к примеру, мне не требуется ничего кроме функциональности rand(), то именно его я задействую. Так компилируется быстрее


A>Ничего, кроме генерирования чисел в диапазоне 0..MAX_RAND? Сколько я помню, мне всегда дополнительный класс писать приходилось для работы с rand.


Это зачем? rand() % 100 сгенерирует 0...99. Зачем для этого класс писать?! Если качество случайных чисел не критично, этого вполне достаточно.

A>Многим этот boost/python нафиг не сдался. Что этим ты хотел сказать: либо всё из boost'а, либо ничего?


Нет, просто как пример. К сожалению, он довольно типичен для буста.

A>Не нравится кватерион, не используй его. Никаких зависимостей не внесешь. Согласен, что в boost'е есть и неудачный код. Но это не значит, что нужно игнорировать и очень качественный код из boost'а. Это всего лишь еще одно проявление фанатизма.


В том-то и дело, что в остальном бустовский кватернион вполне хорош. Я его и взял, отпилив ненужные куски (благо лицензия позволяет). Там же ничего, кроме <math.h> не нужно! Но такой подход неправилен по жизни. А обилие изначальных зависимостей приводило к проблемам на некоторых платформах.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: офтопик про буст
От: c-smile Канада http://terrainformatica.com
Дата: 26.10.04 19:55
Оценка: +2 :)
Здравствуйте, alexeiz, Вы писали:

CS>>Хм... я например могу побыстрому соорудить скажем нечто с соплом Лаваля на конце.


A>Это от того, что ты считаешь boost неимоверно продвинутой библиотекой, нечто непонятное и недоступное нормальным людям.


Что заставило тебя сделать такой вывод?
"Советское фирменное сопло" достаточно простая штука если у тебя есть время, потребность, а самое главное желание приглядеться. То же и про буст.
Не у всех просто есть эта роскошь — время.
Буст это процесуализм — программирование ради программирования.
Что в общем-то не есть плохо.

Но я лично например считаю что эту бы силу ("boost" as verb) приложить бы к делу создания самого языка
а не изобретение зубодробительных попыток обойти ограничения оного.

Ну что стоит ввести конструкцию is_pod_type со товарищи на уровне препроцессора?
Или ту же условную инстанциацию шаблонов?

boost::mpl это ж синтаксический дизастер какой-то.
Сколько раз уже говорили — это место человеческого тела только для output.
Re[7]: офтопик про буст
От: alexeiz  
Дата: 27.10.04 04:15
Оценка:
Здравствуйте, c-smile, Вы писали:

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


CS>>>Хм... я например могу побыстрому соорудить скажем нечто с соплом Лаваля на конце.


A>>Это от того, что ты считаешь boost неимоверно продвинутой библиотекой, нечто непонятное и недоступное нормальным людям.


CS>Что заставило тебя сделать такой вывод?

CS>"Советское фирменное сопло" достаточно простая штука если у тебя есть время, потребность, а самое главное желание приглядеться. То же и про буст.
CS>Не у всех просто есть эта роскошь — время.
CS>Буст это процесуализм — программирование ради программирования.
CS>Что в общем-то не есть плохо.

Не согласен. Boost предлагает конкретные решения для конкретных проблем. "Программирование ради программирования" — это абсолютно не обосновано. Реальные решения проходят обкатку через boost. Ты хоть бы поинтересовался какие библиотеки из boost'а войдут в следующий стандарт. Ни одна другая библиотека общего назначения не может этим похвастаться.

Другое дело если эти проблемы от тебя далеки. Тогда да, кажется, что они там лабудой занимаются.

Теперь о расточении времени. Если человек может себе позволить написать свой собственный shared_ptr или какой-нибудь array, когда тоже самое есть либо в стандарте, либо в boost'е, то о какой экономии времени идет речь? Экономия времени достигается, когда ты можешь использовать солидные существующие наработки, а не изобретать велосипед самостоятельно.

CS>Но я лично например считаю что эту бы силу ("boost" as verb) приложить бы к делу создания самого языка

CS>а не изобретение зубодробительных попыток обойти ограничения оного.

CS>Ну что стоит ввести конструкцию is_pod_type со товарищи на уровне препроцессора?


см. type_traits<> в tr1.

CS>Или ту же условную инстанциацию шаблонов?


Контрибьюторы boost'а являются очень активными членами комитета по стандартизации. Это просто невозможно не заметить, если ты интересуешься развитием C++.

CS>boost::mpl это ж синтаксический дизастер какой-то.


Как сказать. Ты можешь предложить более элегантное решение?

CS>Сколько раз уже говорили — это место человеческого тела только для output.
Re[8]: офтопик про буст
От: McSeem2 США http://www.antigrain.com
Дата: 27.10.04 05:21
Оценка: 1 (1)
Здравствуйте, alexeiz, Вы писали:

A>Теперь о расточении времени. Если человек может себе позволить написать свой собственный shared_ptr или какой-нибудь array, когда тоже самое есть либо в стандарте, либо в boost'е, то о какой экономии времени идет речь? Экономия времени достигается, когда ты можешь использовать солидные существующие наработки, а не изобретать велосипед самостоятельно.


Чего там такого сложного в shared_ptr или array, чтобы не написать их самому? Очень часто это вполне оправдано. Зависимость от чужого кода, это знаете ли, тяжелая штука, а иногда — и весьма болезненная. Но с другой стороны, от зависимостей никуда не денешься. В конце концов я и сам создаю зависимости и "подсаживаю на иглу".
Я нисколько не агитирую против Буста. Наоборот! Используйте на здоровье, как можно больше и шире. Но сам я — человек консервативный и пока что не тороплюсь. Пусть устаканится хорошенько.

A>Контрибьюторы boost'а являются очень активными членами комитета по стандартизации. Это просто невозможно не заметить, если ты интересуешься развитием C++.


Вот в этом и заключается основная ценность Буста. Хорошо бы усилиями комитета и бустовцев заставить лодырей из MS довести до ума ихний компилятор, а не заниматься всякой мертворожденной отсебятиной типа MC++.

CS>>boost::mpl это ж синтаксический дизастер какой-то.


A>Как сказать. Ты можешь предложить более элегантное решение?


Я могу. Надо направлять больше усилий на доработку самого языка C++. Но это нелегко, однако. Искренне надеюсь, что через Буст мало-помалу C++ будет развиваться.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: офтопик про буст
От: ssm Россия  
Дата: 27.10.04 07:33
Оценка:
Здравствуйте, McSeem2, Вы писали:


MS>заставить лодырей из MS довести до ума ихний компилятор, а не заниматься всякой мертворожденной отсебятиной типа MC++.


VC7.1 довольно далеко ушел от своих уродливых старших братцев, чего тебе в нем нехватает?
Re[10]: офтопик про буст
От: McSeem2 США http://www.antigrain.com
Дата: 27.10.04 13:18
Оценка:
Здравствуйте, ssm, Вы писали:

ssm>VC7.1 довольно далеко ушел от своих уродливых старших братцев, чего тебе в нем нехватает?


На самом деле, не очень. Шаблоны он до сих пор толком не компилирует вплоть до момента инстанциации. Они теперь только третуют писать typename там где это необходимо (хоть и на том спасибо), но это требование, на самом деле, искусственное.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: офтопик про буст
От: c-smile Канада http://terrainformatica.com
Дата: 27.10.04 18:22
Оценка: 14 (2) +2
Здравствуйте, alexeiz, Вы писали:

A>Не согласен. Boost предлагает конкретные решения для конкретных проблем. "Программирование ради программирования" — это абсолютно не обосновано. Реальные решения проходят обкатку через boost. Ты хоть бы поинтересовался какие библиотеки из boost'а войдут в следующий стандарт. Ни одна другая библиотека общего назначения не может этим похвастаться.


По теме данной дискуccии я посмотрел random generators в boost.
В частности normal distribution. Генерация оного сделана неэффективно.
Вывод: я не могу слепо взять boost как есть.


A>Теперь о расточении времени. Если человек может себе позволить написать свой собственный shared_ptr или какой-нибудь array, когда тоже самое есть либо в стандарте, либо в boost'е, то о какой экономии времени идет речь? Экономия времени достигается, когда ты можешь использовать солидные существующие наработки, а не изобретать велосипед самостоятельно.


Пример из жизни: Есть модуль котрый создает array. Этот array проходит по цепочке вызовов функций и попадает в конце концов в некую коллекцию которая его хранит.
Пришел к тому что мне нужно написать нечто типа метода transfer
void array::transfer(array& src)
{
this->data = src.data; src.data = 0;
this->allocated_size = src.allocated_size; src.allocated_size = 0;
...
}
мне проще написать такой метод за 15 минут (вместе с анализом семантики move)
чем лепить workarounds c использованием std::vector


A>см. type_traits<> в tr1.


Сомнения меня берут что это надо делать через шаблоны вообще.

атомарная конструкция вида has_trivial_default_constructor( typename ) в том числе
позволяет использовать оную и в #if.


CS>>Или ту же условную инстанциацию шаблонов?


A>Контрибьюторы boost'а являются очень активными членами комитета по стандартизации. Это просто невозможно не заметить, если ты интересуешься развитием C++.


Даже встречался лично с некоторыми.

CS>>boost::mpl это ж синтаксический дизастер какой-то.


A>Как сказать. Ты можешь предложить более элегантное решение?


Да. Привести в порядок систему #define со товарищи

Вместо вот этой вот красоты:

template< typename T >
struct can_be_on_stack
    : mpl::bool_c< (sizeof(T) <= sizeof(double)) >
{
};

// use 'if_' to choose where to store 'T' member
template< typename T >
struct lightweight
   : private mpl::if_<
          can_be_on_stack<T>
        , stack_holder<T>
        , heap_holder<T>
        >::type
{
   // ...
};


Это ж каким надо быть Александреску чтобы считать struct булевой переменной.
И самое главное что как бы народ то привыкает. Это ж хуже Visual Basic, мля!

Я бы предлжил нечто типа


#function bool can_be_on_stack(typename T) 
        return (sizeof(T) <= sizeof(double)); 
#end function

#function typename optimal_holder(typename T) 
        return can_be_on_stack(T)? stack_holder<T>:heap_holder<T>;
#end function 

template< typename T > 
   struct lightweight : private optimal_holder(T)


как бы оно честнее и очевиднее получается, нет?

Имхо в тридцать раз проще написать к компилятору интерпертатор типизированных meta функций
чем имплементировать синтасические тонкости вложенных шаблонов.

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

В плохих компиляторах виноваты и разработчики стандартов и разработчики компиляторов в равной степени.

Кривой дизайн — кривые имплементации.
Re[9]: офтопик про буст
От: ssm Россия  
Дата: 28.10.04 07:58
Оценка: :)
Здравствуйте, c-smile, Вы писали:


CS>Это ж каким надо быть Александреску чтобы считать struct булевой переменной.

CS>И самое главное что как бы народ то привыкает.

просто надо привыкнуть

изначально все эти конструкции из mpl смотрятся очень дико, но после прочтения доки в течении часа и часа на игру с mpl::bool, mpl::if, mpl::enable_if и т.д. они начинают нравится , и не кажутся уже монстрами.

CS> Это ж хуже Visual Basic, мля!


не хуже, а страшней просто.
Re[10]: офтопик про буст
От: c-smile Канада http://terrainformatica.com
Дата: 29.10.04 05:17
Оценка: +1
Здравствуйте, ssm, Вы писали:

ssm>Здравствуйте, c-smile, Вы писали:


ssm>просто надо привыкнут ...изначально все эти конструкции из mpl смотрятся очень дико ... они начинают нравится.


Ну просто тема для романа "про любофф".
Re: офтопик про буст
От: ruslan_abdikeev Россия http://aruslan.nm.ru
Дата: 30.10.04 20:02
Оценка: +1
Здравствуйте, peterbes, Вы писали:

P>1. вы используете эту библиотеку в ваших проектах?

Да, в крупных проектах.

P>2. Для тех кто реально использует эту библитеку (см п.1)-

P> — вопрос: что именно вы используете?
array, bind, conversion, crc, enable_if, format, function, lambda, mpl, preprocessor, random, regex, smart_ptr, spirit, tuple, variant

random — потому что не вижу смысла в реализации на коленке стандартного mt19937 и пр., а они нужны

P>3. Я понимаю, что это "язык будующего", а я в теориях слаб.

P> — вопрос: увеличит ли скорость и качество разработки программого обеспечения если освоить эту новую технологию
Увеличит. Но серебряной пули нет
Re[11]: офтопик про буст
От: Vark  
Дата: 10.11.04 05:32
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

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


ssm>>VC7.1 довольно далеко ушел от своих уродливых старших братцев, чего тебе в нем нехватает?


MS>На самом деле, не очень. Шаблоны он до сих пор толком не компилирует вплоть до момента инстанциации.


так это же требование стандарта С++, или я чего-то не понимаю?

в 7.1 впервые появилась поддержка частичной параметризации шаблонов ...
Re[2]: офтопик про буст
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 10.11.04 07:15
Оценка:
Здравствуйте, ruslan_abdikeev, Вы писали:

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


P>>1. вы используете эту библиотеку в ваших проектах?

_>Да, в крупных проектах.

P>>2. Для тех кто реально использует эту библитеку (см п.1)-

P>> — вопрос: что именно вы используете?
_>array, bind, conversion, crc, enable_if, format, function, lambda, mpl, preprocessor, random, regex, smart_ptr, spirit, tuple, variant

Плюс type_traits (без коментариев), operators (не фанат я писать вручную операторы >, >=, <= для каждого типа), format (хоть и тяжелый, но безопасный по сравнению с printf), filesystem (виндовые и стандартные операции с файлами меня раздражают), thread (иногда), utility (STATIC_ASSERT и т.п.).

У меня принцип простой, использую сначала то что уже есть, если не подходит стараюсь не рать на весь RSDN что бюст и эстиэл отстой, но просто пытаюсь сделать то что мне подходит с похожим интерфейсом (по возможности конечно), что бы хотя бы тот кто будет дальше поддерживать этот проект понимал о чем речь.
getboost.codeplex.com
citylizard.codeplex.com
Re[3]: офтопик про буст
От: qbit  
Дата: 19.04.06 00:06
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>просто интересно чем это старый добрый rand() то не угодил?


Boost же, вроде, позволяет задавать различные распределения вероятностей. rand() — это равномерное распределение, а если нужно, например, максвелловское?
Re: офтопик про буст
От: Константин Л.  
Дата: 19.04.06 09:03
Оценка:
Здравствуйте, peterbes, Вы писали:

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


P>1. вы используете эту библиотеку в ваших проектах? ( проекты хелоу уорд и все что не продается и не сопровождается хотя бы 2-3 программистами в течение хотя бы 2-3 лет -- это проект для дома для души, для шаравар ...etc, в лучшем случае это "крутая" дипломная работа — пятак обеспечен и так, за крутизну — никто не ничего поймет, а выдать себя в незнании буста никто не решиться)


Используется в коммерческом проекте

P>2. Для тех кто реально использует эту библитеку (см п.1)-

P> — вопрос: что именно вы используете? парсите строку при помощи буста, потому что это модно? или вы собрали свой язык и прикрутили его к соей программе, или это что-то другое. Поделитесь, пожалуйста, своим опытом — очень интересно. Собственно, ЭТО ГЛАВНЫЙ ВОПРОС — ответье на него, не посылаете на бам

Использую:
1) boost::regex
2) boost::shared_ptr/scoped_ptr etc.

P>3. Я понимаю, что это "язык будующего", а я в теориях слаб.

P> — вопрос: увеличит ли скорость и качество разработки программого обеспечения если освоить эту новую технологию ( я это вот к чему — многие на РСДНе уже утверждают что де-юре буст будет включен в стандарт С++, а следовательно его нужно знать сегодня)
Re[2]: офтопик про буст
От: Аноним  
Дата: 19.04.06 09:30
Оценка:
Здравствуйте, Аноним, Вы писали:

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


P>> — вопрос: увеличит ли скорость и качество разработки программого обеспечения если освоить эту новую технологию ( я это вот к чему — многие на РСДНе уже утверждают что де-юре буст будет включен в стандарт С++, а следовательно его нужно знать сегодня)


А>Ага, сильно увеличит, если ты в чужом проекте это увидел, а тебе это, причем наполовину рабочее, поднять надо


Молоток не виноват в том, что он оказался в кривых руках.
Я тебе и без буста смогу такое наваять, что и в жизни не поднять
Re[9]: офтопик про буст
От: jazzer Россия Skype: enerjazzer
Дата: 19.04.06 12:08
Оценка: +1
Здравствуйте, c-smile, Вы писали:

CS>По теме данной дискуccии я посмотрел random generators в boost.

CS>В частности normal distribution. Генерация оного сделана неэффективно.
CS>Вывод: я не могу слепо взять boost как есть.

Так напиши об этом авторам random.
Или прямо в бустовский mailing list, чтобы народ поучаствовал в обсуждении.
Буст же открыт, да и у тебя у самого личные связи есть.
В чем проблема- сделать буст лучше, чтобы им действительно пользовались все без сомнений?
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[12]: офтопик про буст
От: Аноним  
Дата: 19.04.06 17:19
Оценка:
Здравствуйте, Vark, Вы писали:

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


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


ssm>>>VC7.1 довольно далеко ушел от своих уродливых старших братцев, чего тебе в нем нехватает?


MS>>На самом деле, не очень. Шаблоны он до сих пор толком не компилирует вплоть до момента инстанциации.


V>так это же требование стандарта С++, или я чего-то не понимаю?


Не понимаешь, про двухфазный поиск имен когда-нибудь слышал?

V>в 7.1 впервые появилась поддержка частичной параметризации шаблонов ...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.