Почему символы не ascii по-прежнему не нравятся в именах функций / переменных? - PullRequest
2 голосов
/ 08 сентября 2010

Когда я вижу небольшую программу, написанную для некоторых студентов, я часто вижу что-то вроде этого: (haskell, немецкий):

ueber = "What the haeck!"

вместо

über = "What the häck!"

Какво многих современных языках разрешено использовать нестандартные символы в именах объявлений через UTF-8, есть ли особая причина избегать их в проекте, который наверняка будет только для людей, которые могут вводить эти символы (скажем, длякоманда немецких студентов?) или это просто историческая причина?

Я знаю, что вы должны оставить имена в a-zA-Z_0-9, если вы разрабатываете приложение на международном уровне, но есть ли причины избегать этого в "местный "проект?

Ответы [ 2 ]

3 голосов
/ 08 сентября 2010

есть особая причина избегать этого в проекте, которая наверняка будет только для людей, которые могут вводить эти символы

Это, безусловно, главная причина.Другие причины, которые приходят на ум, - это то, что многие инструменты разработки, функции поиска, редакторы, парсеры, документаторы, поисковые системы кода и т. Д. Не ожидают ввода в коде не-ASCII.

Кроме того, вы никогда не знаете, где ваш код может быть использован в один прекрасный день!Самый маленький невинный школьный проект может перерасти в хороший инструмент с открытым исходным кодом, который однажды будет использоваться по всему миру.В этом случае ASCII является наименьшим общим знаменателем, по крайней мере, на данный момент.

1 голос
/ 08 сентября 2010

Мне пришлось работать над проектом, начатым французскими разработчиками. Им пришлось потратить немало времени на перевод своей программы на английский, когда к проекту присоединилось больше людей. Преподавайте своим немецким студентам этот урок заранее, и они не только смогут поделиться своим кодом с другими, им больше не понадобится переменная über или ueber.

Кстати, ü - буквенный символ. + и - не алфавитно-цифровые, и я бы сказал, что очевидно, почему они не нравятся в именах функций.

...