Re[6]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 10.02.12 19:14
Оценка:
Здравствуйте, rusted, Вы писали:

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

V>>Это неправда. Пример с несколькими goto читается хуже, потому-что увидев goto надо искать точку перехода для каждого отдельно, а про свич сразу всё ясно что она за скопом.
R>Про switch сразу всё ясно только тому, кто этот switch написал, реакция всех остальных — "что это за непонятное использования switch-а?"
Да что ты говоришь, а мужики то незнали
Автор: Vain
Дата: 10.02.12
..
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: готофобам к размышлению
От: Erop Россия  
Дата: 10.02.12 19:15
Оценка:
Здравствуйте, Vain, Вы писали:

E>>goto, как минимум, по назначению используется...

V>Так же примерно как и while?
V>
V>#define BLABLA(...)\
V>  do\
V>  {\
V>    ...\
V>  }while(0)
V>
Афигный цикл!!!


Есть вызод проще: пишешь на плюсах и не морочишь сишникам голову своей готофобией...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 10.02.12 19:18
Оценка: :)
Здравствуйте, jazzer, Вы писали:

J>ибо нет другого способа в языке для выхода из нескольких уровней циклов

А флажки проверять не комильфо?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[8]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 10.02.12 19:21
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>goto, как минимум, по назначению используется...

V>>Так же примерно как и while?
V>>
V>>#define BLABLA(...)\
V>>  do\
V>>  {\
V>>    ...\
V>>  }while(0)
V>>

Афигный цикл!!!
Угу и его так офигенно до сих пор и сишники и плюсники пользуют и не плюются.
E>Есть вызод проще: пишешь на плюсах и не морочишь сишникам голову своей готофобией...
дартаньян? я вас четсно не узнал в гриме.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[9]: готофобам к размышлению
От: Erop Россия  
Дата: 10.02.12 19:25
Оценка:
Здравствуйте, Vain, Вы писали:


V>дартаньян? я вас четсно не узнал в гриме.


И дввно вы с собой разговариваете?
Я это к тому, что отрицать широкое использование гото для очистки в крупных успешных сишных проектах не приходится. Так что в теории о ужасах гото надо чегой-то поднастроить
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 10.02.12 19:31
Оценка:
Здравствуйте, Erop, Вы писали:

V>>дартаньян? я вас четсно не узнал в гриме.

E>И дввно вы с собой разговариваете?
а вы?

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

Ну так я и отвечал на возмущение вовсе не про goto.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[9]: готофобам к размышлению
От: jazzer Россия Skype: enerjazzer
Дата: 11.02.12 07:14
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, jazzer, Вы писали:


J>>ибо нет другого способа в языке для выхода из нескольких уровней циклов

V>А флажки проверять не комильфо?
продемонстрируй, плиз
http://www.rsdn.ru/forum/flame.comp/4610257.1.aspx
Автор: jazzer
Дата: 09.02.12
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: готофобам к размышлению
От: jyuyjiyuijyu  
Дата: 11.02.12 10:34
Оценка:
о чем вообще речь я же привел примеры линуксовых
list_for_each_entry флажки в данном случае вообще не применимы
но тем не менее ты находишся в контексте трех вложенных
циклов и надо срочно выйти
Re[11]: готофобам к размышлению
От: jyuyjiyuijyu  
Дата: 11.02.12 10:48
Оценка: +2
вообще складывается ощущение что готофобы рассматривают
некую идеальную ситуацию оторванную от реальной жизни
и на ее основе доказывают как хорошо жить без гото а
в случае реальных жизненных ситуаций где без гото сложно
начинают городить такой говнокод где гото и рядом не лежал
и вообще я считаю что готофобия это болезнь и бесполезно
доказывать готофобам что то это не лечится
Re[4]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 12:28
Оценка:
Здравствуйте, jazzer, Вы писали:

EOH>>>Для C и C++ goto — единственный способ выйти из вложенного цикла (кроме функций, плодить которые в ряде случаев совсем не хочется).

Q>>Нормальные люди из вложенных циклов выходят по условиям, ибо даже break/continue -- это тот же goto.
J>э-э-э... даешь мастер-класс?
J>
J>for() {
J>  ...
J>  for() {
J>    ...
J>    for() {
J>      ...
J>      if (condition1) goto out;
J>      ...
J>      if (condition2) goto out;
J>      ...
J>    }
J>    ...
J>  }
J>  ...
J>}
J>out:
J>

J>Продемонстрируешь, как "нормальные люди выходят по условиям" из таких вложенных циклов? (многоточия — это значимый код)
флажки пользуют:
bool doBreak = false;
for() {
  ...
  for() {
    ...
    for() {
      ...
      if (condition1) { doBreak = true; break; }
      ...
      if (condition2) { doBreak = true; break; }
      ...
    }
    if(doBreak) break;
    ...
  }
  if(doBreak) break;
  ...
}
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 12:30
Оценка:
Здравствуйте, Erop, Вы писали:

Q>>Но если руки чешутся, то сишный фор отлично завершается по флажку:

Q>>
Q>>for(i = 0; i < 10 && !stop; ++i)
Q>>

E>Флажки -- во это точно говнокод, прошу простить мой френч.
когда это флажки стали говнокодом по сравнению с goto?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: готофобам к размышлению
От: Erop Россия  
Дата: 11.02.12 13:05
Оценка:
Здравствуйте, Vain, Вы писали:

E>>Флажки -- во это точно говнокод, прошу простить мой френч.

V>когда это флажки стали говнокодом по сравнению с goto?

Всегда были...
У тебя есть конкретные претензии к прктике выхода из вложенных циклов по гото?
Если все претензии сводятся к тому, что там есть гото, то иди, обсуди это со своими единомышленниками. Я не считаю, что гото -- это однозначно плохо и не запрещаю своим подчинённым его использовать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: готофобам к размышлению
От: Cadet  
Дата: 11.02.12 13:54
Оценка: +1 -1
Здравствуйте, Vain, Вы писали:

J>>Продемонстрируешь, как "нормальные люди выходят по условиям" из таких вложенных циклов? (многоточия — это значимый код)

V>флажки пользуют:
V>
V>bool doBreak = false;
V>for() {
V>  ...
V>  for() {
V>    ...
V>    for() {
V>      ...
V>      if (condition1) { doBreak = true; break; }
V>      ...
V>      if (condition2) { doBreak = true; break; }
V>      ...
V>    }
V>    if(doBreak) break;
V>    ...
V>  }
V>  if(doBreak) break;
V>  ...
V>}
V>


Расстрелять без суда и следствия. Ты код превратил в головоломку, какой break к какому циклу относится.
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[8]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 18:42
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>Флажки -- во это точно говнокод, прошу простить мой френч.

V>>когда это флажки стали говнокодом по сравнению с goto?
E>Всегда были...
а мужики то и не знали..

E>У тебя есть конкретные претензии к прктике выхода из вложенных циклов по гото?

E>Если все претензии сводятся к тому, что там есть гото, то иди, обсуди это со своими единомышленниками. Я не считаю, что гото -- это однозначно плохо и не запрещаю своим подчинённым его использовать...
Ну так чем же флажки хуже goto?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 18:46
Оценка:
Здравствуйте, Cadet, Вы писали:

C>Расстрелять без суда и следствия. Ты код превратил в головоломку, какой break к какому циклу относится.

Вы вдруг код разучились читать?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[9]: готофобам к размышлению
От: Erop Россия  
Дата: 11.02.12 19:17
Оценка: +1
Здравствуйте, Vain, Вы писали:

V>Ну так чем же флажки хуже goto?


Лишняя сущность...

