Этот аргумент предполагает, что у вас нет проблем с набором юникодов и чтением греческих букв
Вот аргумент: вы хотели бы пи или циркулярное соотношение?
В этом случае я бы предпочел pi вместо циркулярное отношение, потому что я узнал о pi с тех пор, как я учился в начальной школе, и я могу ожидать, что определение pi хорошо укоренено всеми программистами, достойными его внимания. Поэтому я не прочь напечатать π, чтобы обозначить циркулярное соотношение.
Тем не менее, как насчет
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
или же
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
Для меня обе версии одинаково непрозрачны, как pi
и π
есть, за исключением того, что я не изучал эту формулу в начальной школе. winner_sigma
и Wwin
ничего не значит для меня или кого-либо еще, кто читает код, и использование ни того, ни другого σw
не делает его лучше.
Таким образом, использование описательных имен, например total_score
, winning_ratio
и т. Д., Значительно повысит читабельность, чем использование имен ascii, которые просто произносят греческие буквы . Проблема не в том, что я не могу читать греческие буквы, но я не могу связать символы (греческие или нет) со «значением» переменной.
Вы , конечно , поняли эту проблему самостоятельно , когда вы прокомментировали: You should have seen the paper. It's just eight pages...
. Проблема заключается в том, что если вы называете свои переменные именами на бумаге, в которой для краткости выбираются однобуквенные имена, а не для удобства чтения (независимо от того, являются ли они греческими), то люди должны будут прочитать статью, чтобы иметь возможность связать буквы "смысл"; это означает, что вы ставите искусственный барьер, чтобы люди могли понимать ваш код, и это всегда плохо.
Даже когда вы живете в мире только для ASCII, оба a * b / 2
и alpha * beta / 2
одинаково непрозрачный рендеринг height * base / 2
формулы площади треугольника. Нечитаемость использования однобуквенных переменных растет экспоненциально по мере усложнения формулы, и формула AllegSkill, безусловно, не является тривиальной формулой.
Переменная с одиночными буквами приемлема только как простой счетчик циклов, независимо от того, являются ли они греческими однобуквенными или односимвольными ascii, мне все равно; никакие другие переменные не должны состоять только из одной буквы. Мне все равно, если вы используете греческие буквы для своих имен, но когда вы действительно используете их, убедитесь, что я могу связать эти имена со «смыслом» без необходимости читать произвольную статью где-то еще.
В начальной школе я определенно не возражал бы видеть математические выражения с использованием таких символов, как: +, -, ×, ÷, для базовой арифметики, а √ () - функция с квадратным корнем. После окончания начальной школы я не возражаю против добавления новых блестящих символов: the для интеграции. Обратите внимание на тенденцию, это все операторы. Операторы используются гораздо интенсивнее, чем имена переменных, но они реже используются для совершенно другого значения (в случае, когда математики повторно используют операторы, новое значение часто все еще содержит некоторые основные свойства старого значения; это не так для при повторном использовании имен переменных).
В заключение, нет, неплохо использовать символы Unicode для имен переменных; однако, всегда плохо использовать однобуквенные имена для имен переменных, и разрешение на использование имен Unicode не является лицензией на использование однобуквенных имен переменных.