Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему во многих языках программирования присваивание обозначается как =, а сравнение как ==? Разве не логичнее было бы сделать наоборот?

ПрограммированиеИнтернет+1
Misha Iomdin
  ·   · 618
Веб-разработчик, геймер, специалист по этике  · 8 дек 2021
Вот отличная статья именно на эту тему: https://www.hillelwayne.com/post/equals-as-assignment/
Если подытожить её содержимое, история началась со времён ALGOL, FORTRAN и LISP, где всегда различали инициализацию и разрушающее присваивание. Уже в фортране использовался один и тот же символ = для обеих этих операций. Однако, алгол для присваивания использовал комбинацию символов :=, и, пока пытались написать реализацию (в смысле, реально существующий компилятор) алгола или хотя бы какого-то языка, подобного ему, двоеточие выкинули ради краткости.
Прямая цитата из первого издания The C Programming Language:
Since assignment is about twice as frequent as equality testing in typical programs, it’s appropriate that the operator be half as long.
"Так как [разрушающее] присваивание встречается примерно вдвое чаще, чем проверка на равенство в типичных программах, вполне уместно, что оператор будет вдвое короче", конец цитаты.
Вышеуказанная цитата это исторически точный ответ на вторую половину вашего вопроса.
Более точным символом для операции разрушающего присваивания была бы стрелка влево, <-. Именно так и решили авторы Haskell, например, где различие между чистыми функциями и функциями с побочными эффектами встроено в синтаксис языка.
Специалист в области разработки систем...  · 29 нояб 2021
Историческая традиция. Первым императивным языком высокого уровня был Фортран, где присваивание обозначалось равенством, а для сравнений использовались буквенные обозначения .EQ. (равно), .GT. (больше), .LT. (меньше) и т.д. (на... Читать далее
Погромист на C#  · 27 нояб 2021
Потому что многие языки Си-подобные, а в си решили сделать так. Например в паскале для присваивания используется :=, а для сравнения = и <>. В Go для присваивания также может использоваться := В F# для присваивания (изменения... Читать далее
Подросток из Подмосковья, хочет стать музыкантом....  · 27 нояб 2021
Мне кажется, что есть две причины почему так лучше, даже если и не логично. 1. Присваивание используется почти в каждой программе и поэтому логично было бы отметить её каким нибудь одним символом, чтобы не тратить доли секунд... Читать далее
1 эксперт согласен
Даже добавить нечего, отличный ответ.
музыка, религия,  · 6 дек 2021
нет , не логичнее, Логично так, как есть А=2, понятно что переменной А присвоено значение 2 , т.е. с этого момента А=2 Когда идет сравнение , А==В (например А=2, В=3), логично объяснить - равное А (А=2) , равно ли равному В... Читать далее
1 эксперт согласен
Zлой Скиф
подтверждает
7 дек 2021
Просто нерационально, присваивают чаще, чем сравнивают))