Oct. 9th, 2009

mishafurman: (Default)
Hungarian Notation

[Комментарий к замечанию Абу Антось ([info]syarzhuk) к моему более раннему посту
 
Я как-то читал интервью самого Simonyi, он объяснял, что его исходная идея была вовсе не тянуть компьютерный тип данных (lpsz, ага), а СМЫСЛ того, что в переменной содержится. Например, могут быть три переменные, все float, но две из них означают ширину и высоту, т.е. размерность в метрах, а третья - площадь, т.е. в метрах квадратных. Вот тут-то он и использовал префиксы, тогда сразу можно было отловить взглядом, где переменные используются неправильно
]

 
 
Мой комментарий:
 
        (Сначала хотел было написаить гораздо более развернуто об главных принципах создания программ - но осекся: слишком неподъемная задача. Может когда-нибудь...)
Я вовсе не критикую Simonyi, тем более, он придумал это давно.
Но, по существу - если речь идет о размерности, это ни чем не отличается от типа (по отношению к моему объяснению). Если язык не имеет встроенных средств для работы с размерностями (не знаю, есть ли такие, которые имеют) и не имеет возможности строить новые типы, подобная запись поможет. И не только "взглядом" - компилер отловит использование переменной с неправильной размерностью - такое имя просто не определено.
 
Суть моего возражения Вам содержится в определении слова "СМЫСЛ", которое Вы используете в Вашем замечании. То, что Вы называете смыслом меняется в зависимости от обстоятельств; то что было СМЫСЛОМ для Simonyi в те давние времена перестало быть таковым для современных методологий и языков программирования. Разделение труда между человеком и машиной (в нашем случае между нами - создателями программного обеспечения и компьютерами вместе с программами, которые мы используем (иногда, сначала создаем, а затем используем)) меняется. Многие проблемы, которые раньше требовали интеллекта теперь решаются машинами. На заре программироввания это было распределение памяти, например. Надо было помнить, что такое ячейки 1000 и 1001 (скажем 1000 это высота чего-то, а 1001 - ширина). И, поэтому, это входило в "СМЫСЛ". Уже с появлением ассемблеров, это стало делаться сначала полуавтоматически, а затем автоматически. И это перестало входить в СМЫСЛ: у разработчиков освободилось место в голове, что позволило решать более сложные задачи.

Profile

mishafurman: (Default)
misha furman

October 2019

S M T W T F S
  12345
6789101112
131415161718 19
20 212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 2nd, 2025 08:25 pm
Powered by Dreamwidth Studios