for( тут чего-то итерируем ) {
    if( xxx1 ) {
        doXXX1;
    }
    if( xxx2 ) {
        doXXX1;
        break
    }
    if( xxx3 ) {
        doXXX3;
    }
}
уместен ли тут флажок?
Я считаю, что не уместен.
Мало того, я считаю, что следующий код логически эквивалентен предыдущему:
for( тут чего-то итерируем по x ) {
  тут чего-то такое достаём, прикидываем, готовим
  if( yyy1 ) {
     goto endOfLoop;
  }
  for( тут итерируем по y ) {
    if( xxx1 ) {
        doXXX1;
    }
    if( xxx2 ) {
        doXXX1;
        goto endOfLoop
    }
    if( xxx3 ) {
        doXXX3;
    }
  }
endOfLoop: ;
}
То есть если в первом флажок не нужен, то и во втором не нужен...

Но в целом вопрос не особо важный. Я не думаю, что флажками ты всё сможешь запутать вусмерть.
Другое дело, что догматизм и отсутсвие внятной аргументации -- это плохая практика и тревожный симптом
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: готофобам к размышлению
От: Erop Россия  
Дата: 11.02.12 19:46
Оценка: +2
Здравствуйте, Cadet, Вы писали:

V>>
V>>bool doBreak = false;
V>>for() {
V>>  ...
V>>  for() {
V>>    ...
V>>    for() {
V>>      ...
V>>      if (condition1) { doBreak = true; break; }
V>>      ...
V>>      if (condition2) { doBreak = true; break; }
V>>      ...
V>>    }
V>>    if(doBreak) break;
V>>    ...
V>>  }
V>>  if(doBreak) break;
V>>  ...
V>>}
V>>


C>Расстрелять без суда и следствия. Ты код превратил в головоломку, какой break к какому циклу относится.


Главное, что не ясно, ради чего все эти напряги. Никто так внято и не смог пояснить что такого ужасного в гото по сравнению, например, с этой break-лапшой...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 20:08
Оценка:
Здравствуйте, Erop, Вы писали:

E>Никто так внято и не смог пояснить что такого ужасного в гото

1. Тем что метку глазами надо искать и тем что в исходном примере
Автор: Mr.Cat
Дата: 08.02.12
"хорошесть" способа так и не раскрыта.
2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а.
3. Нету скопов, код превращается просто в листинг без отступов, со скопами всегда делают отступ, отсюда и наглядность брека.

E>по сравнению, например, с этой break-лапшой...

goto-лапша не лучше.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[8]: готофобам к размышлению
От: Cyberax Марс  
Дата: 11.02.12 20:12
Оценка: +3
Здравствуйте, Vain, Вы писали:

E>>Никто так внято и не смог пояснить что такого ужасного в гото

V>1. Тем что метку глазами надо искать и тем что в исходном примере
Автор: Mr.Cat
Дата: 08.02.12
"хорошесть" способа так и не раскрыта.

"goto error_exit" — это абсолютно стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет в конце функции.

V>2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а.

Ага, а с флажками надо ещё:
1) Смотреть где он проверяется.
2) Смотреть как он инициализируется.
3) Смотреть, не меняется ли он где-то ещё.

E>>по сравнению, например, с этой break-лапшой...

V>goto-лапша не лучше.
Лучше. Она банально компактнее.
Sapienti sat!
Re[9]: готофобам к размышлению
От: Vain Россия google.ru
Дата: 11.02.12 20:44
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Vain, Вы писали:


E>>>Никто так внято и не смог пояснить что такого ужасного в гото

V>>1. Тем что метку глазами надо искать и тем что в исходном примере
Автор: Mr.Cat
Дата: 08.02.12
"хорошесть" способа так и не раскрыта.

C>"goto error_exit" — это абсолютно стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет в конце функции.

V>>2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а.

C>Ага, а с флажками надо ещё:
C>1) Смотреть где он проверяется.
C>2) Смотреть как он инициализируется.
C>3) Смотреть, не меняется ли он где-то ещё.
Ну так это абсолютный стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет после цикла.

E>>>по сравнению, например, с этой break-лапшой...

V>>goto-лапша не лучше.
C>Лучше. Она банально компактнее.
С аргументом про скоп значит согласны?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.