amarao (amarao_san) wrote,
amarao
amarao_san

Category:

О разнице в именовании переменных

Во, ещё, в догонку. Существует большая разница в именовании переменных в математике и программировании. Почему математики счастливы с a,b,c,x,y,z,i,j с примесью букво-типизации (греческие - угол, abc - грани, xyz - координаты, ijk - индексы), а программисты от такого должны кривиться?

Потому что у математиков переменные выступают в роли данных. Ни один программист не даёт имена собственные для данных (мы будем называть первый байт файла "first_of_the_kind", второй байт - "second" и т.д.). Если называет - то это уже константы (которые именованные и у математиков, и у программистов). Он эти данные обрабатывает, используя именованные конструкции - типы, структуры, переменные, имена функций, etc.

Математик делает то же самое. Его функция - f, но он-то говорит не про 'f', а про, например, "формы", "линейные комбинации", "полином", "квазиполином" и т.д. То есть имена собственные во все поля. Иногда именование становится жутким "кососимметрическое тензорное поле на многообразии", но стремится к точной передаче сути явления. Математики дают имена собственные для сущностей, которые находятся в их фокусе внимания. А весь болейрплейт идёт в самой компактной возможной нотации c = aij. У программистов он тоже идёт, какой-нибудь for k, v in d.items(): yield "%s:%s" % (k, v) отличный пример такой нотации. Оно настолько вне фокуса внимания, что можно однобуквенные переменные.

Но большинство программистов решает не математические задачи. Я бы даже сказал не задачи, а 'make things which do things'. И там фокус внимания очень часто оказывается на том, что и с чем делается, а не решается. И в этом случае самые большие усилия по именованию приходятся именно на переменные и функции (классы), а так же их типы, потому что это как раз и есть описание "как, что и с чем делается". А математическая часть проблематики (алгебраические поля, алгоритмические вопросы структур данных и т.д.) - она как раз вне фокуса. Нужна, но не важна.
Tags: программирование
Subscribe

  • война за wifi

    В офисе wifi работает только с опцией freq_list=... В свежей бубунте nm не умеет её (проверял грепом по сырцам) А в гите умеет. И git blame…

  • Продолжение адских приключений: UEFI

    Сегодня день великомученника админского, то есть меня. Полез в биос, посмотреть, нет ли там чего-то странного. Решил сбросить настройки. Кто бы мог…

  • bleeding blue edge

    Я сижу на альфе убунты (Trusty). И у меня всё равно bluez-4.101, а не 5+, коих килограммы. Это не настоящий bleeding. Ща буду пытаться вкрутить 5ую…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments