Re: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 11:32
Оценка: 13 (2) +10 :))) :)
scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: vsb Казахстан  
Дата: 28.06.23 11:52
Оценка: +8 -1 :))
Лучше начинать с турбо паскаля. Проверенная методика.
Re[8]: Кто интересовался, как в 21 веке учить детей программированию?
От: vsb Казахстан  
Дата: 28.06.23 14:28
Оценка: 1 (1) +1 -2
Здравствуйте, Osaka, Вы писали:

vsb>>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.

O>Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)

В C# очень много лишнего. Что такое namespace? Что такое класс? Что такое static? Что такое void? Что такое string? Что такое []? Что такое args? Почему все эти скобки? Что такое System? Что означает точка? Что такое Console? Почему тут скобки круглые, тут квадратные, а тут фигурные?

И ответ "так надо" неправильный, потому, что у всех этих элементов есть своя функция. Которую объяснить на этом этапе невозможно. Это плохой подход для обучения. Обучать надо с нуля.

В первой программе на паскале ничего этого нет. Всё, что там есть это элементы базового синтаксиса, которые можно объяснить с нуля.

Я бы сказал, что идеален тут питон. print("Hello") и всё. В паскале всё же некая церемония есть, которую надо запомнить, но она минимальна и не несёт никаких скрытых смыслов.

vsb>>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.

O>Зачем вообще ставится задача "знать язык весь"? Что мешает спокойно находиться рядом с неизвестными возможностями, и трогать их только по мере узнавания? Ведь в реале именно так.

Если язык специально сдизайнен для этого, может и так. На практике я таких языков не знаю. Ты просто зайдёшь в любой библиотечный код и ничего не поймёшь. Особенно этим C++ грешит.

O>И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?


С без ассемблера понять практически невозможно. Там сразу со старта бьют по голове указателями. А указатели это адски сложная концепция для человека, который даже концепцию условного оператора не понимает. С сразу учить могут только очень одарённые люди. Остальным лучше этого не делать.
Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 11:53
Оценка: +3 -1
O>>javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.
scf>Как профессиональный разработчик, я соглашусь. Но чем он хуже бейсика в качестве первого языка?
Оба хуже.
Надо сразу приучаться к ООП и нормальному IDE с пошаговым отладчиком.
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:14
Оценка: -2 :)
vsb> Лучше начинать с турбо паскаля. Проверенная методика.

Лучше начинать с haskell, ближе к практике.
Re[6]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 28.06.23 12:56
Оценка: +2 -1
Здравствуйте, Osaka, Вы писали:

vsb>>Я не знаю ничего лучше паскаля в качестве первого языка. Из популярных — точно ничего нет.

O>Т. е. объективных доводов привести затруднительно?

1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.

2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.

3. Паскаль довольно близок к железу. Этот пункт мне объяснить сложновато, но если сравнивать с тем же пайтоном, то это просто разные уровни абстракции. Изучать программирование компьютеров нужно с того языка, который ближе к железу, а не дальше. Потом уже можно абстрагироваться, понимая эту абстракцию, а не считая её магией.

4. Паскаль это типизированный язык. Это очень правильно, чтобы сразу не приучать к плохому. Поэтому тут уже бейсик улетает.

5. В паскале есть всё для преподавания алгоритмов и структур данных, что должно происходит сразу же после освоения основ языка. Потому, что основа программирования это и есть алгоритмы и структуры данных.

Правильный курс:

1. Паскаль.

2. Алгоритмы и структуры данных.

3. Ассемблер какой-нибудь реальной не навороченной архитектуры. Раньше это была 8086, сегодня я бы предложил альтернативой ARM Cortex M0.

4. C.

5. POSIX, основы сетевого программирования.

Раньше я бы ещё добавил C++ и основы ООП, сейчас, думаю, что это лишнее, ООП это скорей антипаттерн и ему лучше вообще не обучать.

После этих пяти пунктов будет некоторая база, на которую уже можно добавлять промышленные знания.
Отредактировано 28.06.2023 12:59 vsb . Предыдущая версия . Еще …
Отредактировано 28.06.2023 12:58 vsb . Предыдущая версия .
Re[22]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 01.07.23 13:17
Оценка: 11 (1) +1
Здравствуйте, Serginio1, Вы писали:

S> R>ООП это прежде всего про инкапсуляцию, полиморфизм и наследование. Использование ООП совсем не подразумевает наличия развесистых абстракций и не проповедует сложность. А памяти было мало, да, хоть с ООП хоть без оного.


S> Но как раз их использовать проще когда она развесистая как в VCL. В итоге все упиралось в память.


В VLC, как раз, все довольно аскетично. Не раз бывали ситуации, когда хотелось иметь промежуточный класс в иерархиях.

S> А основная фишка Delphi это как раз менеджер памяти https://www.rsdn.org/article/Delphi/memmanager.xml


Ну конечно Кстати, в статье описан очень древний ММ. Чуть не два десятка лет назад дефолтным менеджером стал основанный на FastMM менеджер (пулы блоков различного размера помогающие бороться с фрагментацией и ускоряющие аллокации). К слову, кастомные менеджеры памяти были и для TP (для использования памяти за пределами 640Kb).

S> R>Что значит были? Они есть и сейчас, только давным-давно объявлены легаси, что, впрочем, не мешает их использовать.


S> Напомни как назывались. А то забыл совсем.


Так и называются Object Types.
avalon/3.0.2
Кто интересовался, как в 21 веке учить детей программированию?
От: scf  
Дата: 28.06.23 11:23
Оценка: 1 (1) +1
Сайт: https://processing.org/
Онлайн редактор: https://editor.p5js.org/

Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
Re[10]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 28.06.23 19:11
Оценка: :))
Здравствуйте, Osaka, Вы писали:

O> R>С тех самых, когда для написания низкоуровневого кода приходится прибегать к абстракциям (оксюморон)


O> Можно пример, как формулируется прикладная задача на лабу, одновременно простая в паскале и сложная в C#?


Ну вот смотри, элементарная вещь: передать параметром массив байтов любого размера. Эффективно. И чтобы и со стека и из кучи. В паскале это просто использование параметра — открытого массива. В шарпе? Массив — объект, спан/ридонлиспан<byte>. Перегрузка метода, либо два метода, либо спан-онли метод и кувырки с прыжками при передаче массива. Очень просто
avalon/3.0.2
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: Codealot Земля  
Дата: 28.06.23 21:18
Оценка: +1 :)
Здравствуйте, vsb, Вы писали:

vsb>ООП это скорей антипаттерн и ему лучше вообще не обучать.


Сектантов всегда тянет к детям.
Ад пуст, все бесы здесь.
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: scf  
Дата: 30.06.23 13:38
Оценка: +2
Здравствуйте, Serginio1, Вы писали:

S> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL



Как это не было, а Turbo Vision?

  картинка
Re[11]: Кто интересовался, как в 21 веке учить детей программированию?
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.06.23 13:20
Оценка: 4 (1)
Здравствуйте, rudzuk, Вы писали:
R>Ну вот смотри, элементарная вещь: передать параметром массив байтов любого размера. Эффективно. И чтобы и со стека и из кучи. В паскале это просто использование параметра — открытого массива. В шарпе? Массив — объект, спан/ридонлиспан<byte>. Перегрузка метода, либо два метода, либо спан-онли метод и кувырки с прыжками при передаче массива. Очень просто
Что за кувырки с прыжками?
https://dotnetfiddle.net/dV1mzq
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 14:34
Оценка: 2 (1)
Здравствуйте, rudzuk, Вы писали:


S>> __>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.


S>> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL


R>Ну да... А TurboVision на которой строились все борландовские IDE?

Ну давай сравним с VCL по количеству компонентов?
https://ru.wikipedia.org/wiki/Turbo_Vision

Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 14:38 Serginio1 . Предыдущая версия .
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: scf  
Дата: 28.06.23 11:54
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Лучше начинать с турбо паскаля. Проверенная методика.


С 9 класса — да. А вот с 5 — уже не уверен, что неокрепший детский ум поймёт преимущества статической типизации.
Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 12:07
Оценка: -1
vsb>>Лучше начинать с турбо паскаля. Проверенная методика.
Преподам разве что удобнее, не надо переучиваться с 1990х. А детям зачем эта историческая реконструкция, и неликвидные знания, с нею связанные?
scf>С 9 класса — да. А вот с 5 — уже не уверен, что неокрепший детский ум поймёт преимущества статической типизации.
Ориентироваться на эталонный средний ум — большая педагогическая ошибка.
Способные дети поймут, начнут сами применять, и будут выявлены быстрее, а менее способные как-нибудь сдадут свою лабу написав всё 1 простынёй в main() как на бейсике.
Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 12:16
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

vsb>> Лучше начинать с турбо паскаля. Проверенная методика.


