Мы успешно используем опросы Discourse уже довольно долгое время и очень довольны ими. Однако для некоторых голосований нам хотелось бы иметь больше, чем просто простой опрос. В частности, мы хотели бы реализовать метод голосования Кондорсе.
Для таких голосований мы прибегали к использованию внешних сервисов, таких как: CIVS completion algorithms
Однако было бы замечательно иметь возможность проводить такие голосования внутри нашего экземпляра Discourse с использованием его возможностей аутентификации и авторизации.
Уже существуют варианты: одиночный выбор, множественный выбор и числовая оценка. Было бы отлично добавить метод Кондорсе в качестве ещё одной опции.
Структура ввода и вывода, а также пользовательский интерфейс очень похожи на существующие реализации.
Кроме того, базовые алгоритмы голосования доступны в виде открытых библиотек (gems), например:
Добавление такого типа опроса было бы очень полезным.
Вы можете узнать больше об этом типе голосования по ссылке:
Сложность здесь в том, что существует множество методов:
Добавить все это в плагин для голосований было бы слишком громоздко. Если мы решим это сделать, владельцу сайта придется выбирать между STV, методом Шульце, методом мгновенного переизбрания и т. д.
Здесь много сложности. Однако мы не против начать с реализации хотя бы одного из вариантов.
Debian уже десятилетиями использует один конкретный вариант метода Кондорсе, поэтому, полагаю, вполне безопасно принять как минимум эту версию.
Лучше иметь один проверенный на большом сообществе метод, чем ничего.
Я считаю, что сообществам Discourse действительно нужно что-то лучшее, чем опросы, где побеждает только один кандидат.
Поскольку исходный пост был написан, я добавил голосование по методу ранжированного выбора с мгновенным повторным голосованием, что несколько сужает этот разрыв.
Не уверен, что команда Discourse захочет усложнять плагин Poll.
Впоследствии я создал форк плагина Poll, добавив диаграмму Санкей для ранжированного выбора. Этот форк не будет передан в основной репозиторий (PR), так как в CDCK считают, что плагин уже достаточно велик (и это справедливо: поддержка всего этого кода требует значительных ресурсов).
Если кто-то хочет профинансировать добавление метода Кондорсе, вы можете связаться со мной в частном порядке, чтобы включить его в форк.
Я всё ещё считаю, что для сообществ как минимум одно решение для ранжирования необходимо.
Будет ли использование только одного решения слишком субъективным?
Вероятно, но лучше, чем ничего.
Это определённо субъективно, поскольку у каждого алгоритма или системы голосования есть свои плюсы, минусы и подводные камни, и они могут не подойти всем.
Однако реальность такова, что кто-то должен оплачивать создание и поддержку программного обеспечения…
Это правда, но я хочу подчеркнуть следующее: у меня сложилось впечатление, что это довольно базовая функция для сообществ, аналогичная другим стандартным функциям поддержки в Discourse.
Один из основных аргументов команды в этой теме заключается в том, что они не хотят принимать какое-либо решение, так как любое решение будет отражать чьё-то мнение в портфеле решений по голосованию с ранжированием. Однако я считаю, что, как и в сообществе Debian, лучше иметь одно чёткое мнение, чем допускать ситуацию, когда большинство забирает всё.
Таким образом, проблема наличия множества решений для голосования с ранжированием является надуманной, поскольку даже простое голосование большинства уже является выражением чьего-то мнения.