Здравствуйте IT, Вы писали:
IT>IT production представляет: "GOTO must die!"
Я старый квакер меня одним пистолетом не возмеш....
И на goto я не молюсь это одно из многих средств языка которые я использую.
А обработка сообщений это пример того как без структур жить можно.
Здравствуйте WolfHound, Вы писали:
WH>Я старый квакер меня одним пистолетом не возмеш.... WH>И на goto я не молюсь это одно из многих средств языка которые я использую. WH>А обработка сообщений это пример того как без структур жить можно.
Это на рейлган похоже. Камперят IT&VladD2 и читами пользуются.
Здравствуйте IT, Вы писали:
IT>На тему?
месть GOTO-щиков.
IS>>и если будет, то хочу цветной. IT>Не, цветной я не могу. У меня цветные карандаши заканчились ещё в 9 классе
у меня есть синий и оранжевый фломастеры — могу сериализовать их и выслать мылом. =)
Локализованную для России версию комикса лучше не делать.
Видимо одна из подсознательных причин особой нелюбви у наших программеров к goto в том, что этот зласчастный оператор совершенно неблагозвучно переводится.
Мечом и автоматом это не победить! Нужно на более современные средства переходить — типа вакуумных бомб и т.п., так чтобы и следов не осталось.
Иначе, действительно, перерубленное или искромсанное тело породит по закону почкования-деления несколько эквивалентных экземпляров (несколько боженек!) с экспоненциальным ростом врагов, ресурсов для их уничтожения, рыцарей, применяющих ресурсы. В итоге, бесплодность самих этих попыток.
Ребят, за что бы их так? Ну если людям нравится использовать goto — путь используют! Что у вас отнимают, что ли?
P.S. Только вы не подумайте чего-нибудь... Я goto не использую еще с тех пор как перестал писать на бейсике (классе в 8-ом значит). Я просто за справедливость...
P.P.S. А всетаки жалко того чувака, которого на меч насадили... бедненький...
Здравствуйте CooLer, Вы писали:
CL>Ребят, за что бы их так? Ну если людям нравится использовать goto — путь используют! Что у вас отнимают, что ли?
Это еще цветочки. Скоро начнут гнобить любителей хаотичного выделения памяти и "необернутых" хендлов и
"неумных" указателей на интерфейсы. Я, например, если вижу у кого в коде более 2-х return-ов per function, бывает, пишу
обидные комментарии. Но не потому, что я злой и грубый, а потому, что слишком много моей жизни
ушло на поиски всяких "детских" ошибок. Зачастую чужих. Вот оператор goto, хоть и удобен иногда,
но является _потенциальным_ источником ошибок. За что его и гнобят.
Здравствуйте Snax, Вы писали:
S>Здравствуйте CooLer, Вы писали:
CL>>Ребят, за что бы их так? Ну если людям нравится использовать goto — путь используют! Что у вас отнимают, что ли?
S>Это еще цветочки. Скоро начнут гнобить любителей хаотичного выделения памяти и "необернутых" хендлов и S>"неумных" указателей на интерфейсы. Я, например, если вижу у кого в коде более 2-х return-ов per function, бывает, пишу S>обидные комментарии. Но не потому, что я злой и грубый, а потому, что слишком много моей жизни S>ушло на поиски всяких "детских" ошибок. Зачастую чужих. Вот оператор goto, хоть и удобен иногда, S>но является _потенциальным_ источником ошибок. За что его и гнобят.
S>Павел.
А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else... А проблему с аккуратным освобождением ресурсов как раз и призваны решатьстоль обожаемые вами рэпперы и смарт-пойнтеры...
Здравствуйте Аноним, Вы писали:
А>А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else...
1 — проще побить на несколько функций
2 — try catch блоки можно заюзать, правда скорость попадает
Здравствуйте Snax, Вы писали:
S>Здравствуйте Аноним, Вы писали:
А>>А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else...
S>Я ратовал за 10 вложенных if/else? Не было такого.
Ну лично я склонен использовать return в функциях именно с целью окончания ветвей исполнения... И не понимаю, какие к этому могут быть претензии... Или вы их за что-то другое не любите?
Здравствуйте IT, Вы писали:
IT>Понятно. И конечно обработка ошибок. Драли небось из старых сишных кодов
И да и нет . Да, потому, что обрабатываются действительно ошибки. Нет, потому, что обрабатываются ошибки не в коде, логике и т.д. парсера, а ошибки в коде, который это парсер разбирает (что является обычной его работой, а эта переменная m_iErrors просто считает их количество).
Здравствуйте Alex77, Вы писали:
A>У меня мало опыта программирования на сях, поэтому я понять не могу почему более двух return per function плохо. A>Чем это плохо, объсните пожалуйста.
...
Если это вопрос ко мне, то только одно предположение — плохой стиль программирования.
Хотя в той же MSDN-е полно примеров, где return втречается гораздо больше 2-х раз.
Здравствуйте aboo, Вы писали:
A>Здравствуйте Alex77, Вы писали:
A>>У меня мало опыта программирования на сях, поэтому я понять не могу почему более двух return per function плохо. A>>Чем это плохо, объсните пожалуйста.
A>...
A>Если это вопрос ко мне, то только одно предположение — плохой стиль программирования. A>Хотя в той же MSDN-е полно примеров, где return втречается гораздо больше 2-х раз.
Alex77, не воспринимайте это всё в серьёз, это же форум про юмор
Здравствуйте Alex77, Вы писали:
A>Чем это плохо, объсните пожалуйста.
Понимаете, Alex77, обычно процедура на C++ имеет такую структуру:
1. проверка аргументов
(тут может быть return, ничего страшного)
2. Выделение временных ресурсов
3. Изменение состояния объекта
4. Освобождение ресурсов.
Так вот, если хочется поставить return, но выделение каких-либо
ресурсов уже проихошло, то чистить их приходится перед каждым из
return'ов. В Вашем примере это будет N вызовов free(pData);
И не дай бог, захочется переименовать pData или что подобное.
В любом случае, код распухает, вероятность ошибки увеличивается.
Впрочем, на этом этапе это еще не так страшно. Тут нам на помощь
придут всевозможные "умные" указатели и обертки над хендлами.
А вот когда дело доходит до изменения внутреннего состояния объекта,
тут лишний выход по ошибке может оставить объект в таком виде,
что он потом где-то очень далего-далего испортится и Вы будите
долго-долго искать причину. Не факт, что если писать код без return'ов,
такого не произойдет, но мой жизненный опыт подтверждает:
return посреди метода чаще приводит объекты в неустойчивое состояние.
ОСОБЕННО, если метод разрабатывал один человек, а return потом
вставил другой.
Вот. И чтобы логика процедуры (инициализация-изменение-освобождение)
не нарушалась, перед return нужно освободить все выделенные ресурсы.
Чем ближе к финишу, тем болше дублированного кода. Тем больше строк
кода вообще.
Здравствуйте, kavlad, Вы писали:
K>На последнем кадре у бедного готика такое удивленное лицо!!!
Не, это подстава. GOTO остался жив и, вероятно, даже здоров. На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO. Наверное, она попала вместо ненавидимой многими программистами конструкции TODO
А может, кто-то из героев еще и на машинке крестиком вышивать умеет
Здравствуйте, Kaa, Вы писали:
Kaa>Не, это подстава. GOTO остался жив и, вероятно, даже здоров. На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO. Наверное, она попала вместо ненавидимой многими программистами конструкции TODO
Того — это адмирал, который побил Рожественского у Цусимы. Вот и его очередь пришла!
Я кончил, джентльмены, мне остается только поблагодарить вас за внимание.
Здравствуйте, Kaa, Вы писали:
Kaa>На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO.
TOGO — это стандартная конструкция в американских фастфудах, означающая "с собой"
Kaa>А может, кто-то из героев еще и на машинке крестиком вышивать умеет
Здравствуйте, IT, Вы писали:
IT>IT production представляет: "GOTO must die!"
Самое обидное, что не того прирезали-то... Охотились на GOTO, а на последней картинке на шампуре TOGO... Вот так всегда — хотят люди сделать что-то хорошее, а страдают невинные
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, <Аноним>, Вы писали:
IT>>>IT production представляет: "GOTO must die!"
А>>Интересно минусы за что? Это ведь юмор.
IT>Не раскрыта тема Немерле.
Если серьёзно, я просто восхищён самой техникой рисования,
а именно тонкостями
— передача эмоций
— постановка сцен(масштабы и т.д.)
— акцент на деталях.
очень понравилось.
Думаю вышел бы не плохой мультипликатор.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, RoloTomasi, Вы писали:
IT>>>IT production представляет: "GOTO must die!"
RT>>А продолжение комиксов планируется?
IT>Лет через пять напомни
Ну уже напомнили. Через 7 лет (блин, даже не вериться, что все это так давно было). А комикс действительно классный, хотелось еще таких. Говорят, что после средних лет у человека начинают творческие способности наиболее актуализироваться. Многие с возрастом вдруг начинают писать, рисовать. Вот мы и ждем от IT — раз талант есть, должен же он в конце концов проявиться и нас всех порадовать.
...
Ну никого не пощадил!
A>Ну никого не пощадил!
Не, это не я. Ты же видишь, это всё Влад начал. А я так просто за компанию
Они размножаются делением...
IT>
P.S. извини, сканера нет, пришлось поганить твой рисунок.
IT>IT production представляет: "GOTO must die!"
Я старый квакер меня одним пистолетом не возмеш....
И на goto я не молюсь это одно из многих средств языка которые я использую.
А обработка сообщений это пример того как без структур жить можно.
ЗЫ их рисовать не умею.
WH>Я старый квакер меня одним пистолетом не возмеш....
WH>И на goto я не молюсь это одно из многих средств языка которые я использую.
WH>А обработка сообщений это пример того как без структур жить можно.
Это на рейлган похоже. Камперят IT&VladD2 и читами пользуются.
IT>IT production представляет: "GOTO must die!"
будет ли продолжение комикса — и если будет, то хочу цветной.
IS>будет ли продолжение комикса —
На тему?
IS>и если будет, то хочу цветной.
Не, цветной я не могу. У меня цветные карандаши заканчились ещё в 9 классе
IS>>и если будет, то хочу цветной.
IT>Не, цветной я не могу. У меня цветные карандаши заканчились ещё в 9 классе
Это не проблема: потом в Паинте раскрасишь
IT>На тему?
месть GOTO-щиков.
IS>>и если будет, то хочу цветной.
IT>Не, цветной я не могу. У меня цветные карандаши заканчились ещё в 9 классе
у меня есть синий и оранжевый фломастеры — могу сериализовать их и выслать мылом. =)
Нужно все таки ввести оценку "за артистизм исполнения", как в фигурном катании
Нда. Искуство страшная сила!
Локализованную для России версию комикса лучше не делать.
Видимо одна из подсознательных причин особой нелюбви у наших программеров к goto в том, что этот зласчастный оператор совершенно неблагозвучно переводится.
[skipped]
Мечом и автоматом это не победить! Нужно на более современные средства переходить — типа вакуумных бомб и т.п., так чтобы и следов не осталось.
Иначе, действительно, перерубленное или искромсанное тело породит по закону почкования-деления несколько эквивалентных экземпляров (несколько боженек!) с экспоненциальным ростом врагов, ресурсов для их уничтожения, рыцарей, применяющих ресурсы. В итоге, бесплодность самих этих попыток.
P.S. Только вы не подумайте чего-нибудь... Я goto не использую еще с тех пор как перестал писать на бейсике (классе в 8-ом значит). Я просто за справедливость...
P.P.S. А всетаки жалко того чувака, которого на меч насадили... бедненький...
CL>Ребят, за что бы их так? Ну если людям нравится использовать goto — путь используют! Что у вас отнимают, что ли?
Это еще цветочки. Скоро начнут гнобить любителей хаотичного выделения памяти и "необернутых" хендлов и
"неумных" указателей на интерфейсы. Я, например, если вижу у кого в коде более 2-х return-ов per function, бывает, пишу
обидные комментарии. Но не потому, что я злой и грубый, а потому, что слишком много моей жизни
ушло на поиски всяких "детских" ошибок. Зачастую чужих. Вот оператор goto, хоть и удобен иногда,
но является _потенциальным_ источником ошибок. За что его и гнобят.
Павел.
S>Здравствуйте CooLer, Вы писали:
CL>>Ребят, за что бы их так? Ну если людям нравится использовать goto — путь используют! Что у вас отнимают, что ли?
S>Это еще цветочки. Скоро начнут гнобить любителей хаотичного выделения памяти и "необернутых" хендлов и
S>"неумных" указателей на интерфейсы. Я, например, если вижу у кого в коде более 2-х return-ов per function, бывает, пишу
S>обидные комментарии. Но не потому, что я злой и грубый, а потому, что слишком много моей жизни
S>ушло на поиски всяких "детских" ошибок. Зачастую чужих. Вот оператор goto, хоть и удобен иногда,
S>но является _потенциальным_ источником ошибок. За что его и гнобят.
S>Павел.
А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else... А проблему с аккуратным освобождением ресурсов как раз и призваны решатьстоль обожаемые вами рэпперы и смарт-пойнтеры...
А>А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else...
1 — проще побить на несколько функций
2 — try catch блоки можно заюзать, правда скорость попадает
А>А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else...
Я ратовал за 10 вложенных if/else? Не было такого.
S>Здравствуйте Аноним, Вы писали:
А>>А чем вам return'ы не нравятся? По любому читабельнее, чем 10 вложенных if/else...
S>Я ратовал за 10 вложенных if/else? Не было такого.
Ну лично я склонен использовать return в функциях именно с целью окончания ветвей исполнения... И не понимаю, какие к этому могут быть претензии... Или вы их за что-то другое не любите?
S>Я, например, если вижу у кого в коде более 2-х return-ов per function, бывает, пишу
S>обидные комментарии.
GO TO прекрасный способ оставить один return!
Правда формально скорость будет чуть ниже.
SK>Я смотрел часть исходников Rotor'а и там, кстати, используются goto. Вот так...
Скорее всего в case, но это тогда уже другая история.
IT>Скорее всего в case, но это тогда уже другая история.
Да, в общем нет. Взял _первый_ попавшийся файл sscli\clr\src\csharp\csharp\sccomp\parcer.cpp
И в других местах я видел тоже самое.
SK>Да, в общем нет. Взял _первый_ попавшийся файл sscli\clr\src\csharp\csharp\sccomp\parcer.cpp
Понятно. И конечно обработка ошибок. Драли небось из старых сишных кодов
IT>Понятно. И конечно обработка ошибок. Драли небось из старых сишных кодов
И да и нет . Да, потому, что обрабатываются действительно ошибки. Нет, потому, что обрабатываются ошибки не в коде, логике и т.д. парсера, а ошибки в коде, который это парсер разбирает (что является обычной его работой, а эта переменная m_iErrors просто считает их количество).
....
Вот блин, как рисунок обсудить — все здесь, а как на вопрос ответить — фиг дождёсссяяя...
Чем это плохо, объсните пожалуйста.
A>У меня мало опыта программирования на сях, поэтому я понять не могу почему более двух return per function плохо.
A>Чем это плохо, объсните пожалуйста.
...
Если это вопрос ко мне, то только одно предположение — плохой стиль программирования.
Хотя в той же MSDN-е полно примеров, где return втречается гораздо больше 2-х раз.
A>Здравствуйте Alex77, Вы писали:
A>>У меня мало опыта программирования на сях, поэтому я понять не могу почему более двух return per function плохо.
A>>Чем это плохо, объсните пожалуйста.
A>...
A>Если это вопрос ко мне, то только одно предположение — плохой стиль программирования.
A>Хотя в той же MSDN-е полно примеров, где return втречается гораздо больше 2-х раз.
Alex77, не воспринимайте это всё в серьёз, это же форум про юмор
A>Чем это плохо, объсните пожалуйста.
Понимаете, Alex77, обычно процедура на C++ имеет такую структуру:
1. проверка аргументов
(тут может быть return, ничего страшного)
2. Выделение временных ресурсов
3. Изменение состояния объекта
4. Освобождение ресурсов.
Так вот, если хочется поставить return, но выделение каких-либо
ресурсов уже проихошло, то чистить их приходится перед каждым из
return'ов. В Вашем примере это будет N вызовов free(pData);
И не дай бог, захочется переименовать pData или что подобное.
В любом случае, код распухает, вероятность ошибки увеличивается.
Впрочем, на этом этапе это еще не так страшно. Тут нам на помощь
придут всевозможные "умные" указатели и обертки над хендлами.
А вот когда дело доходит до изменения внутреннего состояния объекта,
тут лишний выход по ошибке может оставить объект в таком виде,
что он потом где-то очень далего-далего испортится и Вы будите
долго-долго искать причину. Не факт, что если писать код без return'ов,
такого не произойдет, но мой жизненный опыт подтверждает:
return посреди метода чаще приводит объекты в неустойчивое состояние.
ОСОБЕННО, если метод разрабатывал один человек, а return потом
вставил другой.
Вот. И чтобы логика процедуры (инициализация-изменение-освобождение)
не нарушалась, перед return нужно освободить все выделенные ресурсы.
Чем ближе к финишу, тем болше дублированного кода. Тем больше строк
кода вообще.
Павел.
S>А вот когда дело доходит до изменения внутреннего состояния объекта,
какого объекта?
IT>IT production представляет: "GOTO must die!"
IT>(навеяно топиком 'Выйти из двух циклов сразу')
IT>IT production представляет: "GOTO must die!"
IT>(навеяно топиком 'Выйти из двух циклов сразу')
На последнем кадре у бедного готика такое удивленное лицо!!!
K>На последнем кадре у бедного готика такое удивленное лицо!!!
Не, это подстава. GOTO остался жив и, вероятно, даже здоров. На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO. Наверное, она попала вместо ненавидимой многими программистами конструкции TODO
А может, кто-то из героев еще и на машинке крестиком вышивать умеет
Kaa>Не, это подстава. GOTO остался жив и, вероятно, даже здоров. На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO. Наверное, она попала вместо ненавидимой многими программистами конструкции TODO
Того — это адмирал, который побил Рожественского у Цусимы. Вот и его очередь пришла!
Kaa>На последнем кадре отчетливо видно, что повержена осталась невалидная конструкция TOGO.
TOGO — это стандартная конструкция в американских фастфудах, означающая "с собой"
Kaa>А может, кто-то из героев еще и на машинке крестиком вышивать умеет
На дотнете сишарпиком как минимум двое
IT>IT production представляет: "GOTO must die!"
Самое обидное, что не того прирезали-то... Охотились на GOTO, а на последней картинке на шампуре TOGO... Вот так всегда — хотят люди сделать что-то хорошее, а страдают невинные
В этом суть технологии NET
IT>IT production представляет: "GOTO must die!"
Интересно минусы за что? Это ведь юмор.
IT>>IT production представляет: "GOTO must die!"
А>Интересно минусы за что? Это ведь юмор.
Не раскрыта тема Немерле.
IT>Здравствуйте, <Аноним>, Вы писали:
IT>>>IT production представляет: "GOTO must die!"
А>>Интересно минусы за что? Это ведь юмор.
IT>Не раскрыта тема Немерле.
Если серьёзно, я просто восхищён самой техникой рисования,
а именно тонкостями
— передача эмоций
— постановка сцен(масштабы и т.д.)
— акцент на деталях.
очень понравилось.
Думаю вышел бы не плохой мультипликатор.
MQ>...некрофилы...
MQ>
Ну, раз ужподняли, надо актуализировать...
Убрать Rotor, Добавить Nemerle, оператор выхода из двойного цикла...
IT>IT production представляет: "GOTO must die!"
translate.ru
"пойдите в, должен умереть"
IT>IT production представляет: "GOTO must die!"
А продолжение комиксов планируется?
IT>>IT production представляет: "GOTO must die!"
RT>А продолжение комиксов планируется?
Лет через пять напомни
IT>Здравствуйте, RoloTomasi, Вы писали:
IT>>>IT production представляет: "GOTO must die!"
RT>>А продолжение комиксов планируется?
IT>Лет через пять напомни
Ну уже напомнили. Через 7 лет (блин, даже не вериться, что все это так давно было). А комикс действительно классный, хотелось еще таких. Говорят, что после средних лет у человека начинают творческие способности наиболее актуализироваться. Многие с возрастом вдруг начинают писать, рисовать. Вот мы и ждем от IT — раз талант есть, должен же он в конце концов проявиться и нас всех порадовать.