Hello Harry.
Fri May 27 2005 11:04, Harry Zhurov wrote to me:
DT>> Hо case sensitivity - штука скорее вредная, чем полезная.
HZ> Очень полезная и удобная. Она позволяет использовать одни и те же HZ> слова в разном исполнении,
Что ж в этом хорошего? Слова "хлеб", "Хлеб" и "ХЛЕБ" значат одно и то же, независимо от регистра. :)
HZ> которые при принятой нотации одним своим видом "говорят", что за HZ> сущность скрывается за именем.
А вот это никто не мешает делать и в case-insensitive языках. Более того, это делать необходимо.
HZ> Все это упрощает придумывание имен - придумывание хороших, понятных, HZ> удобных имен - очень непростая задача.
Да не такая сложная. Просто нужно хорошо владеть языком. Русским, английским
- человеческим языком. И понимать, какую именно сущность должно обозначить это имя, и какое именно слово или слова отразят её наилучшим образом.
И здесь определённая близость ЯВУ к естественному языку помогает. Есть даже такое направление, э-э, программистско-философской мысли :) - literate programming.
HZ> Имена весьма влияют на стиль программы.
Естественно! Кстати, разные группы сущностей исходного текста следует называть словами, относящимся к разным частям речи. Процедура - это действие, глагол. Константа, переменная и т.п. - существительное. Булевская функция - часть речи, означающая состояние (как она там называется?) - done, busy, ready и так далее.
DT>> Идентификатор должен быть _словом_, а слово запоминается по смыслу, а DT>> не по написанию.
HZ> Идентификатор - это имя. Имя в языке, на котором пишут и читают, но не HZ> разговаривают.
Идентификатор - не просто имя, это _слово_. Единица абстракции. А из этих единиц строятся более сложные абстракции.
DT>> Кстати и некоторая близость ЯВУ к естественным языкам полезна: если DT>> идентификаторы подобраны правильно, операторы (statements) Ады или DT>> Паскаля читаются почти как фразы на английском и получается хорошая DT>> самодокументируемость.
HZ> Хорошая самодокументированность получается из усилий программиста, HZ> а не из языка.
И из того, и из другого - из совокупности.
HZ> А излишняя многословность нечего хорошего не несет - программа HZ> получается флудообразной.
Излишняя - да. Везде нужна золотая середина.
DT>> Оператор же на C/C++ произнести обычно невозможно.
HZ> Какой оператор?
Statement. "Фраза" языка. Тот же условный оператор. Сравни:
if not Ready or Busy then exit;
if (!ready || busy) exit;
Dimmy.