ЭФ>Лучше начинать с haskell, ближе к практике.


ты жеш разочаровался в хаскле.
или любовь вспыхнула снова?
Re[5]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 12:25
Оценка: -1
Здравствуйте, Эйнсток Файр, Вы писали:

NB>> ты жеш разочаровался в хаскле.


ЭФ>Склероз. Я забыл, почему разочаровался, и теперь он мне снова кажется притягательным.


не стыдно предлагать детям язык, в котором можно разочароваться?
Re[7]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 13:15
Оценка: +1
vsb>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.
Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)
С каких конкретно задач C# становится менее "прост для старта"?
vsb>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.
Зачем вообще ставится задача "знать язык весь"? Что мешает спокойно находиться рядом с неизвестными возможностями, и трогать их только по мере узнавания? Ведь в реале именно так.
vsb>4. Паскаль это типизированный язык. Это очень правильно, чтобы сразу не приучать к плохому. Поэтому тут уже бейсик улетает.
vsb>5. В паскале есть всё для преподавания алгоритмов и структур данных, что должно происходит сразу же после освоения основ языка. Потому, что основа программирования это и есть алгоритмы и структуры данных.
vsb>4. C.
И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: scf  
Дата: 28.06.23 19:53
Оценка: +1
Здравствуйте, scf, Вы писали:

scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.


Эх, молодость, спектрум, первые программы, набранные с тетрадки... https://editor.p5js.org/scf37/sketches/XF_aGGwjX
Re[4]: Кто интересовался, как в 21 веке учить детей программированию?
От: Codealot Земля  
Дата: 28.06.23 21:22
Оценка: +1
Здравствуйте, rudzuk, Вы писали:

R>С девятого уже поздно. Не нужно отравлять молодые мозги динамикой. Потом, после этой наркоты ломать будет нипадеццки.


Да, я за последнее время насмотрелся на многих искалеченных скриптами. Страшное зрелище.
Ад пуст, все бесы здесь.
Re[10]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 30.06.23 13:15
Оценка: +1
Здравствуйте, student__, Вы писали:

vsb>>Главная платформа это веб.

__>Это для веб-разработчиков.

Веб уже давно везде, где UI.

vsb>>Главный современный язык вне веба без легаси это го.

__>Возьми свой десктоп или смартфон. Сколько там софта на golang?

На смартфоне софт на JS. За редким исключением.

__>Полно традиционных ниш программирования, где все эти гоу и расты — как собаке пятая нога.


Полно. Но полно также и ниш, где ООП нет.

Я не предлагаю отказываться от ООП. Понятно, что если мне взбредёт в голову писать для iOS на Swift, то я буду вынужден использовать классы (хотя SwiftUI мне показался не ООП-ориентированным, но я его мельком видел). Я говорю про то, что всем ООП изучать может быть и не нужно. Так же, как всем не нужно изучать ORM. Это нишевые технологии. Вот SQL изучить всем полезно.
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 14:32
Оценка: -1
Здравствуйте, scf, Вы писали:

S>> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL



scf>Как это не было, а Turbo Vision?


Ну и как тебе Turbo Vision по сравнению с VCL
http://rsdn.org/forum/education/8554467.1
Автор: Serginio1
Дата: 30.06.23


Проблема в том, что для ООП для доса жрал больше памяти. Поэтому просто не было смысла. А вот с Windows 95 уже и ресурсы другие и графика
и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 14:41 Serginio1 . Предыдущая версия .
Re[18]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 19:32
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S> Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.


Это чушь невероятная. В объекте из служебных данных всего одна ссылка на vmt, а vmt это статичная таблица специфичная для каждого класса. У борландов даже в vmt место экономилось при использовании динамических методов вместо виртуальных, ценой более сложного резолвинга. Я к тому, что поиметь проблем памятью из-за использования ООП можно было только в том случае, если проповедовать жабью идеологию все-объект. В паскале, к счастью, эту шизу не словили.

Я помню из-за чего у нас были проблемы с памятью — из-за баз данных и графического гуя, но не из-за ООП.

S> ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.


ООП расцвело, когда его стали поддерживать языки. Очень удобная штука, оказалось, если головой об угол не прикладываться.
avalon/3.0.2
Re[18]: Кто интересовался, как в 21 веке учить детей програм
От: Michael7 Россия  
Дата: 01.07.23 08:29
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.

S>ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.

Дело не в ООП, а в том, что для чего-то сложного 1 Мб ОЗУ (фактически 640 Кб минус резидентные проги и DOS, т.е. 500 Кб с чем-то, а всякие EMS и XMS через одно место требовалось программировать) было очень мало. С ООП или без него, но приличный GUI требовал большого расхода памяти. И оверлеи тогда использовали практически все сколько-то серьезные программы.
Re[19]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 09:32
Оценка: -1
Здравствуйте, rudzuk, Вы писали:

R>Я помню из-за чего у нас были проблемы с памятью — из-за баз данных и графического гуя, но не из-за ООП.


S>> ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.


R>ООП расцвело, когда его стали поддерживать языки. Очень удобная штука, оказалось, если головой об угол не прикладываться.

Проблема ООП это прежде всего память в куче. Кстати в Delphi помню тоже были какие то структуры на стеке с VMT.
А вот менеджер памяти как раз и сжирает огромные количества памяти в отличие от стека.
Я к тому, что каждому овощу свое время. Как только появился Windows 95 выполнять 32-разрядные приложения на основе API Win32 то появились и сложные программы, где уже для упрощения написания кода уже понадобился ООП. Кроме того и среда разработки и отладки резко улучшились.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: scf  
Дата: 28.06.23 11:51
Оценка:
Здравствуйте, Osaka, Вы писали:

O>javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.


Как профессиональный разработчик, я соглашусь. Но чем он хуже бейсика в качестве первого языка?
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 28.06.23 12:13
Оценка:
Здравствуйте, Osaka, Вы писали:

O>javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.


Там есть вариант и на Питоне
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 28.06.23 12:14
Оценка:
Здравствуйте, scf, Вы писали:

scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.


Моим дошкольникам Scratch вполне заходит.
Re[4]: Кто интересовался, как в 21 веке учить детей программированию?
От: vsb Казахстан  
Дата: 28.06.23 12:15
Оценка:
Здравствуйте, Osaka, Вы писали:

vsb>>>Лучше начинать с турбо паскаля. Проверенная методика.

O>Преподам разве что удобнее, не надо переучиваться с 1990х. А детям зачем эта историческая реконструкция, и неликвидные знания, с нею связанные?

Я не знаю ничего лучше паскаля в качестве первого языка. Из популярных — точно ничего нет.
Re[4]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:23
Оценка:
NB> ты жеш разочаровался в хаскле.

Склероз. Я забыл, почему разочаровался, и теперь он мне снова кажется притягательным.
Re[6]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:26
Оценка:
NB>>> ты жеш разочаровался в хаскле.

ЭФ>> Склероз. Я забыл, почему разочаровался, и теперь он мне снова кажется притягательным.


NB> не стыдно предлагать детям язык, в котором можно разочароваться?


Нет, не стыдно, на тот момент, когда я предлагал, у меня не было идей, что в нём можно разочароваться.

Кстати, а ты не помнишь, в чём там дело было?
Re[5]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 12:38
Оценка:
vsb>Я не знаю ничего лучше паскаля в качестве первого языка. Из популярных — точно ничего нет.
Т. е. объективных доводов привести затруднительно?
Re[7]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 12:42
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>> не стыдно предлагать детям язык, в котором можно разочароваться?

ЭФ>Нет, не стыдно, на тот момент, когда я предлагал, у меня не было идей, что в нём можно разочароваться.
ЭФ>Кстати, а ты не помнишь, в чём там дело было?

ты попробовал читать какую-то книгу по хаскелю с середины/конца, но у тебя не получилось
это привело к расстройству, депрессии и паре унылых постов на форуме

вот, теперь вся шокирующая правда тебе доступна
продолжишь настаивать на выборе хаскеля первым языком?
Re[8]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:49
Оценка:
NB>ты попробовал читать какую-то книгу по хаскелю с середины/конца, но у тебя не получилось
NB>это привело к расстройству, депрессии и паре унылых постов на форуме

NB> теперь вся шокирующая правда тебе доступна


Твои доводы были неконкретны.

NB>продолжишь настаивать на выборе хаскеля первым языком?


Продолжу настаивать.
Re[9]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 12:51
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>>ты попробовал читать какую-то книгу по хаскелю с середины/конца, но у тебя не получилось

NB>>это привело к расстройству, депрессии и паре унылых постов на форуме

NB>> теперь вся шокирующая правда тебе доступна


ЭФ>Твои доводы были неконкретны.


