Если это не на 1 апреля то: 1) То есть Дийкстра и другие воспарили из-за goto ? А может вопреки?
2) Каким образом это помогает понять на интуитивном уровне? Очень удобно наверное понимать как и куда прыгает что-то верно? При том что прыгнуть оно может вообще куда угодно?
3) Нет плохих языков. Язык это инструмент. Он решает задачи. Ненужно говорить что болгарка это плохой молоток. И у С++ хватает проблем причем их на столько много что диву даешься и авторы стандартов уже головы ломают как эту мусорку чинить оставляя обратную совместимость
4) Вы так отлично говорите о быстрых языках программирования что забываете что сами себя облапошили с goto. А теперь давайте вместе угадывать на сколько удобно будет процессору предиктить куда же прыгнет goto и при этом заранее положить в кеш или стэк даже не говоря о том чтобы прям в конвеере иметь инструкции дальнейшие. Там может быть все на столько неожидано что придется обращаться к хипу и тогда замечательно побежит ваша производительность. Просто шикарно!
При этом ваши разговоры о том что сейчас это десятки строк с циклами и тд...вы серьезно? А вы не думали что циклы отлично параллелятся на процессоре например? А как параллелится ваш не предиктивный goto для компилятора?
Понимать как исполнитель прыгает из строки с goto xxx в строку с xxx: очень просто, совпадение xxx в обеих строках интуитивно понятно обладателям интеллекта.
Не из-за или вопреки goto, а благодаря тому, что в начале обучения никто не прикладывал усилия для того, чтобы они вместо использования минимального базиса для создания любых программ в первый же день обучения, занимались освоением широкого базиса, который хоть и позволяет выразить эквивалентные алгоритмы, накладывает искусственные ограничения и требует больше времени для изучения.
Какого широкого? Узнать пару циклов, свич и тд? Это дофига широко согласен. Минимальный базис в виде goto даст лучше выразить эквивалентный алгоритм? Да что за дичь я читаю гсоподи. Да иногда goto удобен но это крайне иногда в большинстве алгоритмов goto ненужен при этом без потери выразительности и при этом с большей читабильностью. При этом нормальный код это не "умно сделанный" код а баланс между быстротой и поддерживаемостью и читабильностью. С goto ты в лучшем случае чуть чуть выйграешь в компактности кода и потеряешь во всем остальном.
То есть целых 2-3 недели ты изучал язык чтобы понять этот самый широкий базис, вместо того чтобы изучить минимальный базис и получить безграничные возможности, а далее лишь изучать способы улучшить читаемость и сопровождаемость кода?
Я и так получил безграничные возможности изучив базис языка делав при том нормальные игры с читабильным кодом котоырй я смогу поддерживать. Делая играбильную игру а не те ссылки что ты кидал. Которые особенно для 6-8 летнего не интересны абсолютно. Где что-то прыгает в терминале
Как раз наоборот, 6-8 летним все равно, прыгает там буква или 3д Марио, у них воображение работает на полную катушку, и это я из опыта обучения 5-8 летних детей говорю а не выдумываю
Ты работал с 6-8 летними? Я да. Им похер. Ладно в мои 6-8 лет там было бы мне весело. Потмоу что тогда и технологии и все остальное были далеко позади. Мне было весело тогда что что-то прыгает в терминале. Но сегодняшним 6-8 летним далеко плевать. Им даже в майнкрафте механизмы будет интереснее собирать из поршней и редстоуна.
Это самое смешное, в майнкрафте собирать механизмы сложнее чем писать игры на C++. Как только дети это понимают, их отношение к программированию меняется. Это не сложно, нудно и непонятно, а очень просто, весело и интересно
С++ один из самых комплексных мейнстримных языковПочему ты (и не только ты) сравниваешь весь С++ с Майнкрафт, а не ту часть, что предлагает автор на начальных этапах обучения?
Потому что детям это весело. Потому что детям не весело смотреть как просто текст в консоли сложными путями выходит. Им интереснее когда просто и эффектно. А дальше можно заинтересовать
Нет ничего ниже чем ассемблер. Но всегда быстрее учишься тогда когда тебе интересно. И люди делают простейшие механизмы. Берут смотрят уроки на ютуб и тд. И начинают понимать это уже на интуитивном уровне
Ниже ассемблера - это когда из блоков собираешь процессор в Майнкрафте, я про это. Видел, как кто-то собирал элементы И и ИЛИ и сделал из них калькулятор.
Вот представь, ребенок тратит сотни часов, в совершенстве овладевает созданием механизмов в майнкрафте, а теперь перед ним возникает новая задача: взять какой-нибудь нормальный язык программирования и написать на нем игру. Хотя бы тетрис. И вот тут оказывается, что все эти часы в майнкрафте плохо ему не помогают. Перед ним книжки, которые нужно прочесть до 200-ой страницы прежде чем получится вывести на экран строку текста через cout и ввести другую строку через cin, что все еще бесконечно далеко от тетриса... тогда вменяемый ребенок смотрит на игровые движки типа unity и оказывается, что нужно не просто уметь писать код, но и понимать как работает движок, а сделать на нем тетрис настолько сложно, что лучше даже не начинать, и ребенок не начинает, он берет unreal engine и делает на нем шутер, ну то есть расставляет врагов по сгенерированному уровню. Итак, потрачены сотни часов, программировать человек как не умел так и не научился.
Ему они и не должны помогать. Они должны заинтересовать. Программист всегда учится. На твоем примере можно сказать "представь что ребенок учится делать игры и учит С++ а это ему нифига не помогает так как надо научится еще и шейдеры писать научится понимать тот же директХ алгоритмы и структуры данных и так далее". И для того чтобы написать тетррис и взять юнити даже кодить уметь ненадо. Есть визуальный язык программирвоания что в юнити что в анрил. Не говоря уже о всяких гейм мейкерах. Важно заинтересовать ребенка чтобы ему было интересно этому ХОТЕТЬ обучится.
И не важно сколько часов потратит человек. Важно чтобы ему было интересно. Если тебе не интересно то даже простые вещи будут длится те же самые сотни часов. Вспомни как ты чему-то учился в школе. Как быстро ты понимал что-то и изучал когда был хороший учитель или интересная тебе тема и когда было то что тебе не интересно?
как-то у меня не укладывается....не достаточно но необходимо. Ну как бы да...да? Все верно. Но только это необходимо. Все верно. Если не заинтересуешь то все - пиши пропало.
Это достаточно чтобы заинтересовать и продолжить дальше. Например взять гейм мейкер или тот же годот. В котором есть и блочное программирование и скриптовый язык доволньо простой. А не С++ в терминале
То есть ты тратишь сотню часов в майнкрафте чтобы заинтересовать и потом этот опыт выбрасываешь и снова тратишь сотню часов в гейм мейкере, чтобы потом сказать, что в нем нельзя сделать ни 3д шутер типа Doom ни стратегию типа старкрафта ни рпг типа Skyrim ? Ок, и потом все равно выбросить все и начать изучать что?
Да все так. Так и работает обучение. Ты идешь по ступенькам не возвращаясь назад. А ты решил сразу Unreal Engine изучать? Удачи братан.
Не что-то простое можно вот в юнити набросать там тоже визуальный скриптинг есть.
Да и 3д шутер можно сделать в целом в геймейкере. Да и в одно рыло ты ни шутер как дум не сделашеь ни стратегию как старкрафт ни скайрим.
Ты для начала сделай хоть что-то похожее на игру а потом иди дальше. Ты слишком высоко целишь. Ты как мой друг которого я учил рисовать и он сразу себе купил планшет синтик и пытался рисовать в фотошопе, говоря что так делают профессионалы. Но ты сначала рисовать научись. А фотошоп и синтик это уже инструмент для профессионала, они только мешать будут в начале(разве что синтик добавит чуть чуть больше удобства и то спорно)
Вот смотри, после майнкрафта программировать не умеют люди и игру сделать не могут. После написания первых 3-4 программ на C++(музыка/рисование, синтезатор, игра) люди могут программировать и уже сделали одну игру. После 100 часов майнкрафта они умеют играть в майнкрафт, но не умеют делать игры и им это сложно. После 100 часов программирования на С++ они умеют делать разные игры и им это легко.
1. Я сказал заинтересовать майнкрафтом тем же и работать как с программированием а не делать на нем игру
2. Написание вышеперечисленных программ (музыка/рисование/синтезатор/игра) займет у тебя пару лет если изучать все это с нуля. Ну или если ты уже увлечен и сидишь сам занимаешься не меньше полу года. И это будет максимально простые вещи а не что-то серьезное. Но это если ты сам уже увлечен и заинтересован.
3. После 100 часов программирования на С++ ты уверен что ты сможешь хотябы одну игру написать? Не говоря уже про то чтобы делать "разные игры" и чтобы "им это было легко"?
2 вечера на игру в терминале? Или что это за игра? И что это за музыка/минтезатор/рисование? Если это максимально простые фигни то да вопросов нет можно взять библиотечку и нажать play. Но это не я тут в пример приводил дум, скайрим и так далее
Так в этом вся разница: из майнкрафта дум не делается никак. А из простой 2д игры - выйдет, можно сначала сделать игру в 2д, изучить 3д графику и поменять тип графики в игре, при этом 2д изображение даже останется в игре в качестве карты. Разница именно в том что начав делать игру на C++ ее возможно доделать, независимо от того что это за игра. Нет таких игр которые в принципе возможно сделать и при этом нельзя сделать на С++
Я хз претворяешься ты или как. Ты по кругу ходишь. Прочитай выше я уже об этом все говорил. Буквально на все такие же вопросы все уже ответил. А ты по кругу идешь
Процессору максимально удобно предсказывать куда прыгнет goto, это связано с тем, что место перехода известно не только во время выполнения, оно известно на этапе компиляции и явно указано в результирующем машинном коде. Безусловный переход предсказывается со 100% точностью, ведь заранее известно что он произойдёт и процессор может начать спекулятивное выполнение кода расположенного после точки перехода.
Есть плохие языки. Язык это инструмент, созданный для решения определенных задач. Как отвертка. Хорошая отвертка сделана из высокопрочного сплава и ее передают из поколения в поколение, от деда внукам, а плохая сделана из незакаленного железа и деформируется еще до того как ей закрутят первую гайку. Так и плохие языки сделаны для того же, для чего и хорошие, но сделаны плохо: программы на них работают медленно, многие вещи вообще нельзя написать, в процессе развития между версиями 2 и 3 одного языка возникает полная несовместимость.
Если это не на 1 апреля то:
1) То есть Дийкстра и другие воспарили из-за goto ? А может вопреки?
2) Каким образом это помогает понять на интуитивном уровне? Очень удобно наверное понимать как и куда прыгает что-то верно? При том что прыгнуть оно может вообще куда угодно?
3) Нет плохих языков. Язык это инструмент. Он решает задачи. Ненужно говорить что болгарка это плохой молоток. И у С++ хватает проблем причем их на столько много что диву даешься и авторы стандартов уже головы ломают как эту мусорку чинить оставляя обратную совместимость
4) Вы так отлично говорите о быстрых языках программирования что забываете что сами себя облапошили с goto. А теперь давайте вместе угадывать на сколько удобно будет процессору предиктить куда же прыгнет goto и при этом заранее положить в кеш или стэк даже не говоря о том чтобы прям в конвеере иметь инструкции дальнейшие. Там может быть все на столько неожидано что придется обращаться к хипу и тогда замечательно побежит ваша производительность. Просто шикарно!
При этом ваши разговоры о том что сейчас это десятки строк с циклами и тд...вы серьезно? А вы не думали что циклы отлично параллелятся на процессоре например? А как параллелится ваш не предиктивный goto для компилятора?
Понимать как исполнитель прыгает из строки с goto xxx в строку с xxx: очень просто, совпадение xxx в обеих строках интуитивно понятно обладателям интеллекта.
Не из-за или вопреки goto, а благодаря тому, что в начале обучения никто не прикладывал усилия для того, чтобы они вместо использования минимального базиса для создания любых программ в первый же день обучения, занимались освоением широкого базиса, который хоть и позволяет выразить эквивалентные алгоритмы, накладывает искусственные ограничения и требует больше времени для изучения.
Какого широкого? Узнать пару циклов, свич и тд? Это дофига широко согласен. Минимальный базис в виде goto даст лучше выразить эквивалентный алгоритм? Да что за дичь я читаю гсоподи. Да иногда goto удобен но это крайне иногда в большинстве алгоритмов goto ненужен при этом без потери выразительности и при этом с большей читабильностью. При этом нормальный код это не "умно сделанный" код а баланс между быстротой и поддерживаемостью и читабильностью. С goto ты в лучшем случае чуть чуть выйграешь в компактности кода и потеряешь во всем остальном.
Сколько дней ты изучал с++ и писал hello world прежде чем сумел написать на нем простенькую 2д игру и сколько тебе было тогда лет?
недели 2-3 и было лет 17-18
А вот было бы круто, если бы ты смог сделать это за 1 день и было тебе тогда лет 6-8
Но вопрос некорректен так как у меня был базис паскаля
То есть целых 2-3 недели ты изучал язык чтобы понять этот самый широкий базис, вместо того чтобы изучить минимальный базис и получить безграничные возможности, а далее лишь изучать способы улучшить читаемость и сопровождаемость кода?
Я и так получил безграничные возможности изучив базис языка делав при том нормальные игры с читабильным кодом котоырй я смогу поддерживать. Делая играбильную игру а не те ссылки что ты кидал. Которые особенно для 6-8 летнего не интересны абсолютно. Где что-то прыгает в терминале
Как раз наоборот, 6-8 летним все равно, прыгает там буква или 3д Марио, у них воображение работает на полную катушку, и это я из опыта обучения 5-8 летних детей говорю а не выдумываю
Ты работал с 6-8 летними? Я да. Им похер. Ладно в мои 6-8 лет там было бы мне весело. Потмоу что тогда и технологии и все остальное были далеко позади. Мне было весело тогда что что-то прыгает в терминале. Но сегодняшним 6-8 летним далеко плевать. Им даже в майнкрафте механизмы будет интереснее собирать из поршней и редстоуна.
Это самое смешное, в майнкрафте собирать механизмы сложнее чем писать игры на C++. Как только дети это понимают, их отношение к программированию меняется. Это не сложно, нудно и непонятно, а очень просто, весело и интересно
Ничего глупее не слышал. С++ один из самых комплексных мейнстримных языков а ты мне говоришь что создание чего-то из редстоуна сложнее?
Да. Именно так.
Понимаю. Тогда разговор можем не продолжать)
С++ один из самых комплексных мейнстримных языковПочему ты (и не только ты) сравниваешь весь С++ с Майнкрафт, а не ту часть, что предлагает автор на начальных этапах обучения?
Потому что детям это весело. Потому что детям не весело смотреть как просто текст в консоли сложными путями выходит. Им интереснее когда просто и эффектно. А дальше можно заинтересовать
Разве в Майнкрафте не приходится собирать из блоков И и ИЛИ? Т.е. это уровень даже ниже, чем ассемблер. Или там есть и скриптовый язык?
Нет ничего ниже чем ассемблер. Но всегда быстрее учишься тогда когда тебе интересно. И люди делают простейшие механизмы. Берут смотрят уроки на ютуб и тд. И начинают понимать это уже на интуитивном уровне
Ниже ассемблера - это когда из блоков собираешь процессор в Майнкрафте, я про это. Видел, как кто-то собирал элементы И и ИЛИ и сделал из них калькулятор.
Это не ниже процессора это обычная булева логика. Да делали лбди калькуляторы. Но детям хватает сделать какой-нибудь механизм что откроет дверь
Вот представь, ребенок тратит сотни часов, в совершенстве овладевает созданием механизмов в майнкрафте, а теперь перед ним возникает новая задача: взять какой-нибудь нормальный язык программирования и написать на нем игру. Хотя бы тетрис. И вот тут оказывается, что все эти часы в майнкрафте плохо ему не помогают. Перед ним книжки, которые нужно прочесть до 200-ой страницы прежде чем получится вывести на экран строку текста через cout и ввести другую строку через cin, что все еще бесконечно далеко от тетриса... тогда вменяемый ребенок смотрит на игровые движки типа unity и оказывается, что нужно не просто уметь писать код, но и понимать как работает движок, а сделать на нем тетрис настолько сложно, что лучше даже не начинать, и ребенок не начинает, он берет unreal engine и делает на нем шутер, ну то есть расставляет врагов по сгенерированному уровню. Итак, потрачены сотни часов, программировать человек как не умел так и не научился.
Ему они и не должны помогать. Они должны заинтересовать. Программист всегда учится. На твоем примере можно сказать "представь что ребенок учится делать игры и учит С++ а это ему нифига не помогает так как надо научится еще и шейдеры писать научится понимать тот же директХ алгоритмы и структуры данных и так далее". И для того чтобы написать тетррис и взять юнити даже кодить уметь ненадо. Есть визуальный язык программирвоания что в юнити что в анрил. Не говоря уже о всяких гейм мейкерах. Важно заинтересовать ребенка чтобы ему было интересно этому ХОТЕТЬ обучится.
И не важно сколько часов потратит человек. Важно чтобы ему было интересно. Если тебе не интересно то даже простые вещи будут длится те же самые сотни часов. Вспомни как ты чему-то учился в школе. Как быстро ты понимал что-то и изучал когда был хороший учитель или интересная тебе тема и когда было то что тебе не интересно?
Вот в том и дело, что заинтересовать недостаточно, это лишь необходимо
как-то у меня не укладывается....не достаточно но необходимо. Ну как бы да...да? Все верно. Но только это необходимо. Все верно. Если не заинтересуешь то все - пиши пропало.
Но если заинтересуешь майнкрафтом, этого не достаточно для того, чтобы человек научился программировать.
Это достаточно чтобы заинтересовать и продолжить дальше. Например взять гейм мейкер или тот же годот. В котором есть и блочное программирование и скриптовый язык доволньо простой. А не С++ в терминале
То есть ты тратишь сотню часов в майнкрафте чтобы заинтересовать и потом этот опыт выбрасываешь и снова тратишь сотню часов в гейм мейкере, чтобы потом сказать, что в нем нельзя сделать ни 3д шутер типа Doom ни стратегию типа старкрафта ни рпг типа Skyrim ? Ок, и потом все равно выбросить все и начать изучать что?
Да все так. Так и работает обучение. Ты идешь по ступенькам не возвращаясь назад. А ты решил сразу Unreal Engine изучать? Удачи братан.
Не что-то простое можно вот в юнити набросать там тоже визуальный скриптинг есть.
Да и 3д шутер можно сделать в целом в геймейкере. Да и в одно рыло ты ни шутер как дум не сделашеь ни стратегию как старкрафт ни скайрим.
Ты для начала сделай хоть что-то похожее на игру а потом иди дальше. Ты слишком высоко целишь. Ты как мой друг которого я учил рисовать и он сразу себе купил планшет синтик и пытался рисовать в фотошопе, говоря что так делают профессионалы. Но ты сначала рисовать научись. А фотошоп и синтик это уже инструмент для профессионала, они только мешать будут в начале(разве что синтик добавит чуть чуть больше удобства и то спорно)
Вот смотри, после майнкрафта программировать не умеют люди и игру сделать не могут. После написания первых 3-4 программ на C++(музыка/рисование, синтезатор, игра) люди могут программировать и уже сделали одну игру. После 100 часов майнкрафта они умеют играть в майнкрафт, но не умеют делать игры и им это сложно. После 100 часов программирования на С++ они умеют делать разные игры и им это легко.
1. Я сказал заинтересовать майнкрафтом тем же и работать как с программированием а не делать на нем игру
2. Написание вышеперечисленных программ (музыка/рисование/синтезатор/игра) займет у тебя пару лет если изучать все это с нуля. Ну или если ты уже увлечен и сидишь сам занимаешься не меньше полу года. И это будет максимально простые вещи а не что-то серьезное. Но это если ты сам уже увлечен и заинтересован.
3. После 100 часов программирования на С++ ты уверен что ты сможешь хотябы одну игру написать? Не говоря уже про то чтобы делать "разные игры" и чтобы "им это было легко"?
Какую-то фантастику ты рассказываешь
Ого! 2 года! Хорошо, что мы не спрашивали тебя, а просто брали и писали код и у нас ушло 2 вечера вместо 2 лет.
2 вечера на игру в терминале? Или что это за игра? И что это за музыка/минтезатор/рисование? Если это максимально простые фигни то да вопросов нет можно взять библиотечку и нажать play. Но это не я тут в пример приводил дум, скайрим и так далее
Так в этом вся разница: из майнкрафта дум не делается никак. А из простой 2д игры - выйдет, можно сначала сделать игру в 2д, изучить 3д графику и поменять тип графики в игре, при этом 2д изображение даже останется в игре в качестве карты. Разница именно в том что начав делать игру на C++ ее возможно доделать, независимо от того что это за игра. Нет таких игр которые в принципе возможно сделать и при этом нельзя сделать на С++
Я хз претворяешься ты или как. Ты по кругу ходишь. Прочитай выше я уже об этом все говорил. Буквально на все такие же вопросы все уже ответил. А ты по кругу идешь
Вопросы? В сообщении на которое ты ответил вопросов не содержится
Но вопрос вообще непонятен к чему это? Для начала выучи базовые вещи языка а затем уже бери движок и изучай
Верно. Базовые вещи языка - int, if и goto. Это базис. Выучивается за 3 минуты. И дальше изучай библиотеку.
Процессору максимально удобно предсказывать куда прыгнет goto, это связано с тем, что место перехода известно не только во время выполнения, оно известно на этапе компиляции и явно указано в результирующем машинном коде. Безусловный переход предсказывается со 100% точностью, ведь заранее известно что он произойдёт и процессор может начать спекулятивное выполнение кода расположенного после точки перехода.
Есть плохие языки. Язык это инструмент, созданный для решения определенных задач. Как отвертка. Хорошая отвертка сделана из высокопрочного сплава и ее передают из поколения в поколение, от деда внукам, а плохая сделана из незакаленного железа и деформируется еще до того как ей закрутят первую гайку. Так и плохие языки сделаны для того же, для чего и хорошие, но сделаны плохо: программы на них работают медленно, многие вещи вообще нельзя написать, в процессе развития между версиями 2 и 3 одного языка возникает полная несовместимость.