К>Офигеть! А почему этот код зависит от фазы луны? Там внутри рандомизатор стоит? К>Если авторы стандартной библиотеки сделали так намеренно, — надо бить их сапогами. На ровном месте превратить шрёдинбаги в гейзенбаги.
А на мой взгляд это правильный подход. Нужен, чтобы программисты не вносили баги Шредингера (осознанно или случайно).
К>Например, в алгоритм сортировки добавлен рандомизатор "для улучшения времени работы в среднем". К>И до кучи, один и тот же набор данных обычно сортируется за логлинейное время, но в зависимости от фазы луны иногда убегает в квадратное.
Если это документированное поведение, то в чём проблема? Не устраивает — пиши свою сортировку.
К>И ещё до кучи, это меняет состояние глобального рандомизатора, то есть, якобы чистый код перестаёт быть идемпотентным: программа в самых отдалённых уголках будет вести себя по-разному, в зависимости от того, отсортируешь ты один массив единожды или дважды.
Что такое глобальный рандомизатор в данном случае?