да? в каком именно месте?
Re[10]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 12:57
Оценка:
NB>>> у тебя не получилось
ЭФ>>Твои доводы были неконкретны.
NB> в каком именно месте?

Не написано, что именно не получилось. Может быть сейчас уже получается.
Re[11]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 13:03
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>>>> у тебя не получилось

ЭФ>>>Твои доводы были неконкретны.
NB>> в каком именно месте?

ЭФ>Не написано, что именно не получилось. Может быть сейчас уже получается.


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

ты так сильно не любишь детей?
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: m2user  
Дата: 28.06.23 13:13
Оценка:
scf>>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
O>javascript должен быть допустим только после 21 года и только в специальных огороженных местах за чертой города.

Processing поддерживает несколько вариантов синтаксиса, а не только JS.

Processing was initially released with a Java-based syntax, and with a lexicon of graphical primitives that took inspiration from OpenGL, Postscript, Design by Numbers, and other sources.
With the gradual addition of alternative progamming interfaces — including JavaScript, Python, and Ruby — it has become increasingly clear that Processing is not a single language, but rather, an arts-oriented approach to learning, teaching, and making things with code.

Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 28.06.23 13:16
Оценка:
Здравствуйте, scf, Вы писали:

scf> С 9 класса — да. А вот с 5 — уже не уверен, что неокрепший детский ум поймёт преимущества статической типизации.


С девятого уже поздно. Не нужно отравлять молодые мозги динамикой. Потом, после этой наркоты ломать будет нипадеццки.
avalon/3.0.2
Re[12]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 13:24
Оценка:
NB>если у тебя не получилось, то у ребенка тоже может не получиться.

Так это два дефекта — во мне и в методике обучения. Остался ли дефект во мне — неизвестно,
но если не осталось, это означает, что методику можно улучшить.

И в этом случае у ребёнка получится (потому что у него нет моих дефектов, и есть правильная методика).
Re[8]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 28.06.23 13:32
Оценка:
Здравствуйте, Osaka, Вы писали:

O> Чем сложнее вывод на консоль "хелловорлд" в C# по сравнению с паскалем? Вроде абсолютно одинаково (ну кроме изучения/забывания ненужных знаний устаревшего паскалевого IDE)


Ничем. А все прочее сложнее. Например, концепция пространства имен значительно более сложна для понимания — тем более, что не имеет четких границ — чем модули.

O> С каких конкретно задач C# становится менее "прост для старта"?


С тех самых, когда для написания низкоуровневого кода приходится прибегать к абстракциям (оксюморон)

O> И в C всё перечисленное есть, и не сложнее, а даже проще (меньше кнопок нажимать). Почему не сразу C, зачем промежуточное звено в виде паскаля?


Потому что модульное программирование. Переиспользование кода должно быть правильным.
avalon/3.0.2
Re[13]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 13:32
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>>если у тебя не получилось, то у ребенка тоже может не получиться.


ЭФ>Так это два дефекта — во мне и в методике обучения. Остался ли дефект во мне — неизвестно,

ЭФ>но если не осталось, это означает, что методику можно улучшить.

можно ли улучшить методику не известно, но известен как минимум один зафиксированный случай травмирующего применения хаскеля
поэтому у нас нет морального права рисковать и экспериментировать на детях
нужен безопасный язык
Re[14]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 13:40
Оценка:
NB> известен как минимум один зафиксированный случай травмирующего применения хаскеля
NB> поэтому у нас нет морального права рисковать и экспериментировать на детях

неправильное "поэтому". Известно, что и на уроках труда дети травмироваться могут,
если применяется неправильная методика обучения.

Уроки труда при этом вполне себе есть.
Re[5]: Кто интересовался, как в 21 веке учить детей программированию?
От: zx zpectrum  
Дата: 28.06.23 13:44
Оценка:
ЭФ>Склероз. Я забыл, почему разочаровался, и теперь он мне снова кажется притягательным.
И вот так у хаскеллистов во всём. Чтобы понять монады, надо сначала понять монады. Чтобы вспомнить, почему разочаровался, надо сначала вспомнить, почему разочаровался.
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: zx zpectrum  
Дата: 28.06.23 13:49
Оценка:
scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.
Подход давным давно имеет место быть. Lego Mindstorms NXT с усечённой детско-юношеской версией графического языка программирования LabVIEW появился, емнип, в 2006-м.
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 14:03
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Раньше я бы ещё добавил C++ и основы ООП, сейчас, думаю, что это лишнее, ООП это скорей антипаттерн и ему лучше вообще не обучать.

А что вместо ООП для наследования, переопределения, интерфейсов при работе с иерархий классов или реализацией интерфейсов?
Утиная типизация?
и солнце б утром не вставало, когда бы не было меня
Re[9]: Кто интересовался, как в 21 веке учить детей программированию?
От: Osaka  
Дата: 28.06.23 14:08
Оценка:
O>> С каких конкретно задач C# становится менее "прост для старта"?
R>С тех самых, когда для написания низкоуровневого кода приходится прибегать к абстракциям (оксюморон)
Можно пример, как формулируется прикладная задача на лабу, одновременно простая в паскале и сложная в C#?
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 28.06.23 14:16
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>Раньше я бы ещё добавил C++ и основы ООП, сейчас, думаю, что это лишнее, ООП это скорей антипаттерн и ему лучше вообще не обучать.

S> А что вместо ООП для наследования, переопределения, интерфейсов при работе с иерархий классов или реализацией интерфейсов?
S> Утиная типизация?

В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.
Re[15]: Кто интересовался, как в 21 веке учить детей программированию?
От: night beast СССР  
Дата: 28.06.23 14:26
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>неправильное "поэтому". Известно, что и на уроках труда дети травмироваться могут,

ЭФ>если применяется неправильная методика обучения.

уроки труда есть, но там детям не дают сразу болгарку, а сперва приучают работать молотком/пилой
Re[9]: Кто интересовался, как в 21 веке учить детей программ
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 14:27
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.


Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.
Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!
А в JS как и в 1С и прочих динамических языках используют утиную типизацию.
Функциональщина это про иммутабельность и кучей проблем из-за этого
и солнце б утром не вставало, когда бы не было меня
Re[10]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 28.06.23 14:32
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>В разных языках по-разному. Из новых языков ни в Go, ни в Rust нет ООП в том виде, в котором он есть в старинных языках. В JS он формально есть (хотя со своей спецификой), но в современном коде его обычно не используют. Обычно просто используют функциональное программирование.


S>Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.


Ну если человек будет писать на C# или на Java — безусловно ООП выучить придётся. А если на Go — зачем?

S>Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!


Не очень понимаю тебя. Возможно лучше на конкретном примере.

S>А в JS как и в 1С и прочих динамических языках используют утиную типизацию.


Ну в Rust не используют утиную типизацию и живут как-то.

S> Функциональщина это про иммутабельность и кучей проблем из-за этого


Когда я говорю про функциональное программирование, я имею в виду стиль, когда функция является объектом первого класса и её можно передавать параметром в другую функцию. Иммутабельность это отдельная концепция, хотя её часто с функциональным программированием вместе используют, но я не считаю это корректным обобщением. Можно писать иммутабельные программы без ФП, можно использовать ФП без иммутабельности.
Отредактировано 28.06.2023 14:35 vsb . Предыдущая версия .
Re[16]: Кто интересовался, как в 21 веке учить детей программированию?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.06.23 14:51
Оценка:
NB> уроки труда есть, но там детям не дают сразу болгарку, а сперва приучают работать молотком/пилой

От молотка можно перейти к (кузнечному?) прессу.
От пилы можно прийти к двуручной пиле.

К болгарке так не прийти никак.
Re[11]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 15:01
Оценка:
Здравствуйте, vsb, Вы писали:


S>>Ну вот в C# есть и ООП и функциональщина. И все это прекрасно уживается. Я уже не говорю про UI где иерархия огромная.


vsb>Ну если человек будет писать на C# или на Java — безусловно ООП выучить придётся. А если на Go — зачем?


S>>Я не представляю как туда функциональщину прикрутить. Потомок может переопределить только один метод родителя. При этом методов родителя может достигать сотен!


vsb>Не очень понимаю тебя. Возможно лучше на конкретном примере.


Ты видел иерархию классов в том же WinForms или WPF?
Там ООП на полную катушку.
В Паскале тоже не было ООП. Его заменил Delphi и стал одним из популярнейших языков на постсоветском пространстве.
По сути Хейлсберг продолжил эволюцию delphi на си подобном C#, поработав еще и с Java.
Но он и работу с Winforms перенес из Delphi.
Опять же тот же TypeScript набирает популярность. А там ООП есть https://itnan.ru/post.php?c=1&amp;p=667156
Мы же про обучение говорим. То большинство как раз выберут TS, Java, Kotlin, C#
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.06.2023 15:10 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.06.2023 15:05 Serginio1 . Предыдущая версия .
Re[12]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 28.06.23 15:23
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Ты видел иерархию классов в том же WinForms или WPF?

S>Там ООП на полную катушку.

Не видел, но в любом случае это не значит, что нельзя по-другому сделать. В том же вебе GUI полно, при этом самая популярная библиотека React от идей ООП отошла и сейчас там на полную катушку ФП. И вполне работает, людям удобно.
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: qqqqq  
Дата: 28.06.23 15:28
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Лучше начинать с турбо паскаля. Проверенная методика.

Fortran же
Re[13]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 17:17
Оценка:
Здравствуйте, vsb, Вы писали:


S>>Ты видел иерархию классов в том же WinForms или WPF?

S>>Там ООП на полную катушку.

vsb>Не видел, но в любом случае это не значит, что нельзя по-другому сделать. В том же вебе GUI полно, при этом самая популярная библиотека React от идей ООП отошла и сейчас там на полную катушку ФП. И вполне работает, людям удобно.

React что то я на винде и не видел окромя сайтов использующий разметку на HTML. Единственно, что сделано так это биндинг.

Можно по аналогии взять Blazor. У него то кстати есть использование в нативные компоненты в как Html так и элементы Xamarin.Forms
https://learn.microsoft.com/ru-ru/mobile-blazor-bindings/
и солнце б утром не вставало, когда бы не было меня
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 28.06.23 18:41
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>Не видел, но в любом случае это не значит, что нельзя по-другому сделать. В том же вебе GUI полно, при этом самая популярная библиотека React от идей ООП отошла и сейчас там на полную катушку ФП. И вполне работает, людям удобно.

S> React что то я на винде и не видел окромя сайтов использующий разметку на HTML. Единственно, что сделано так это биндинг.

Есть React Native — там HTML не используется (сам не пробовал для десктопа его использовать).
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.06.23 18:59
Оценка:
Здравствуйте, vsb, Вы писали:

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


vsb>>>Не видел, но в любом случае это не значит, что нельзя по-другому сделать. В том же вебе GUI полно, при этом самая популярная библиотека React от идей ООП отошла и сейчас там на полную катушку ФП. И вполне работает, людям удобно.

S>> React что то я на винде и не видел окромя сайтов использующий разметку на HTML. Единственно, что сделано так это биндинг.

vsb>Есть React Native — там HTML не используется (сам не пробовал для десктопа его использовать).

Ну суть та же как и в XAML. В основном это биндинг. React просто использует компоненты. А вот их внутренности и стоит посмотреть.
То же самое MAUI Xamarin.Forms, Flutter https://habr.com/ru/companies/google/articles/426701/
и солнце б утром не вставало, когда бы не было меня
Re[16]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 28.06.23 19:39
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>Есть React Native — там HTML не используется (сам не пробовал для десктопа его использовать).

S>Ну суть та же как и в XAML. В основном это биндинг. React просто использует компоненты. А вот их внутренности и стоит посмотреть.

Я не знаю, что там у реакта внутри, никогда не смотрел. Но я не согласен. Важно то, как библиотека используется. А что у неё внутри это её дело. Если для использования библиотеки мне нужно наследоваться, переопределять какие-то методы и тд, тогда — да, это навязанный ООП. В современном реакте это не надо. Можно ещё привести в пример WinAPI. Это API для C. Для его использования тоже классы не нужны. Хотя никто не мешает нагородить, как в обвязках вроде MFC. Но можно и не городить. Я писал на C небольшие программы на Windows. Ничего похожего на ООП там не было.
Отредактировано 28.06.2023 19:42 vsb . Предыдущая версия .
Re[17]: Кто интересовался, как в 21 веке учить детей програм
От: night beast СССР  
Дата: 28.06.23 19:42
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

NB>> уроки труда есть, но там детям не дают сразу болгарку, а сперва приучают работать молотком/пилой


ЭФ>От молотка можно перейти к (кузнечному?) прессу.

ЭФ>От пилы можно прийти к двуручной пиле.
ЭФ>К болгарке так не прийти никак.

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

но суть в том что в любом случае обучение начинается на простом и относительно безопасном инструменте, чтобы подопытный мог спокойно набить пальцыруку, приобрести инстинкт самосохранения и получил начальные навыки профессии
Отредактировано 28.06.2023 19:50 night beast . Предыдущая версия .
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: Maniacal Россия  
Дата: 29.06.23 06:59
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Лучше начинать с турбо паскаля. Проверенная методика.


Я начинал с basic на РК-86, потом на БК-0010, там же ДВК-ассемблер, Forth, Фокал. Потом Turbo-C, x86-ассемблер, Потом уже в универе Fortran, Turbo Pascal, C++. Ещё помогал сокурсникам по портированию всяких кусачей с языка Ada на фортран.
Re[17]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.06.23 07:37
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>>>Есть React Native — там HTML не используется (сам не пробовал для десктопа его использовать).

S>>Ну суть та же как и в XAML. В основном это биндинг. React просто использует компоненты. А вот их внутренности и стоит посмотреть.

vsb>Я не знаю, что там у реакта внутри, никогда не смотрел. Но я не согласен. Важно то, как библиотека используется. А что у неё внутри это её дело. Если для использования библиотеки мне нужно наследоваться, переопределять какие-то методы и тд, тогда — да, это навязанный ООП. В современном реакте это не надо. Можно ещё привести в пример WinAPI. Это API для C. Для его использования тоже классы не нужны. Хотя никто не мешает нагородить, как в обвязках вроде MFC. Но можно и не городить. Я писал на C небольшие программы на Windows. Ничего похожего на ООП там не было.


Ну да писать гуй на С это то еще удовольствие. Поэтому Delphi и был столь популярен, что была иерархия классов над вызовами WinAPI.
Кроме того, если тебе что то не нравилось в компонентах , ты мог создать наследников и переопределить отрисовку через тот же WinAPI, но весь остальной рендеринг оставался за компонентом
ООП это один из базовых паттернов программирования, который использует большинство языков!
и солнце б утром не вставало, когда бы не было меня
Re: Кто интересовался, как в 21 веке учить детей программированию?
От: goto Россия  
Дата: 29.06.23 12:12
Оценка:
Здравствуйте, scf, Вы писали:

scf>Сайт: https://processing.org/

scf>Онлайн редактор: https://editor.p5js.org/

scf>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.


А для пару раз ткнувших и не врубившихся: чем это отличается от какого-нибудь jsfiddle?
Re[12]: Кто интересовался, как в 21 веке учить детей программированию?
От: rudzuk  
Дата: 29.06.23 19:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S> R>Ну вот смотри, элементарная вещь: передать параметром массив байтов любого размера. Эффективно. И чтобы и со стека и из кучи. В паскале это просто использование параметра — открытого массива. В шарпе? Массив — объект, спан/ридонлиспан<byte>. Перегрузка метода, либо два метода, либо спан-онли метод и кувырки с прыжками при передаче массива. Очень просто


S> Что за кувырки с прыжками?

S> https://dotnetfiddle.net/dV1mzq

Чета я думал, что оно само не приведется к спану... ОК. Кувырков с прыжками нет. Лишняя сущность (спан), однако, все равно есть. Мало того, еще и обобщенное программирование есть. Еще и с управляемыми типами засада. Ну да, все очень просто
avalon/3.0.2
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 11:57
Оценка:
Здравствуйте, vsb, Вы писали:
vsb>ООП это скорей антипаттерн и ему лучше вообще не обучать.
Ну конечно! А то я смотрю, что все платформы, все либы для приложений, куда ни плюнь — везде ЯП, в которых ООП основная парадигма, и кругом классы.
Дураки, наверное. Всюду антипаттерны лепят.
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 12:01
Оценка:
Однобокая трактовка программирования. Программирование уже давно не только занятие инженеров в области вычислительной техники.
Может быть, это сложно представить человеку с профильным инженерно-компютерным образованием, но многим людям, которые применяют программирование, вовсе не нужно знать, что есть какие-то там регистры, и как машинерия устроена под условным капотом. И это знание, получи они его, не сделает их код ни на копейку лучше.
Re[15]: Кто интересовался, как в 21 веке учить детей программированию?
От: student__  
Дата: 30.06.23 12:08
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Известно, что и на уроках труда дети травмироваться могут,

ЭФ>Уроки труда при этом вполне себе есть.

Как сейчас помню: урок труда, мы начинаем изучение станка стд-120.
Препод, после прочтения содержимого ТБ, рассказал одну историю, как мальчик работал на станке, длинные волосы не собрал, они попали туда, намотались на шпиндель, его затянуло со страшной силой, содрало кожу на голове... С тех пор я знал, что ТБ — это серьезно.
А вы там про какие-то переполнения стека и опасности "не той" типизации...
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 30.06.23 12:17
Оценка:
Здравствуйте, student__, Вы писали:

