Именование на русском


23 0

Я только недавно узнал, что в Visual Studio 2008 можно именовать переменные и имена методов кириллицей. Это произошло случайно, когда я писал очередную главу книги и назвал пункт меню по-русски и когда я создавал обработчик события для него, то заметил какое-то идиотское название метода создатьToolStripMenuItem_Click. Я до такой степени привык именовать переменные и методы английскими словами, что для меня это выглядело просто уродливо. Я даже представить себе не могу, как такой код читать и поддерживать.

Самое страшное, что этот код откомпилировался и работал без проблем. Почему это страшно? Теперь пойдут исходные коды на немецком, итальянском и даже китайском. Представляешь, как международное комюнити будет читать, и поддерживать этот код? Уже ясно, что английский язык давно стал языком программирования (о как загнул), или если быть политкорректнее, то языком программистов.

Лично я никогда не буду именовать переменные на русском. Оказывается, Delphi 2007 вроде бы тоже можно писать на русском. Я сам не проверял, потому что у меня просто нет Delphi 2007.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Overdrive

Ага. В Delphi 2007 можно кирилицей писать. Вот только я этого делать не буду. =)


2Overdrive

Я так подразумеваю это везде где компилятор поддерживает Unicode...

Представляешь, как международное комюнити...
Ты забываешь про стандарты оформления кода, в которых даже диалект указывается, т.е. как писать color или colour...

Другое дело, что всякие упыри могут теперь писать как им взумается...

Лично я никогда не буду именовать переменные на английском
Ты про русский, наверное...


pat

если в преддыдущем комменте имя 2Overdrive, то это я написал :)


Фёдор Гринёв

В последнем абзаце смысловая ошибка: «...не буду именовать переменные на английском.»


BasicWolf

Михаил, всмысле "..именовать переменные на русском"?


Alexo

Оказывается, Delphi 2007 вроде бы тоже можно писать на русском. Я сам не проверял, потому что у меня просто нет Delphi 2007.


Вобще это фишка новой среды Galileo (кажеться), с 2005 среды поддерживаеться именование переменных не только на англ. Самое бесполезное нововведение :)


Evgeniy26

В 2007 тоже воспринимает русский, нормально компилит и работает без ошибок.


Evgeniy26

Что за книга? Когда выйдет? Наверное библия C#.


Spider_ NET

Да, в Delphi теперь тоже именовать переменные на русском и других языках. Только эта возможность появилась в Delphi 2009, т.к. именно эта версия "научилась" работать с юникодом по полной программе. Теперь и string уже не тот string =)

Возможнось забавная, но я тоже предпочитаю именовать переменные на инглише. Единственное исключение для меня - это 1С. Ну тут уж никуда не дется, т.к. 90% конфигураций пишут, используя русскоязычный синтаксис.

Я помню себя когда впервые увидел переменные на русском. Это было когда я начинал знакомиться с php. Там такая возможность была сразу.

Лично я никогда не буду именовать переменные на английском.


Ты наверное хотел сказать на русском


Михаил Фленов

2All

В последнем абзаце действительно бла опечатка, потому что я не буду именовать переменные и методы на РУССКОМ.

2Evgeniy26

У уже давно говорил, что работаю над Библией C#  на полках она появится в конце весны (я надеюсь).


Syber

Да это та же самая система, что и домены на локальных языках регистрировать. Интересно разработчики подумали какой зверинец из раскладок получится, если путешествуешь по просторам инета не только у себя на родине? :)) например www.weißennächte.de (белые ночи) ужас :D а на китайском?


Евгений

Это, пожалуй, самое бестолковое и опасное нововведение.


olegmaster

а по-моему, удобная фича. впервые такое встретил в fasm года три назад. оно то да, для транснациональных проектов конвенционально лучше использовать английский. но для маленьких программулин, которые пишешь для себя или своей любимой конторы, исходники которой будешь читать только ты или твои коллеги - национальный язык не хуже английского. особенно, если техническим английским владеешь на уровне трех классов церковно-приходской школы.
в бытность школьником, нам преподавали алгориритмизацию как в виде блок-схем, так и на ШАЯ (школьный алгоритмический язык), который был кириллический. эффект обучения от этого не ухудшился. по поводу доменов: если выбирать между кириллицей или богомерзким транслитом, то кириллица предпочтительнее. скажем фирма называется "Щавель" и хочет создать свой сайт. как ей прикажете в сети называться?


Демчишин Михаил

Здравствуйте. Читая тему и комментарии, постоянно думал про 1С. Spider_ NET как-то про это мельком сказал. И все-таки, поддержка русского языка при программировании в 1С - хорошо это или прохо? Хотелось бы узнать мнение большинства.


Михаил Фленов

Я нигде не говорил, что русский язык в именах - это плохо. Это хорошо и в 1C и в C# и в Delphi, потому что это лишняя гибкость. Но я именовать переменные по русски не буду.


dmitriy

Всем привет.

2 olegmaster


но для маленьких программулин, которые пишешь для себя или своей любимой конторы, исходники которой будешь читать только ты или твои коллеги - национальный язык не хуже английского.


Не спорю конечно более читабильнее. Но скажу со своей точки зрения програмиста (ИМХО), что вот эти вот мелкие утилиты имееют очень большое значение в программировании и в постоении кода. Как говорил Михаил в одной из своих книжек "мелкие программы и утилиты потом перерастают в крупные проекты" (может не дословно, но смысл таков). Дело в том что на этих мелких прогах учишься и пишешь уже этим кодом.
Предположим вы сопровождаете 3-4 проекта мелкий софт. перерабатываете исходники и прогу раз в неделю (ну там что то добавляете, что то удаляете, что то совершентсвуете и т.д.).  1.5 - 2 года ывы к этому стилю программирования так привыкнете, что в другой стиль вам будет казаться...
А ведь именование переменных, а потом и имена классов (потянуться) это тоже стиль программирования.
Я тоже кстати английским владею долеко не на тех или разговорном уровне. Но я использую Lingvo для понятного названия переменных хватает.
Лично я не буду называть переменные рускими буквами я считаю это портит язык программирования как таковой. И репутацию программиста ИМХО. Исключение как сказано выше это 1C. Кстати не люблю программить на ней и стараюсь не работать с ней только по этой причине.
А теперь немного практике. К сожалению delphi 2009 дома. Но можно потренироваться на Visual Studio 2008. Итак создаем класс:

    public class Пак
    {
        public int Ы;
        public string Ю;
    }

и обявляем переменные в рабочей зоне main

            Пак КУ = new Пак();
            КУ.Ы = 4;
            КУ.Ю = "Гравицапа";
            КУ.Ю = "Gravicapa";

и что мы в итоге видим, опа работает.
А давайте дружно перепишем методы и конструкторы под русский? ну что бы так.
Публичный класс Пак
{
    Побличное число Ы;
    Публичная строка Ю;
}

и обявляем переменные в рабочей зоне Главная

            Пак КУ = Новый Пак();
            КУ.Ы = 4;
            КУ.Ю = "Гравицапа";
            КУ.Ю = "Gravicapa";

Очень смахивает на 1C.


dmitriy

Да еще забыл. В некоторых софт-верных конторах. где несколько программеров могут разрабатывать одно и тоже ПО. Там есть даже некие требования оформление кода, в том числе и переменных. Например имена переменных надо задавать осмысленно и на английском языке. Например переменная которая отвечает за то, есть ошибка или нет, бодет называться CheckError или IsError, но не как не Oshibka или ProverkaOshibok.


dmitriy

Хотя для китайцев это очень даже удобно. У них же 1 символ заменяет целый предложения или обзацы. очень удобно минимизировать код. Например прогу из 150 000 - 200 000 строк можно будет уместить в 20 - 30 символах.


Spider_ NET

2Демчишин Михаил

Поддержка русского - это не хорошо и не плохо. ИМХО, это нормально. Я бы сказал это не привычно по первости, но потом привыкаешь. Я раньше плевался на 1С, но поработав месяца 3 привык, а сейчас и вовсе прусь от 8-й версии это чудесной платформы. Для разработки использую только русский вариант синтаксиса. Причин как минимум две:

* Пишу в команде. Остальные тимовцы заядлые 1С-ники и пишут только на "русском". Можно конечно разбавлять код, но тогда получится не код, с салянка.
* Для 1С - это стандарт. Большинство конфигураций написаны с использованием русскоязычного синтаксиса. А значит лучше придерживаться этого варианта. Если твою конфу будут дорабатывать другие люди, то им будет  проще, если будет использоваться русскоязычный синтаксис. Ведь во всех пособиях и хелпах весь код приводится на на "русском".


Андрей

Например переменная которая отвечает за то, есть ошибка или нет, бодет называться CheckError или IsError
За такие названия переменной тебе быстрее по рукам надают, чем за русское, т.к. CheckError - это название МЕТОДА!!! в стандартной конвенции ДействиеОбъект.
А IsError - идентификатор для свойства или метода-геттера.

А вообще Юникод в идентификаторах порой очень удобен, особенно если предметная область предполагает некоторые обозначения, которые невозможно записать латиницей, типа греческих букв, это сильно улучшит читабельность кода, хоть и чуточку замедлит написание, но не надо забывать, что в реальности на чтение кода уходит в десятки раз больше времени, чем на его написание.


Neddi

to Spider_ NET

На счёт прекрасной платформы 1С. У меня в универе идёт какая-то программа для заочников типа чтобы они учились дома ч/з инет. Вот и там широко использовалась 1С. И представьте лица прогеров 1С когда выяснилось что некоторые идентификаторы в базе данных повторяются. не знаю чем это закончилось но все были в диком ужасе. А на счёт русского я думаю инглиш общепринятый стандарти им надо пользоваться и радоваться что для программирования есть хоть какой-то адекватный стандарт


niello

В Delphi 2007 кирилица тоже работает, только что проверил и в TurboDelphi2006 работает (смешно смотрится тип ТИнтежер ;-) ). Но все же, когда я написал код и пришел его показать в универ то оказалось что я нечяйно место английской "C" написал русскую "C", поэтому чаще использую Delphi6.


CodeM@ster

По моему мнению, именовать переменные в Delphi на русском - это такой же изврат, как писать в 1С латынью. Но находятся любители всяких методов. Думаю, что всё это - дело привычки, но работая в команде, надо придерживаться общих правил и соглашений.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Telegram Програмысли
Youtube Instagram Твитер