Re[3]: BOOST vs BICYCLE
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 09.12.06 09:28
Оценка: 15 (2) +4
Здравствуйте, Dmi_3, Вы писали:

D_>Надёжность реализации boost-генераторов проверялась(?) лишь тестированием. Я не думаю, что авторы сознательно удалили assert-ы являющиеся продуктом доказательства правильности. А общеизвестно, что тестирование лишь позволяет обнаружить некоторые ошибки, а вовсе не гарантирует их отсутствие. Наличие возможности деления на ноль в boost::uniform_on_sphere::operator() и возможности генерации одинаковых последовательностей разными boost::lagged_fibonacci яркое тому подтверждение. Практически невозможно не зная заранее об этих ошибках написать тестирующую программу, которая их обнаружит. А выявить ошибку путём попытки доказательства правильности, возможно. Я же выявил. Кроме того, программы написаны довольно небрежно, о чём свидетельствует разное число пробелов при вводе выводе.


Это прямое следствие самой природы Boost-а -- пропиаренного собрания самодельных велосипедов. В духе лучших традиций OpenSource -- подхода, когда баги выявляются миллионами глаз пользователей. В том числе и вашей парой

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

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

Пусть это сделано плохо, но это сделано и лицензия позволяет всем, кто имеет достаточные знания и умения, улучшить существующую реализацию. Это основополагающий принцип OpenSource. Поэтому ваш пост, с одной стороны, очень важен и полезен. Т.к. вы показали явные проблемы существующей реализации. И, может быть, подвигли кого-нибудь к ее исправлению. Но, с другой стороны, слишком уж вы кровожадны. И ваша эмоциональность, имхо, деструктивна. Так уж получается, что будущее C++ зависит от таких библиотек, как Boost. И как раз вы бы могли этому будущему поспособствовать, предложив Boost-у свою реализацию. Это было бы конструктивно. Хотя я понимаю, что скорее всего это невозможно из-за прав на интеллектуальную собственность.

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


Зря вы так
Ценность RSDN именно в том, что люди здесь считают возможным и нужным делится своими знаниями. И, в свою очередь, пополнять свои знания знаниями других участников.

D_> Сейчас я это сделал потому, что чувствую себя слегка виноватым перед Вами за недоразумение возникшее в ветке compile-time вычислений.


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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.