vsb>>ООП это скорей антипаттерн и ему лучше вообще не обучать.

__>Ну конечно! А то я смотрю, что все платформы, все либы для приложений, куда ни плюнь — везде ЯП, в которых ООП основная парадигма, и кругом классы.
__>Дураки, наверное. Всюду антипаттерны лепят.

Главная платформа это веб. Главный фреймворк для веба это реакт. ООП там нет.

Главный современный язык вне веба без легаси это го. ООП там нет.

Второй современный язык вне веба без легаси это раст. ООП там нет.

Всё ООП в языках из 90-х. Это если ещё не кобол, то близко.
Отредактировано 30.06.2023 12:18 vsb . Предыдущая версия .
Re[9]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 12:43
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Главная платформа это веб.

Это для веб-разработчиков.

vsb>Главный современный язык вне веба без легаси это го.

Возьми свой десктоп или смартфон. Сколько там софта на golang?
Это очень сильно нишевой ЯП.

vsb>Второй современный язык вне веба без легаси это раст. ООП там нет.

Еще один модный ЯП.

vsb>Всё ООП в языках из 90-х. Это если ещё не кобол, то близко.

Любой неновый язык можно назвать языком с легаси. А любой язык с легаси — "почти коболом".
Это натягивание совы на глобус, передергивание, перебарщивание, и в любом случае неконструктивно.
Полно традиционных ниш программирования, где все эти гоу и расты — как собаке пятая нога.
ООП работало, конечно, было много копей сломано и лбов расшиблено, но накопился колоссальный опыт того, что полезно, а что — нет.
Re[12]: Кто интересовался, как в 21 веке учить детей програм
От: student__  
Дата: 30.06.23 12:49
Оценка:
Здравствуйте, Serginio1, Вы писали:
S> В Паскале тоже не было ООП. Его заменил Delphi

стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.
Re[13]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 12:56
Оценка:
Здравствуйте, student__, Вы писали:

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

S>> В Паскале тоже не было ООП. Его заменил Delphi

__>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.

На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL
Главное не возможность, а использование. А вот использование а так же метаклассы ( В VMT с отрицательным смещение хранятся виртуальны "статические" методы класса)
Виртуальные конструкторы
https://www.kansoftware.ru/?tid=5048

Кстати появились интерфейсы для работы с COM.
и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 13:17 Serginio1 . Предыдущая версия . Еще …
Отредактировано 30.06.2023 13:15 Serginio1 . Предыдущая версия .
Отредактировано 30.06.2023 13:14 Serginio1 . Предыдущая версия .
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: m2user  
Дата: 30.06.23 12:58
Оценка:
__>Однобокая трактовка программирования. Программирование уже давно не только занятие инженеров в области вычислительной техники.
__>Может быть, это сложно представить человеку с профильным инженерно-компютерным образованием, но многим людям, которые применяют программирование, вовсе не нужно знать, что есть какие-то там регистры, и как машинерия устроена под условным капотом. И это знание, получи они его, не сделает их код ни на копейку лучше.

С одной стороны так, а с другой как только у нас есть многопоточность, то тут же возникают всякие volatile, interlocked и прочие "memory barriers", а за ними кэши и ядра.
(из последних обсуждений: Memory barrier не могу понять что это)
Re[11]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 13:22
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Веб уже давно везде, где UI.

У меня UI на Qt.

vsb>На смартфоне софт на JS. За редким исключением.

Android: Kotlin, Java. iOS: Swift.

vsb>Полно. Но полно также и ниш, где ООП нет.

это не значит, что ООП — антипаттерн

vsb>Я не предлагаю отказываться от ООП

но твоё "ООП — антипаттерн" звучит именно так
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 13:42
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> __>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.


S> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL


Ну да... А TurboVision на которой строились все борландовские IDE?
avalon/3.0.2
Re[16]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 18:38
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> R>Ну да... А TurboVision на которой строились все борландовские IDE?


S> Ну давай сравним с VCL по количеству компонентов?


Ага, давайте сравним текстовый гуй с графическим...

S> https://ru.wikipedia.org/wiki/Turbo_Vision


S> Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.


Что ты этим хочешь сказать? Что ООП в TV небыло? Или что? В отличи от исследовавших код хакеров, мы писали с использованием TV, а после и с одним из ее графических вариантов. И работало все без оверлеев. Не помню, использовались ли оверлеи в доснавигаторе, который тоже был написан с использованием TV. Оверлеи, кстати, в те времена использовались вообще достаточно щироко вне зависимости от TV. Например, была такая среда программирования и одноименный язык Clipper, там без оверлеев вообще было сложно что-либо делать т.к. памяти оно жрало, как не в себя, и безо всякого ООП.
avalon/3.0.2
Re[17]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 19:01
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> https://ru.wikipedia.org/wiki/Turbo_Vision


S>> Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.


R>Что ты этим хочешь сказать? Что ООП в TV небыло? Или что? В отличи от исследовавших код хакеров, мы писали с использованием TV, а после и с одним из ее графических вариантов. И работало все без оверлеев. Не помню, использовались ли оверлеи в доснавигаторе, который тоже был написан с использованием TV. Оверлеи, кстати, в те времена использовались вообще достаточно щироко вне зависимости от TV. Например, была такая среда программирования и одноименный язык Clipper, там без оверлеев вообще было сложно что-либо делать т.к. памяти оно жрало, как не в себя, и безо всякого ООП.


Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.
ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: Michael7 Россия  
Дата: 01.07.23 08:35
Оценка:
Здравствуйте, zx zpectrum, Вы писали:

ZZ>Подход давным давно имеет место быть. Lego Mindstorms NXT с усечённой детско-юношеской версией графического языка программирования LabVIEW появился, емнип, в 2006-м.


Интересно, а есть программисты, которые могут сказать, что они когда-то начинали с Lego или чего-то подобного?
Re[19]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 08:51
Оценка:
Здравствуйте, Michael7, Вы писали:

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


S>>Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.

S>>ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.

M>Дело не в ООП, а в том, что для чего-то сложного 1 Мб ОЗУ (фактически 640 Кб минус резидентные проги и DOS, т.е. 500 Кб с чем-то, а всякие EMS и XMS через одно место требовалось программировать) было очень мало. С ООП или без него, но приличный GUI требовал большого расхода памяти. И оверлеи тогда использовали практически все сколько-то серьезные программы.

Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.
Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)
и солнце б утром не вставало, когда бы не было меня
Re[20]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 01.07.23 09:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.


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

S> Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)


Что значит были? Они есть и сейчас, только давным-давно объявлены легаси, что, впрочем, не мешает их использовать.
avalon/3.0.2
Re[20]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 01.07.23 10:09
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Проблема ООП это прежде всего память в куче. Кстати в Delphi помню тоже были какие то структуры на стеке с VMT.

S> А вот менеджер памяти как раз и сжирает огромные количества памяти в отличие от стека.

Любой, сколь нибудь сложный, софт, это про динамическую память.
avalon/3.0.2
Re[21]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 11:27
Оценка:
Здравствуйте, rudzuk, Вы писали:


S>> Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.


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

Но как раз их использовать проще когда она развесистая как в VCL. В итоге все упиралось в память.
А основная фишка Delphi это как раз менеджер памяти https://www.rsdn.org/article/Delphi/memmanager.xml

S>> Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)


R>Что значит были? Они есть и сейчас, только давным-давно объявлены легаси, что, впрочем, не мешает их использовать.

Напомни как назывались. А то забыл совсем. Закинул Delphi уже лет 15. Но до сих пор его люблю
и солнце б утром не вставало, когда бы не было меня
Re[7]: Кто интересовался, как в 21 веке учить детей программ
От: elmal  
Дата: 03.07.23 08:20
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.

Ты говорил про Турбо Паскаль. Для того чтоб на нем что то сделать нужно ставить эмулятор DOS и работать в виртуальной машине. IDE по современным меркам неудобная и ее просто нет, среда работает в консоли, автокомплита нет, хоткеи специфичные. Я уж молчу про всякие модели памяти tyny small huge которое вообще в современном мире понятны только тем, кто это легаси застал.

vsb>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.

Не надо изучать язык от начала до конца. Надо уметь применять язык. И непонятно где конец. Ибо по хорошему нужно понимать во что это компилируется, как работают dll и подобное, чем паскалевские внешний функции отличаются от сишных. Компактности у паскаля нет даже близко, необходимость объявлять переменные явно провоцирует использовать копипаст и их не объявлять, про begin end даже не упоминаю. Он компактен только по сравнению с ассемблером.

vsb>3. Паскаль довольно близок к железу. Этот пункт мне объяснить сложновато, но если сравнивать с тем же пайтоном, то это просто разные уровни абстракции. Изучать программирование компьютеров нужно с того языка, который ближе к железу, а не дальше. Потом уже можно абстрагироваться, понимая эту абстракцию, а не считая её магией.

Турбо Паскаль от железа далек, он на современном железе даже не запустится, он запускается в режиме эмуляции

vsb>4. Паскаль это типизированный язык. Это очень правильно, чтобы сразу не приучать к плохому. Поэтому тут уже бейсик улетает.

На начальном уровне пофиг. Типы важны когда пишешь что то большое и сложное.

vsb>5. В паскале есть всё для преподавания алгоритмов и структур данных, что должно происходит сразу же после освоения основ языка. Потому, что основа программирования это и есть алгоритмы и структуры данных.

Не все. Нет базовых структур данных, таких как хешмапа, список. Геморы с юникодом и поддержкой русского языка, как результат ограниченность практического применения или аляски с бубном. Нет вообще никакой поддержки многопоточности. Нет вообще никакой функциональзщины, никаких БАЗОВЫХ для современного программирования операций типа map reduce.

vsb>После этих пяти пунктов будет некоторая база, на которую уже можно добавлять промышленные знания.

В современном мире не получится идти снизу вверх, как раньше. Ибо уже на уровне процессора до хрена абстракций и всяких тонкостей, свихруться можно от напряжения пытаясь понять в деталях как это работает. А пока не поймешь это — один хрен куча тумана будет. Современный мир — это сверху вниз. От общего к частному. Что то типа SICP для формирования базы и умения программировать и далее спускаясь на более низкий уровень по необходимости.
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 03.07.23 08:49
Оценка:
Здравствуйте, elmal, Вы писали:

vsb>>1. Паскаль прост для старта. Конкуренты ему — в этом плане питон, бейсик. Все остальные языки сложны.

E>Ты говорил про Турбо Паскаль. Для того чтоб на нем что то сделать нужно ставить эмулятор DOS и работать в виртуальной машине. IDE по современным меркам неудобная и ее просто нет, среда работает в консоли, автокомплита нет, хоткеи специфичные. Я уж молчу про всякие модели памяти tyny small huge которое вообще в современном мире понятны только тем, кто это легаси застал.

В целом я имею в виду виртовский паскаль. Какую среду для него сегодня использовать, я, честно говоря, не знаю. Я — да, в своё время использовал турбо-паскаль. Сегодня я бы посмотрел на Free Pascal.

vsb>>2. Паскаль очень компактный язык, если оставаться примерно в виртовском подмножестве. Питон улетает со свистом. Да и в принципе все промышленные языки. Изучить паскаль можно за месяц от начала до конца, питон не знают даже те, кто на нём за деньги пишет.

E>Не надо изучать язык от начала до конца. Надо уметь применять язык. И непонятно где конец. Ибо по хорошему нужно понимать во что это компилируется, как работают dll и подобное, чем паскалевские внешний функции отличаются от сишных. Компактности у паскаля нет даже близко, необходимость объявлять переменные явно провоцирует использовать копипаст и их не объявлять, про begin end даже не упоминаю. Он компактен только по сравнению с ассемблером.

Про компактность я имел в виду число концепций, а не число строк кода или тем более символов.

Понимать, во что компилируется паскаль, когда ты не понимаешь, что такое if и указатель это уже лишнее.

В копипасте ничего страшного нет. Концепцию чистого кода, рефакторинга и подобного объяснять нужно гораздо поздней. Сначала надо научиться программировать хоть как-то. Хотя, конечно, какие-то базовые основы хорошего тона, то же правильное форматирование кода — прививать желательно с начала.

vsb>>3. Паскаль довольно близок к железу. Этот пункт мне объяснить сложновато, но если сравнивать с тем же пайтоном, то это просто разные уровни абстракции. Изучать программирование компьютеров нужно с того языка, который ближе к железу, а не дальше. Потом уже можно абстрагироваться, понимая эту абстракцию, а не считая её магией.

E>Турбо Паскаль от железа далек, он на современном железе даже не запустится, он запускается в режиме эмуляции

Не согласен. От железа далёк жаваскрипт. Паскаль компилируется в ассемблер достаточно просто и понятно. И хотя понимать это не надо, но там магии нет. Если тебе нужна хеш-таблица, ты пойдёшь и реализуешь хеш-таблицу, с кучей кода и структур данных. А не напишешь x = {}, не понимая, что под этими двумя скобками скрывается огромная машинерия.

vsb>>5. В паскале есть всё для преподавания алгоритмов и структур данных, что должно происходит сразу же после освоения основ языка. Потому, что основа программирования это и есть алгоритмы и структуры данных.

E>Не все. Нет базовых структур данных, таких как хешмапа, список.

Это не базовые структуры данных. Базовые структуры данных это структура, массив, указатель. Хешмапа и список делаются на их основе.

E>Геморы с юникодом и поддержкой русского языка, как результат ограниченность практического применения или аляски с бубном. Нет вообще никакой поддержки многопоточности. Нет вообще никакой функциональзщины, никаких БАЗОВЫХ для современного программирования операций типа map reduce.


Функциональщину лучше изучать на примере Scheme. Когда с условными операторами, циклами и базовыми алгоритмами и структурами данных разберёшься. map reduce это не базовые операции, это безумно продвинутые операции, которые наверняка не понимает существенный процент профессиональных программистов. Учить этому начинающего это абсурд, который почти наверняка безвозвратно сломает ему психику.
Re[9]: Кто интересовался, как в 21 веке учить детей программ
От: elmal  
Дата: 03.07.23 16:18
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В копипасте ничего страшного нет. Концепцию чистого кода, рефакторинга и подобного объяснять нужно гораздо поздней. Сначала надо научиться программировать хоть как-то. Хотя, конечно, какие-то базовые основы хорошего тона, то же правильное форматирование кода — прививать желательно с начала.

Да, возможно. Но научиться программировать хотя бы как нужно на каких то полезных практических задачах. Даже не понимая как это работает — очень круто, когда ты сходу можешь сделать что то полезное. Пример полезного — написать хреновину, которая слущает микрофон, распознает голос, отсылая звук на сервис распознавания и включает лампочку или еще что. Написать какую программу, которая слушает микрофон, и, допустим, на запрос "посчитай какое самое частое слово в произведении Война и Мир" зайдет на какой сайт библиотеки (бесплатной, вроде lib.ru), скачает книгу, распознает и что то там посчитает. Тупо используя различные сервисы уже готовые из кубиков друг за другом соберет что полезное, выводя результат в LibreOffice. Используя уже готовые учебные библиотеки, которые будут скрывать геморрой с авторизацией и тому подобное. Приучая сразу, что сложные вещи именно в коде должны выглядеть просто, вся сложность должна быть зашита глубоко в библиотеках.

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

vsb>Не согласен. От железа далёк жаваскрипт. Паскаль компилируется в ассемблер достаточно просто и понятно. И хотя понимать это не надо, но там магии нет. Если тебе нужна хеш-таблица, ты пойдёшь и реализуешь хеш-таблицу, с кучей кода и структур данных. А не напишешь x = {}, не понимая, что под этими двумя скобками скрывается огромная машинерия.

Тупо под заходом на любой сайт скрывается огромнейшая машинерия. На порядок круче всех хешмапов. Однако зайти на сайт и что то там скачать или стукануться к сервису по url — это сверхбазовая операция.

vsb>Это не базовые структуры данных. Базовые структуры данных это структура, массив, указатель. Хешмапа и список делаются на их основе.

А можно наоборот пойти. Сделать одну структуру данных — тупо хешмапа, и из нее выводить списки, массивы и т.д. Пифиг на скорость, пофиг на эффективность, пусть там вместо константного времени поиска будет кубическая — главное чтоб работало. И научить выполнять простейшие полезные в быту задачи. Спускаться на уровень массивов в современном программировании мало кому требуется. Все современные абстракции сильно выше массивов сразу, и можно проработать 20 лет и ни разу не столкнуться с необъодимостью работы именно с чистым массивом.
Re[10]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 03.07.23 18:04
Оценка:
Здравствуйте, elmal, Вы писали:

E>Тупо под заходом на любой сайт скрывается огромнейшая машинерия. На порядок круче всех хешмапов. Однако зайти на сайт и что то там скачать или стукануться к сервису по url — это сверхбазовая операция.


Ну вот я не согласен с этим. Прежде, чем стукаться к сервису по URL, нужно разобраться с юниксом, научиться работать с TCP сокетами, а потом уже можно и свой веб-сервер написать, и клиента. И будешь понимать, что скрывается за fetch(...).

Хотя с этими HTTP/2 и прочими это уже, кажется, не так просто. Но HTTP/1.1 за реверс-проксями ещё долго будет жить.

Вот недавно видел на одном форуме вопрос. Человек пишет, что у него POST-запросы отваливаются с connection refused иногда, а GET не отваливаются. И он пытается разобраться, что у него там с запросами. А если бы он понимал, что connection refused это уровень TCP, а не HTTP, он бы не тратил время на бессмысленные вопросы. Но — привык, что fetch это сверхбазовая операция и если оно не работает, значит надо проверять параметры запроса. А вот — не сверхбазовая.

E>А можно наоборот пойти. Сделать одну структуру данных — тупо хешмапа, и из нее выводить списки, массивы и т.д. Пифиг на скорость, пофиг на эффективность, пусть там вместо константного времени поиска будет кубическая — главное чтоб работало. И научить выполнять простейшие полезные в быту задачи. Спускаться на уровень массивов в современном программировании мало кому требуется. Все современные абстракции сильно выше массивов сразу, и можно проработать 20 лет и ни разу не столкнуться с необъодимостью работы именно с чистым массивом.


Можно, но я имею в виду опять ту же самую близость к мифическом железу. В ассемблере есть массивы (т.е. косвенная адресация по регистру-смещению). В ассемблере есть структуры (т.е. косвенная адресация по фиксированному смещению). Поэтому я эти структуры данных считаю базовыми. И они есть в пресловутом паскале и компилируются в тривиальный машинный код. В этом я и считаю его простоту и близость к железу — его конструкции отображаются на простой ассемблер понятно и просто. После того, как ты его выучил — ты можешь легко учить простой ассемблер.

При этом я понимаю, что современный ассемблер это гораздо сложней. Все эти конвееры, предсказатели переходов, SIMD-инструкции и тд. Но базовые аспекты и они не отменяют.
Отредактировано 03.07.2023 18:08 vsb . Предыдущая версия . Еще …
Отредактировано 03.07.2023 18:08 vsb . Предыдущая версия .
Отредактировано 03.07.2023 18:05 vsb . Предыдущая версия .
Re[11]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.07.23 18:29
Оценка:
Здравствуйте, vsb, Вы писали:

Я бы лучше разобрал для начала работу gRPC, SignalR.
Кому интересно будут ковырять и TCP и HTTP
и солнце б утром не вставало, когда бы не было меня
Re[11]: Кто интересовался, как в 21 веке учить детей програм
От: elmal  
Дата: 03.07.23 18:55
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Можно, но я имею в виду опять ту же самую близость к мифическом железу. В ассемблере есть массивы (т.е. косвенная адресация по регистру-смещению). В ассемблере есть структуры (т.е. косвенная адресация по фиксированному смещению). Поэтому я эти структуры данных считаю базовыми. И они есть в пресловутом паскале и компилируются в тривиальный машинный код. В этом я и считаю его простоту и близость к железу — его конструкции отображаются на простой ассемблер понятно и просто. После того, как ты его выучил — ты можешь легко учить простой ассемблер.

Это все понятно. Но я считаю, что знать внутреннее устройство и как это все работает должен профессиональный программист. Который определился что хочет этим заниматься серьезно. Новичку же нужно просто дать представление что такое программирование, без деталей, все сверху вниз. При этом дать так, чтобы новичок максимально быстро мог сделать что то полезное для себя, чтобы ему было интересно, а не чтоб он не занимался перемножением матриц и ручным вводом этой матрицы не понимая на кой черт ему это надо, ему это все нафиг не сдалось.
Re[12]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 03.07.23 19:03
Оценка:
Здравствуйте, elmal, Вы писали:

E>Это все понятно. Но я считаю, что знать внутреннее устройство и как это все работает должен профессиональный программист. Который определился что хочет этим заниматься серьезно. Новичку же нужно просто дать представление что такое программирование, без деталей, все сверху вниз. При этом дать так, чтобы новичок максимально быстро мог сделать что то полезное для себя, чтобы ему было интересно, а не чтоб он не занимался перемножением матриц и ручным вводом этой матрицы не понимая на кой черт ему это надо, ему это все нафиг не сдалось.


Ну могу только сказать, что я считаю строго наоборот. Учиться надо снизу вверх. Когда математику учат — начинают со сложения, а не с правила Лопиталя. И в хорошем ВУЗе преподают её последовательно: определения и аксиомы, на базе которых строятся и доказываются теоремы. И Кнута надо полистать в какой-то момент, и разные парадигмы освоить, и на ассемблере хотя бы что-то не совсем тривиальное написать и на C написать какой-нибудь клиент-сервер. Меня так учили и, я считаю, это дало результат (не в моём отношении, я всегда был на год-два впереди программы, но в отношении моих не столь увлечённых одногруппников).

А про интерес — ну не знаю. У каждого свой интерес. Мне интересно код писать. А полезно оно или нет — мне вообще без разницы. Наверное даже лучше бесполезно, чтобы от процесса не отвлекало. Моё любимое занятие это рефакторинг кода, занятие в сущности бесполезное.

Если человеку нужно от программирования исключительно решение каких-то практических нужд — ну может быть и не надо ему основа. Но подозреваю, что и программистом он может не стать. Это скорей нужно людям, которые занимаются чем-то другим, а программирование им нужно просто для какой-то автоматизации. К примеру бухгалтер, который в экселе что-то запрограммировать может (не знаю, надо ли это бухгалтерам, просто пример).
Re[13]: Кто интересовался, как в 21 веке учить детей програм
От: elmal  
Дата: 03.07.23 20:13
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>А про интерес — ну не знаю. У каждого свой интерес. Мне интересно код писать. А полезно оно или нет — мне вообще без разницы. Наверное даже лучше бесполезно, чтобы от процесса не отвлекало. Моё любимое занятие это рефакторинг кода, занятие в сущности бесполезное.

Я просто вспоминаю студенческие годы и относительно интереса. У меня интерес был, дичайший, который пытались подавить окружение, но безуспешно, мой интерес и я оказался сильнее среды, которая хотело сформировать из меня так называемое быдло. У других не было. И из за отсутствия интереса практически никто не мог осилить этот паскаль даже на уровне перемножений матриц. За них эти все курсовые делал я лично и переделал всего этого до черта и более. При том, что у нас в программе никакого паскаля не было, нас с Си сразу гоняли, правда я сразу на первый курс с базовым знанием Си пошел, мотивация была бешенная, собственно и паскаль тоже в свое время осилил по книгам и не только паскаль, а вообще все до чего мог дотянуться учитывая проблему с литературой.

Факт в том, что лет 25 назад для простого обывателя, который там занимается строительством, взякими силовыми трансформаторами и тому подобным паскаль был неимоверно сложен и он не был способен его осилить на простейшем уровне, даже на уровне Hello world. Его могли осилить только жутчайшие нерды, которые от компов фанатели, а таких крайне немного. С тех пор прошло до черта времени, паскаль неимоверно утратил актуальность, плюс требования у необъодимым умениям что то там сделать несколько возросли, в те времена интернет был на зачаточном состоянии и был dial up.

Соответственно я утверждаю, что для среднего обывателя паскаль слишком сложен, средний обыватель ни черта не способен его освоить на уровне чтобы сделать на нем что то полезное. А для мотивированных несредних паскаль тупо непопулярен, обычный Си педоставляет те же возможности и даже больше,сразу приучая к мейнстримовскому синтаксису. Хотя и обычный Си сейчас мало кого для мотивированных может заинтересовать, сразу будут начинать с С++.
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: vsb Казахстан  
Дата: 03.07.23 20:52
Оценка:
Здравствуйте, elmal, Вы писали:

E>Соответственно я утверждаю, что для среднего обывателя паскаль слишком сложен, средний обыватель ни черта не способен его освоить на уровне чтобы сделать на нем что то полезное. А для мотивированных несредних паскаль тупо непопулярен, обычный Си педоставляет те же возможности и даже больше,сразу приучая к мейнстримовскому синтаксису. Хотя и обычный Си сейчас мало кого для мотивированных может заинтересовать, сразу будут начинать с С++.


Я не преподаватель, могу только говорить за тех, кто со мной учился, они паскаль освоили, и остальное освоили. Большинство программистами не стали, но почти половина — стали. Я в универ пришёл уже с республиканской олимпиадой за плечами, поэтому за себя я говорить не могу, я тоже из "мотивированных" и мне программа обучения не нужна, мне достаточно было не мешать. Но все остальные были обычные дети из обычных математических лицеев. "Программист" был на первом курсе в моей группе кроме меня — один. Он тоже олимпиадник. Но его отчислили, с математикой не задалось.

