Действительно, на SO я посоветовал не забывать избегать if (a = b)
в Java, и кто-то напомнил мне, что это допустимо, только если a и b логические! Конечно, совет хорош для C, C ++, JavaScript и ряда других C-подобных языков.
Аналогично, я только недавно понял, что var v
в JavaScript имеет только область действия на уровне функций, а не область действия скобок.
Каким-то образом, это ловушка из-за схожих синтаксисов, но разного поведения.
Что касается анекдота, некоторые люди из списка рассылки Lua жалуются, что этот язык не является C-подобным, с краткими и знакомыми фигурными скобками, + = и ++, побитовыми операторами. Они говорят, что это вредит принятию языка, потому что люди больше знакомы с синтаксисом, подобным С.
Это бессмысленно, Basic широко использовался (и до сих пор используется) с подробным синтаксисом. Как и Паскаль (Delphià. И многие люди находят синтаксис Lua читабельным и легким для изучения, что хорошо для тех, кто не знаком с программированием (например, специалисты по игровому искусственному интеллекту).
Более того, в частности, Lua предназначен для интеграции в программы на C / C ++ и расширения функциями C [++]. И люди говорят, что совершенно другой синтаксис помогает в изменении мышления.