На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие девчонки! Поздравляем вас с праздником 8 Марта!
msm.ru
Модераторы: ANDLL, ALXR
  
> Чувствительность к регистру , в языках программирования
   
надо ли чувствительность к регистру в ЯП?
Гости не могут просматривать результаты голосования.
Гости не могут голосовать 
    Как меня раздражает эта чувствительность к регистру, и все из-за того что Кериган или/и Ричи хотели побольше переменных в одном наборе символов <_< Я понимаю, каждый страрается писать свой код красиво, но зачем же жестко вводить ограничения, не то что бы мешало, просто раздражает...
    Хотелось бы услышать ваше мнение по этому поводу, может кто-то даст вразумительные аргументы в защиту сабжа, относительно последнего пункта имеется ввиду, что вы сами следите за "чистотой" кода, и даже в дельфях не позволяете себе написать имя функции с маленькой буквы и т.д.
    СУВ.
      Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end".
      Чувствительность к регистру дает больше возможностей для названия переменной. Например есть класс Ant, хочу создать переменную этого типа, будет логично и понятно, если назову ее "ant", что невозможно при отсутствии чувствительности - а тогда придется начинать вымышлять всякие "ant1" и пр. непонятно что.
      Ну и больше дисциплины. Чистота - залог здоровья. Порядок - прежде всего.

      Добавлено
      PS Например в Яве я бы вообще ввел обяз называть классы с большой буквы, переменные и методы - с маленькой. А то, понимаешь, привыкаешь к стандартам, а потом глянешь на чей-то код - и прямо в глазах рябит, больно смотреть.
        Цитата Vex @ 24.12.04, 23:51
        и даже в дельфях не позволяете себе написать имя функции с маленькой буквы

        Я, я даже в Делфях не позволяю! :yes: Я за последний пункт голосовала. Причем голосовала ещё до того, как прочитала разъяснение.
        А не позволяю не потому, что следу за собой, а просто так получается. На подсознательном уровне. Это как писать по-русски без ошибок - никто же не задумывается о проверочных словах при письме другу...
        И в форумах, кстати, и в ICQ, пишу с большой буквы все, что положено.
        Да и код выглядит гораздо красивее, когда в ЯП есть чувствительность к регистру. Наряднее, так сказать. Опрятнее.
        Сообщение отредактировано: vk -
          ИМХО, чувствительность к регистру излишество, только проблемы создает. Называть одинаковым набором символов разные переменные я бы никогда не рискнул.
          Довод, что код выглядит неаккуратно, отклоняется. Современные регистронезависимые редакторы автоматически исправляют введенное имя на объявленное. Объявляешь красиво, а потом вообще забываешь о верхнем регистре и кнопочке Shift, не боишься, что в какой-то момент она не сработает и метод вместо переменной Ant обратится к ant.

          Добавлено
          ИМХО, чувствительность к регистру излишество, только проблемы создает. Называть одинаковым набором символов разные переменные я бы никогда не рискнул.
          Довод, что код выглядит неаккуратно, отклоняется. Современные регистронезависимые редакторы автоматически исправляют введенное имя на объявленное. Объявляешь красиво, а потом вообще забываешь о верхнем регистре и кнопочке Shift, не боишься, что в какой-то момент она не сработает и метод вместо переменной Ant обратится к ant.
            А Code Completion отменили? ;)

            Добавлено
            У меня на подсознательном, кстати
              Про переменные класса (с моей дельфевой колокольни) - гораздо логичнее и красивее использовать схему приставок-семафоров типа TClass-Class чем с регистром извращатся Сlass-class (последнее кстати дает возможность использовать только одну переменную, для второй все равно придется ставить цифры). Так что убрав "подсознательные" доводы тех кто просто привык регистр нафик не нужен. А если я щас чай с сухариком пью и фигачу все одним пальцем левой руки, чего ж мне кружку ставить?! :blink: Это же чудовищно! :lol:

              Вывод: зло
                Когда я с явы перешел на VB, мне очень понравилась именно регистронезависимость.
                ИМХО скорость написания кода очень сильно снижается если обращать внимание на регистр.
                Сообщение отредактировано: SCINER -
                  На подсознательном. Приучил себя. Раньше писал как попало, переменные с маленькой буквы, функции и процедуры называл как попало, отступы были дикие. Вот уже как год пишу нормально и мой код читается с легкостью. Я вот свои старые исходники когда вижу, повесится хочется.
                  Даже когда тороплюсь и написал
                  ExpandedWrap disabled
                    var
                    i: integer
                  , то сразу же исправляю на
                  ExpandedWrap disabled
                    var
                      I: Integer;


                  Цитата TrivialCore @ 25.12.04, 01:06
                  Чувствительность к регистру дает больше возможностей для названия переменной. Например есть класс Ant, хочу создать переменную этого типа, будет логично и понятно, если назову ее "ant",
                  А не легче ли назвать тип TAnt, а переменную этого типа просто Ant? Так намного логичнее, а с чувствительностью к регистру больше недопонимания кода, нежели без этой чувствительности. Тебе охота есть помнить что и с каким регистром писалось в начале проги, когда прога "растилается" уже на пять листов? Нет естественно. Надо себя приучать к порядку.
                    Цитата Berill, 25.12.04, 10:36:02, 555058
                    А не легче ли назвать тип TAnt, а переменную этого типа просто Ant? Так намного логичнее, а с чувствительностью к регистру больше недопонимания кода, нежели без этой чувствительности. Тебе охота есть помнить что и с каким регистром писалось в начале проги, когда прога "растилается" уже на пять листов? Нет естественно. Надо себя приучать к порядку.

                    Это не мой подход, если посмотреть все посты топика. Сам я предпичитаю систему префиксов и постфиксов.
                      Где-то я видел спор насчёт того, "красиво" - ли пользоваться пропертями в Delphi. Оканчивался он одной очень умной фразой: "Считаешь, что некрасиво - не пользуй". Это можно и к регистру отнести...
                      ИМХО, однако :)

                      P.S. Меня всегда бесили языки где val и Val - две разные переменные. На этапе изучения и привыкания это выробатывало... негативное отношение...
                      :whistle:
                        Я за чувствительность к регистру прежде в всего в плане читабельности и аккуратности кода. А то посмотришь, как иные дельфисты пишут безобразия...

                        Ну, и во-вторых уже, бОльшие возможности. Например, при программировании математических задач приходится заводить переменные для минимума и максимума какой-либо функции. Как красиво и лаконично бы выглядел код:
                        ExpandedWrap disabled
                          var
                            m: Double;
                            M: Double;
                        К тому же не возникает разногласий с алгоритмами, изложенными в мат. книгах (там частно используются символы m и M для минимума и максимума).
                          min и max чем не устраивает?
                          И вообще, не понимаю отношения многих к паскалистам и дельфишникам, как к неряхам. :angry:
                          Что за мода пошла любую тему переводить на личности и опускаться до оскорблений? :blink:
                            Цитата TrivialCore @ 25.12.04, 00:06
                            Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end".


                            Полностью согласен.
                              Просто среди паскалистов особенно много нерях, на что не могла не повлиять нечувствительность к регистру =)
                                У меня - на подсознательном уровне.
                                Более того, обычно, когда набираю в Help'е или MSDN что-то для поиска - набираю с учетом регистра. Только иногда проскакивает мысль "А чего это я? Ему же регистр безразличен" :)
                                Мне так кажется красивее. Не люблю сливающихся имен вроде thisismynewvariable. Либо пишу все слова в имени с заглавных букв(ThisIsMyNewVariable), либо разделяя подчеркиваниями(this_is_my_new_variable). Первое - чаще, потому как короче - больше помещается на экране.
                                Сообщение отредактировано: trainer -
                                  2 TrivialCore, rapido (и прочим фанатам сей):
                                  Цитата
                                  Меня например наоборот раздражало в языках типа TP, VB то, что "как хачу, так пишу". В одной книге все "BEGIN", "END", в другой "Begin", "End", в третьей "begin", "end".

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

                                  А вообще другие люди вас не раздражают - ведь они все такие разные? >:)
                                    Раздражают :) Но с чувствительным регистром одним раздражителем меньше :)
                                      Мне нравится чувствительность к регистру. Не тем что позволяет создавать больше переменных, а тем что это приучает каким-то образом к порядочности что ли :) . Вот так !
                                        2 TrivialCore:
                                        Цитата
                                        Раздражают :) Но с чувствительным регистром одним раздражителем меньше :)

                                        Это не аргумент. Если существует так много раздражающих тебя вещей, то избавление от всего одной из них ничего не меняет. И с другой стороны: если избавление от единственного "раздражителя" так много для тебя значит, то при столь огромном их количестве ты бы уже давно повесился >:)

                                        2 DeVoid:
                                        Цитата
                                        Мне нравится чувствительность к регистру. Не тем что позволяет создавать больше переменных, а тем что это приучает каким-то образом к порядочности что ли :) .

                                        В таком случае ты должен люто ненавидеть си и подобные языки за то, что их синтаксис позволяет писать совершенно нечитабельный код >:)
                                          Цитата gnumus @ 25.12.04, 13:55
                                          P.S. Меня всегда бесили языки где val и Val - две разные переменные. На этапе изучения и привыкания это выробатывало... негативное отношение...
                                          :whistle:

                                          1) С помощью заглавных букв в имени выделяются отдельные слова (MyNewVariable) которые несут какой-то смысл.
                                          Использование заглавных букв в другом месте может изменить смысл. Например: Brown и BrowN ...

                                          2) Слово из трех букв можно записать 8 способами (val, Val, VAL и т.д.). Слово из 10 букв - уже 1024 способами. И все это должно обозначать одну и ту же переменную? Ничего себе свобода (вернее полная неразбериха)!
                                            2 eugene_:
                                            Цитата
                                            Использование заглавных букв в другом месте может изменить смысл.

                                            И случайно нажатый (или не нажатый) шифт будет стоить многих бессонных ночей, проведенных в отладке...

                                            Цитата
                                            Слово из трех букв можно записать 8 способами (val, Val, VAL и т.д.)... Ничего себе свобода (вернее полная неразбериха)!

                                            Неразбериха? Почему? На мой взгляд, в сишной строке типа VAL = Val(val) неразберихи гораздо больше, чем в паскальной VaLreC := GETvAl(vALpTR) >:)

                                            А если программист лепит строчные и заглавные буквы как попало, значит, он хреновый программист, и язык тут совершенно ни при чем.
                                              Цитата AVA12, 26.12.2004, 1:59:28, 555891
                                              А если программист лепит строчные и заглавные буквы как попало, значит, он хреновый программист, и язык тут совершенно ни при чем.

                                              :yes: :yes: :yes: :yes: :yes:
                                                У меня уже по привычке левый шифт нажимается и отпускается как морзянка при записи какогй-нибудь сложнословой процедуры типа InternetGetConnectedState :)

                                                Добавлено
                                                Просто большие буквы воспринимаются подсознательно плохо, потому как принято что это повышение тона или раздражение.
                                                Все маленькие - это можно, но ИМХО некрасиво.
                                                  Цитата мыш @ 25.12.04, 09:14
                                                  А если я щас чай с сухариком пью и фигачу все одним пальцем левой руки, чего ж мне кружку ставить?!
                                                  Блин, как ты прав! =)

                                                  Дело в том, что если бы C++ и др. языки не были бы регистрочувствительными, многие писали бы как по-старинке в Basic-е и asm-е, т.е. кто-то пишет mov ax, cx, кто-то MOV AX, CX, а кто-то mov AX, CX. Это удобно тем, что работает в любом случае, а неудобно тем, что снова плодятся разные стили написания кода, поэтому, если я привык писать mov ax, cx, то мне не всегда приятно видеть MOV AX, CX.
                                                    Эх, приснопамятного А. Голуба на вас нету :) Регистр может значить очень многое. Особенно при грамотном подходе к именованию. И читабельность программы при этом может существенно возрасти. Пример (взятый мною давным давно на вооружение и используемый по сей день) - некоторая разновидность CaMeL (:)) нотации, предложенной тем же Голубом:
                                                    - Имена классов и методов начинаются с большой буквы. В случае нескольких слов - каждое с большой буквы, без подчеркиваний.
                                                    - Имена переменных классов - начинается с префикса m_ (это уже от себя)
                                                    - Имена аргументов функций - первая буква первого слова маленькая, остальные слова начинаются с большой. Не содержат подчеркиваний.
                                                    - Имена локальных переменных - все маленькими буквами, слова разделены подчеркиваниями.
                                                    Все просто:
                                                    ExpandedWrap disabled
                                                      class SomeClass
                                                      {
                                                      public:
                                                      void SomeFunction(int someArg)
                                                      {
                                                      int some_local_var = m_SomeMember;
                                                      }
                                                      public:
                                                      int m_SomeMember;
                                                      };

                                                    И, вообще говоря, при некоторой сноровке всегда понимаешь - о чем идет речь, и что используется.

                                                    У Голуба префиксов m_ не было, но именование методов должно было в обязательном порядке содержать глагол (если мне не изменяет память).
                                                      Да, чувствительность к регистру - очень удобный штюк. Если, конечно, все придерживаются одинаковых правил.
                                                        Вы говорите не столько о чувствительности к регистру компилятора, сколько об аккуратности написания кода самим программистом и мнемонических правилах называния переменных, классов, процедур и проч. А это есть совсем не то!
                                                          Когда писал на Pascal'е - не раздражало (хотя каждое слово и название переменной писал с большой буквы).
                                                          Со временем начал переходить на Java - воспринял как должное (хотя по-началу кроме раздражения ничего не вызывало)
                                                            Flex Ferrum:
                                                            Цитата
                                                            И, вообще говоря, при некоторой сноровке всегда понимаешь - о чем идет речь, и что используется.

                                                            Вот именно - при некоторой сноровке - то есть, благодаря выработанному рефлексу. Если же кто-то использует непривычный стиль именования, то этот самый рефлекс вступает в противоречие с действительностью, вызывая раздражение. Когда используется язык, нечувствительный к регистру, рефлекс не вырабатывается, и чужой стиль раздражения не вызывает (если этот стиль выдержан). Отсюда вывод: чувствительность языка к регистру символов - скорее вред, чем польза, ибо налагает излишние ограничения и мешает взаимопониманию.

                                                            P. S. Уважаемые приверженцы паскаля, кого из вас раздражают тексты (на паскале), оформленные в (выдержанном) стиле, отличном от вашего?

                                                            P. P. S. Уважаемые приверженцы си, кого из вас не раздражают тексты (на си), оформленные в (выдержанном) стиле, отличном от вашего?
                                                            Сообщение отредактировано: AVA12 -
                                                              AVA12, меня раздражает любой чужой код. Раздражение тем сильнее, чем сложнее и объемнее задача. И приверженность к регистрочувствительности/нечувствительности здесь ни при чем. Код, выкладываемый на форуме или приводящийся в статье или учебнике отшлифован, снабжен комментариями и прочее. В жизни я практически не встречал рабочего (над которым работают) кода, оформленного по каким-либо правилам.
                                                                Цитата AVA12 @ 27.12.04, 19:11
                                                                Вот именно - при некоторой сноровке - то есть, благодаря выработанному рефлексу.

                                                                Рефлекс тут не причем. В именовании есть некоторая система. И как только вникаешь в эту систему - все становиться просто. Как и в любом другом случае. Но по постам Delphi'стов могу судить, что и в их коде присутствует подобная система. И регистронезависимость в нее не входит. Т. е. в любом случае принимаются какие-то соглашения об именовании, и программист им следует. Т. е. регистронезависимый язык становится псевдорегистрозависимым. А в таком случае о чем спор? :) И (с моей точки зрения) регистронезависимость добавляет некоторой расхлябанности. Т. е. здесь так напишу, там иначе, все равно компилятор поймет, что я имел в виду, и скушает... А это (на мой взгляд) не есть хорошо...
                                                                  Цитата AVA12 @ 25.12.04, 19:52
                                                                  А вас не раздражает то, что разные программисты используют разные стандарты для именования? Что одни вставляют лишние пробелы для читабельности, а другие - нет? Что одни пишут по одной операции в строке, а другие - по несколько? Что у одних отступ два знакоместа, а у других - четыре? Что одни выносят фигурную скобку на отдельную строку, а другие - нет?

                                                                  А вообще другие люди вас не раздражают - ведь они все такие разные? >:)

                                                                  Аргумент понятен. Но программирование (как и любая точная наука) в силу своей специфики является очень формализованной областью. Именно поэтому здесь уместны споры о чувствительности к регистру, равно как и о стандартах на кодирование в целом.

                                                                  И не путайте личное творчество с необходимостью обеспечить профессиональное программирование в коллективе программистов.

                                                                  Добавлено
                                                                  Цитата AVA12 @ 26.12.04, 01:59
                                                                  На мой взгляд, в сишной строке типа VAL = Val(val) неразберихи гораздо больше, чем в паскальной VaLreC := GETvAl(vALpTR)

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

                                                                  Добавлено
                                                                  P.S. А результаты голосование показательны - убедительную победу одерживает чувствительность к регистру.

                                                                  Лично я вообще-то за VB.NET-овский подход, когда редактор сам исправляет регистр в соответствии с объявлением идентификатора.

                                                                  Добавлено
                                                                  Цитата Flex Ferrum @ 27.12.04, 23:31
                                                                  Т. е. в любом случае принимаются какие-то соглашения об именовании, и программист им следует. Т. е. регистронезависимый язык становится псевдорегистрозависимым. А в таком случае о чем спор? И (с моей точки зрения) регистронезависимость добавляет некоторой расхлябанности. Т. е. здесь так напишу, там иначе, все равно компилятор поймет, что я имел в виду, и скушает... А это (на мой взгляд) не есть хорошо...


                                                                  Уес!
                                                                  Посмотрим на исходники VCL в Delphi - да там сплошь и рядом насаждена регистрозависимость, несмотря на то, что паскаль объявлен как регистронезависимый.
                                                                  Сообщение отредактировано: Andr .NET -
                                                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                  0 пользователей:


                                                                  Рейтинг@Mail.ru
                                                                  [ Script execution time: 0,0986 ]   [ 17 queries used ]   [ Generated: 14.03.25, 06:05 GMT ]