Если человеку это вообще не надо, ну тогда ему ничего не поможет. Я всё же предполагаю, что желание должно быть. У нас преподаватели были достаточно строгие, взятки не были приняты, поэтому вариантов не было кроме как выучить (да и, если честно, это всё в сравнение с мозгодробительной математикой по-моему было полной ерундой).
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 03.07.23 21:10
Оценка:
Здравствуйте, elmal, Вы писали:

e> Факт в том, что лет 25 назад для простого обывателя, который там занимается строительством, взякими силовыми трансформаторами и тому подобным паскаль был неимоверно сложен и он не был способен его осилить на простейшем уровне, даже на уровне Hello world.


Чего ты гонишь, а? У меня девочки в девятом классе на дельфях игрушки примитивные лабали. Силовые трансформаторы у него...
avalon/3.0.2
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: elmal  
Дата: 04.07.23 04:12
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Чего ты гонишь, а? У меня девочки в девятом классе на дельфях игрушки примитивные лабали. Силовые трансформаторы у него...

Девочки, у которых папа программист? Запросто, охотно верю. Однако среднестатистический обыватель без родителя, с которого копируется поведение, ранее компов боялся как огня, а паскаля и подавно. А если брать виртовский паскаль то непонятно как этим всем пользоваться и зачем, там же ввод вывод writeln readln, что от того, к чему привык обыватель — бесконечно далеко.
Re[16]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 04.07.23 08:10
Оценка:
Здравствуйте, elmal, Вы писали:

e> R>Чего ты гонишь, а? У меня девочки в девятом классе на дельфях игрушки примитивные лабали. Силовые трансформаторы у него...


e> Девочки, у которых папа программист? Запросто, охотно верю. Однако среднестатистический обыватель без родителя, с которого копируется поведение, ранее компов боялся как огня, а паскаля и подавно.


Я об ученицах девятого класса, в котором я факультатив по информатике вел. Школа самая обычная.

e> А если брать виртовский паскаль то непонятно как этим всем пользоваться и зачем, там же ввод вывод writeln readln, что от того, к чему привык обыватель — бесконечно далеко.


Это, как раз, самый простой способ показть, взаимодействие машины с человеком.
avalon/3.0.2
Re[17]: Кто интересовался, как в 21 веке учить детей програм
От: elmal  
Дата: 04.07.23 08:36
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Я об ученицах девятого класса, в котором я факультатив по информатике вел. Школа самая обычная.

Уже лучше, но обычно все таки в школах факультативы ведут далеко не профессиональные программисты. И квалификация типичного учителя не позволяет помочь осилить любой язык программирования на минимальном уровне.
Плюс — дельфи это не совсем паскаль. Разговор шел изначально про турбопаскаль.

R>Это, как раз, самый простой способ показть, взаимодействие машины с человеком.

Простой то простой, вот только обыватель ну совсем не привык сейчас к консоли. Он и ранее то не сильно был привычен и боялся во времена актуальности паскаля компов как огня. Сейчас компов особо не боятся, как раньше, и это не диковинка. Однако больщинство пользователей консоли в глаза не видели и могут худо бедно только браузером пользоваться.
Re[18]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 04.07.23 22:23
Оценка:
Здравствуйте, elmal, Вы писали:

e> R>Я об ученицах девятого класса, в котором я факультатив по информатике вел. Школа самая обычная.


e> Уже лучше, но обычно все таки в школах факультативы ведут далеко не профессиональные программисты. И квалификация типичного учителя не позволяет помочь осилить любой язык программирования на минимальном уровне.


Мой факультатив был вечерним, т.е. у них была информатика, которую вел школьный преподаватель, а вечером были мои занятия. С преподавателем они изучали все тот же паскаль, но, скажем так, без прикладного применения (у информатики нет цели выучить язык. Она вообще не о языках, она о теории информации, данных и алгоритмах). Когда я с ними начал заниматься, они уже свободно ориентировались в вопросах, вроде, организации циклов, вызове функций и т.п.

e> Плюс — дельфи это не совсем паскаль. Разговор шел изначально про турбопаскаль.


Вообще, Delphi это очень даже паскаль. Осовремененный, разумеется.

e> R>Это, как раз, самый простой способ показть, взаимодействие машины с человеком.


e> Простой то простой, вот только обыватель ну совсем не привык сейчас к консоли. Он и ранее то не сильно был привычен и боялся во времена актуальности паскаля компов как огня. Сейчас компов особо не боятся, как раньше, и это не диковинка. Однако больщинство пользователей консоли в глаза не видели и могут худо бедно только браузером пользоваться.


Ну не видели, так увидят. Это обучение, и оно должно начинаться с простых вещей и идти по восходящей. Если сразу показывать, как кнопку на веб-странице разместить, то это не про информатику и программирование, а про курсы веб-мастеров и воспитание служителей карго-культа.
avalon/3.0.2
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: merge  
Дата: 05.07.23 05:35
Оценка:
Здравствуйте, Nuzhny, Вы писали:

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


scf>>Всё, как мы любим — рисование картинок кодом с минимальной обвязкой. Как старый бейсик, но javascript и в браузере.


N>Моим дошкольникам Scratch вполне заходит.


кроме скрэтча привыкли ли дети к телефону\компу? просят для чего-то другого?
Re[3]: Кто интересовался, как в 21 веке учить детей программированию?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 05.07.23 08:54
Оценка:
Здравствуйте, merge, Вы писали:

M>кроме скрэтча привыкли ли дети к телефону\компу? просят для чего-то другого?


Записывал их на курсы общей компьютерной грамотности для детей. Там их учили пользоваться почтой, гугл.диском, рисовать в редакторе и т.п. Какие-то основы были. Телефон с игрушками, ютьюб и что-то подобное умеют. Сайты для школьников типа учи.ру и я.класс учитель давал для прохождения заданий и тестов. То есть совсем примитивно что-то умеют
Re[4]: Кто интересовался, как в 21 веке учить детей программированию?
От: merge  
Дата: 05.07.23 12:42
Оценка:
Здравствуйте, Nuzhny, Вы писали:

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


M>>кроме скрэтча привыкли ли дети к телефону\компу? просят для чего-то другого?


N> Телефон с игрушками, ютьюб и что-то подобное умеют


удается быть интересным для детей после того как к ним руки попал телефон с игрушками и ютьбом?
Есла, да, то как? У меня среди знакомых дети сидят дома и с родителями мало куда уже хотят ходить\ездить. Возраст 8 лет
Re[5]: Кто интересовался, как в 21 веке учить детей программированию?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 05.07.23 12:54
Оценка:
Здравствуйте, merge, Вы писали:

M>удается быть интересным для детей после того как к ним руки попал телефон с игрушками и ютьбом?


Родительский контроль, не более 3 часов в день. Возраст 6, 8, 9 лет, каждый день в обязательном порядке надо минимум час читать список литературы из школы или что-то по желанию. Ещё подтягиваем немецкий, есть у всех онлайн курсы: программирование, шахматы, графика.

M>Есла, да, то как? У меня среди знакомых дети сидят дома и с родителями мало куда уже хотят ходить\ездить. Возраст 8 лет


Ну, бывает, что накатывает лень и безразличие. Но для этого остаётся не так много времени
Re[6]: Кто интересовался, как в 21 веке учить детей программированию?
От: merge  
Дата: 05.07.23 17:58
Оценка:
Здравствуйте, Nuzhny, Вы писали:

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


M>>удается быть интересным для детей после того как к ним руки попал телефон с игрушками и ютьбом?


N>Родительский контроль, не более 3 часов в день.


а так хочется найти способо, чтобы без контроля. а то думаю будет вот 13 лет и хрен заставишь если не будет нравиться

N>Возраст 6, 8, 9 лет, каждый день в обязательном порядке надо минимум час читать список литературы из школы или что-то по желанию.


Если не секрет это не выглядит "быстрей-быстрей почитать без желания" чтобы уткнуться в телефон?

N>Ещё подтягиваем немецкий


вот это интересный поворот! у меня теща немецкий с дочкой учила, ибо сама знает, но я думаю толку от него.
в универ хотите немецкий потом поступать?
Re[7]: Кто интересовался, как в 21 веке учить детей программированию?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 05.07.23 19:56
Оценка:
Здравствуйте, merge, Вы писали:

N>>Родительский контроль, не более 3 часов в день.


Хочется, но, начиная играть, дети теряют чувство времени. Без этого никак.

M>а так хочется найти способо, чтобы без контроля. а то думаю будет вот 13 лет и хрен заставишь если не будет нравиться

M>Если не секрет это не выглядит "быстрей-быстрей почитать без желания" чтобы уткнуться в телефон?

Читать иногда нравится, сильно зависит от книги.

M>вот это интересный поворот! у меня теща немецкий с дочкой учила, ибо сама знает, но я думаю толку от него.

M>в универ хотите немецкий потом поступать?

Учатся в немецкой школе, просто географически удобно и я сам его учил когда-то.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.