|
|
Результаты опроса: Знакомы ли с конструкцией GOTO? | |||
Помню Goto но давно не использую | 7 | 58.33% | |
Никогда не использовал такую конструкцию | 3 | 25.00% | |
Применяю и сейчас | 2 | 16.67% | |
Голосовавшие: 12. Вы ещё не голосовали в этом опросе |
|
Рейтинг 5.00/11: |
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
1 | |
Goto10.11.2017, 02:42. Показов 2157. Ответов 39
Метки нет (Все метки)
Добрый день, у меня очередной "мини-опрос":
Вы еще застали Goto? Помните как им пользоваться? или уже забыли окончательно или даже никогда не учили? А может применяете где-нибудь до сих пор? Пишу язык, где goto является основой языка (чем-то напоминает ассемблер), пытаюсь где это возможно избавиться от него, но это далеко не всегда реально... (и дает некоторые бонусы не доступные другим языкам) нашел тему (очень длинная, вычитываю по немногу): Goto - за и против там (2005г) 51/48% против гото на сотню опрошеных (=не однозначно). но мне нужна сегодняшняя статистика!
0
|
10.11.2017, 02:42 | |
Ответы с готовыми решениями:
39
Как избавится от GoTo Превращение кода с goto в код без goto От goto к while goto |
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
|
|
11.11.2017, 17:32 | 3 |
1
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|
11.11.2017, 20:22 | 4 |
Goto - это просто оператор языка. Если он нужен, то им нужно пользоваться. Если он не нужен, то им не нужно пользоваться. Все очень просто, и странно, что это требует специального обсуждения.
Как часто бывает в программировании, одна и та же задача может быть решена по-разному. И только самому программисту выбирать наиболее подходящий способ решения. Тут нет "неправильных" операторов - может быть неправильный подход к решению задачи. Вдобавок, многое зависит и от самого языка программирования. В некоторых языках такого оператора нет совсем, а вот в ассемблере вы без него вообще ничего не сделаете. Так что странно, что предлагается голосовать за использование оператора GOTO
3
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
11.11.2017, 23:27 [ТС] | 5 |
Странно! был уверен что прочитал 2005. Глюк или на дату регистрации чью-то смотрел...
Работал на java-фирме где были очень жетски по отношению к правильности/чистоте кода! Да и население было "прошито" подобными идеями/стандартами. И здесь влипал в подобные споры... например меня убеждали в том что в домашних проектах правильно/неоходимо/безальтернативно пользоваться GIT, не слушая моих доводов... Мой язык по структуре сильно напоминает ассемлер, хоть и является вполне высокоуровневым (и даже в теории возможно ООП). Оператор Goto является ядром языка, и даже операторы цикла на него похожи (требуют ручного указания строки окончания). Вот и хочу прощупать отношение окружающих/местных к этому оператору... Не удивлюсь если в нынешних школах даже не учат такой конструкции!
1
|
11.11.2017, 23:31 | 6 |
Вы хотите снова на эту тему поспорить?
Доводы ваши, точнее даже утверждения, такие:
0
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
12.11.2017, 00:02 [ТС] | 7 |
Вот об этом консерватизме я и говорил... (или любви к стандартам) хотел узнать как с этим в отношении goto!
Не по теме: Вообще-то это было лично мое мнение, основано на лично-моем опыте. мне никогда не приходилось "откатывать" за более чем 10 лет работы. Я приводил доводы за полную архивацию, но вы все равно считали архивацию "детским садом" и открыто это говорили. И это не значит что я "такой тупой что даже не понимаю таких простых вещей" - это просто другой подход к хранению истории версий! (мне она нужна ТОЛЬКО для коллекции и подсчета версии "по дням работы с кодом"). Без нынешних "стандартов"! p.s. гит я знаю и в командах пользуюсь, но для своих маленьких одиночных портабл- проэектов предпочитаю 7z... Страшно представить что "такие как вы" будут высказывать по поводу нового и современного (а не привычного старичка-ассемлера) языка основанного на goto...
0
|
12.11.2017, 00:17 | 8 |
Это не консерватизм.
Была практика применения. Постепенно люди осознали, что эта практика приводит к говнокоду. И решили её избегать. А чтобы каждому новичку не объяснять историю возникновения, которая требует понимания кучи деталей, о которых ему тоже придётся рассказывать, просто сократили до "избегай и всё!". Согласен. Это ваше мнение. И если бы вы хотели работать более эффективно, вы бы его изменили. Программисты вообще ленивые и хотят упростить себе жизнь. А вы, как я понял из предыдущих тем, почему-то к упрощению не стремитесь. Ну, дело ваше, мне вас из этого болота вытаскивать совершенно незачем... Да, в данном случае детсад. Или каменный век. Про стандарты см. выше, в начале этого поста. Нет, не знаете. Видно по постам в той теме. Поэтому и 7z применяете до сих пор. Покажите мне современный язык, в котором без goto никуда, он органично встроен и не приводит к говнокоду. Только не надо ссылаться на ассемблеры. C/C++/C# от необходимости goto избавлены, а в Java goto вообще удалён.
0
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
12.11.2017, 00:35 [ТС] | 9 |
Вот поэтому и хотел узнать уровень консерватизма по goto... если вы от одного предложения по git так заводитесь, то представляю себе какой батхерт начнется от "языка где без goto никуда"
Не по теме: под "современным" я имел созданный сегодня, а не 20-30 лет назад... а не "по всем современным стандартам"
0
|
12.11.2017, 01:04 | 10 |
Это бессмысленно узнавать, в надежде что goto обрёл популярность. Ничего не изменилось.
0
|
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
|
||||||
12.11.2017, 01:09 | 11 | |||||
Все разговоры о вреде goto основаны на непонимании статьи Э. Дейкстры "Структурное программирование", в которой автор критикует не столько оператор, сколько фзык фортран и его неумелое использование. В моей практике лишь однажды был случай когда дырку пришлось затыкать goto. В частности, в горе-конторе где я имел несчастья трудиться использовалась крякнутая (да!) среда Delphi. И, толи кракеры что-то недомудрили, толи компилятор споймал неудобное расположение звезд, но только в одном месте кода на одних и тех же входных данных процедура срабатывала буквально через раз. Решение было найдено, и оно просто шокирует:
3
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
12.11.2017, 01:11 [ТС] | 12 |
плохие тоже... как и вредные привычки вроде курения...
а я спрашиваю чьи-то советы? или просто собираю статистику по "консерватизму"? а вы все напрашиваетесь на выкладывание языка сюда методом "а вам слабо"? отвечаю еще раз - в ближайшие несколько лет выпущен не будет. В ближайшие пол года начнет работать внутри узкоспециализированной программы у 3х-5ти пользоваталей. О "распространении" поговорим минимум еще через 5 лет... меня вполне устраивает!
0
|
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
|
|
12.11.2017, 01:24 | 13 |
andyj, мне кажется что ты как автор сам можешь решить что реализовать в своем языке. Тем более что реализация того же goto может быть совсем далека от стандартных ожиданий. А в сочетании с макросистемой даже обычный goto способен творить чудеса, см loop.
1
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
12.11.2017, 01:52 [ТС] | 14 |
Согласен, но меня смущает "предвзятое отношение" к goto в современных языках. Его многие считают чуть-ли "пережитком прошлого" от которого не откзались лишь для поддержки сверх-устаревших исходников (которые лень переписывать).
Вариации loop в каждой следующей версии java лишь получают развитие, а goto все еще остается "зарезервированным словом без реализации". Не по теме: Согласен, я нашел довольно необычное и очень перспективное направление основанное на goto. Под него пришлось перевернуть всю логику простейших интерпретаторов, но... это как клинопись по сравнению с современными ООП-языками - потенциал огромный, но прийдется учитьсся почти с нуля. По немногу на этой "клинописи" пишу аналоги if/then, for/end и begin/end, но и там остаются "раритеты goto" - обязательное "ручное" указание "конца блока". Даже не представляю себе как от этого избавиться! Поэтому и решил оценить (хотя-бы здесь) "уровень предвзятости к goto"...
0
|
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
|
|
12.11.2017, 02:31 | 15 |
Пусть не смущает. Люди, самостоятельно ограничивающие себя стереотипами, не понимая этого, лишают себя возможности "озарения", "вдохновения", "полета мысли". Это даже более глубокий вопрос, чем просто оператор, это — способ мышления, склонность к перфекционизму и простоте. В любом случае это положительное психическое отклонение от нормы.
1
|
andyj
|
12.11.2017, 05:25
[ТС]
#16
|
Не по теме: Не все языки ведут к "простоте"... иногда просто нужен "результат добытый хоть как-нибудь"! (как с "нейронными сетями"). Боюсь моя методика - это попытка развить и опробовать один из таких подходов! (почему-то не тронутый остальными - может из-за сложности разработки "среды" и отказа от привычных тектовых редакторов) Если получится - можно будет начать "упрощать", "облагораживать", вырабатывать более понятные методики, доводить до ума редактор... пока-же его тяжело понимать даже на втором десятке команд! Хотя он уже начинает приближаться по сложности к школьным/учебным языкам, с одним ограничением - обязательное понимание принципов goto! p.s. смешно, но я еще не определился даже с командой "прерывания программы"... решил "отложить выбор на потом". Поэтому пока ее можно прервать через любое из: Stop, Exit, return, close, break, terminate и halt... позднее подумаю над вводом "стандартов"... или устрою еще одно голосование :)
0
|
4485 / 2720 / 485
Регистрация: 28.04.2012
Сообщений: 8,585
|
|
12.11.2017, 15:21 | 17 |
1
|
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
|
|
12.11.2017, 15:44 | 18 |
Я не помню точно какая, но помню что процедура нативная. И соотеветственно рефакторинг заменился бы на реинжиниринг. Впрочем как и руководству, так и мне тогда вообще до лампочки как продукт реализован, главное чтобы работал.
0
|
4485 / 2720 / 485
Регистрация: 28.04.2012
Сообщений: 8,585
|
|
12.11.2017, 15:51 | 19 |
Даже в этом случае не вижу причин, почему использование goto здесь лучше обычного цикла.
0
|
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
12.11.2017, 15:57 [ТС] | 20 |
У Делфи были иногда такие глюки... можно несколько дней убить чтобы понять как это обойти ибо не смотря на логику "f:=2+2;" вызывает критическую ошибку и терминалит программу... Проще было написать костыль за пол часа такой, что самому стыдно, но обойти глюк компилятора! Много раз сталкивался (правда гото использовать для этого не приходилось)
1
|
12.11.2017, 15:57 | |
12.11.2017, 15:57 | |
Помогаю со студенческими работами здесь
20
Goto goto GoTo goto, goto, goto в Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |