М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 20 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

23 Кб, 501x375

Ёбаные дети, или обучение школьников программированию 15 Июн, 15:13 #770057 В конец треда | Веб

Доброго времени суток. Через несколько дней я поеду в детский лагерь преподавать детям программирование.

В первый раз я абсолютно всем возрастам давал C#, надеясь, что смогу нормально объяснить. Но наиболее мелким ублюдкам это было абсолютно неинтересно и они либо поливали от меня, либо приходили чисто гонять в каесик. Более старших, впрочем, удалось как-то заинтересовать. Во второй раз младшей аудитории я давал Scratch. Он зашёл на ура, но я не смог растянуть курс даже на 4 дня короткой смены, потому что в большинстве фич дети разобрались в первый же день. Старшим я всё так же давал Си шарп, но в этот раз было как-то более уныло.

Сейчас мне снова предстоит курс почти в три недели длиной, и мне нужны ваши советы. У нас есть 2 возрастных категории: условно 8-13 лет и 13-16. Вторым я хочу попробовать дать Питон, потому что его часто называют хорошим языком для школьников, к тому же можно будет подрубить какой-нибудь pygame и делать привлекательные для этих ублюдков приложения. Проблема лишь в том, что я сам его абсолютно не знаю и даже не представляю, откуда мне самому его выучить, так что буду благодарен любой литературе, особенно с уклоном в детей.

С первой группой всё ещё сложнее. Скретч я оставлю, он всем нравится, но на 3 недели его никак не растянуть. Пока есть мысля докинуть в нему Лого. Похож на Скретч, но надо писать код ручками, а не просто собирать блоки. Но тут тоже не очень однозначно. Можно дать Скретч первым, потому что он понятнее, но в Лого меньше функционала. Можно дать Лого первым, но детям будет сложно сразу вкатываться в письменный код. Я пока склоняюсь к среднему стулу: объяснить фичу на Скретче, чтобы они там блоки поцепляли, а на следующем занятии то же самое делаем руками в Лого, и так далее. Но даже так я не уверен, хватит ли мне материала на 3 недели. Что ещё можно предложить детям? Под конец начать им скармливать понемногу того же Питона? Или есть что-нибудь ещё интересное и подходящее под задачи?

Буду благодарен за любые пособия и советы

Ответы>>770061>>770063>>770076>>770096>>770143>>770311>>770392>>770450>>770577>>770587>>770715>>770718>>770746>>771092>>771247>>771986>>771987>>772686>>772742>>772925>>773847>>774759>>775192>>775401>>780038>>780954>>783142>>783332

15 Июн, 15:16 #2 #770061

>>770057 (OP)
приезжай ко мне в лагерь, я те питона покажу.

15 Июн, 15:21 #3 #770063

>>770057 (OP)
Няшки там есть? скинь фоточки позязя

15 Июн, 15:25 #4 #770065

А как же черепашка?
Попробуй старшим дать пхп. Размажешь все это аштиэмэлем - уже нежели на 2 выйдет. Хотя я не знаю какая обучаемость в нынешних детей.
И еще, погугли про bot war robot wars, есть вероятность что зайдет.

Ответы>>770067>>770248

15 Июн, 15:26 #5 #770067

>>770065
Так Лого и есть ЧЕРЕПАШКА
А в пыхе я полный хуй, ни разу не работал, да и дизайнер из меня неоче, дети хуйню наверстают. Раньше был там препод HTML, охуенный мужик, но он шарил

15 Июн, 15:28 #6 #770068

Нагугли книжку типа СИПЛЮСПЛЮС ДЛЯ САМЫХ МАЛЕНЬКИХ и учи их.

15 Июн, 15:31 #7 #770070

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

Ответы>>775328>>780091

15 Июн, 15:37 #8 #770076

>>770057 (OP)
Палю годноту.
https://en.wikipedia.org/wiki/Human_Resource_Machine

Ответы>>770082>>773192

15 Июн, 15:45 #9 #770082

>>770076
Блджад, а заебись тема, мелких засранцев как раз увлечёт. Спасибо!

58 Кб, 600x600

15 Июн, 16:01 #10 #770096

>>770057 (OP)
Питон неудачный вариант для обучения. Язык сложный, возможностей мало. Сейчас каждая макака учит пистон, а потом не знает что делать с ним. Лучше попробуй Haskell. Язык легкий и понятный даже школьнику. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее.
По книгам, что бы подготовится. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.

Ответы>>770740>>770752>>772545>>780096

15 Июн, 17:11 #11 #770143

>>770057 (OP)
Тебе осталось несколько дней до отбытия в лагерь, а ты сам 0 в том что собираешься преподавать, классический пример образования в рашке. Просто съеби.

Ответы>>770527

15 Июн, 19:47 #12 #770248

>>770065
Core wars годная.

15 Июн, 21:12 #13 #770311

>>770057 (OP)
А почему не QBasic или Turbo-pascal? Выебнуться решил?

Ответы>>770351>>770527>>770747

15 Июн, 21:50 #14 #770351

>>770311
он ещё не понял что ломает жизнь детям. большая часть алгоритмических книжек на паскале, а этот пидорас питону всех учит.

Ответы>>770413>>770527>>770747

15 Июн, 22:13 #15 #770380

Лучше моды для майнкрафта делайте.

Ответы>>773315

15 Июн, 22:21 #16 #770392

>>770057 (OP)
>Через несколько дней
>хочу попробовать дать Питон
>я сам его абсолютно не знаю
>Через несколько дней

Ответы>>770527

15 Июн, 22:36 #17 #770410

Учи структурам данных и алгоритмам, реализуй их на языке_нейм. Расстянуть можно хоть на год

15 Июн, 22:38 #18 #770413

>>770351
охуеть как сложно понять паскаль

15 Июн, 23:18 #19 #770450

>>770057 (OP)
>младшей аудитории я давал Scratch. Он зашёл на ура
Прикольная штука. Зашел на сайт mit, а там коты летают. Именно так должен выглядеть ЯП!

Ответы>>770452>>770455

15 Июн, 23:20 #20 #770452

>>770450
Хотя нет. Это срань только что крашнуло браузер лол.

Ответы>>770518

15 Июн, 23:22 #21 #770455

>>770450
Нет, все-таки охуительная штука.

16 Июн, 00:34 #22 #770518

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

16 Июн, 00:47 #23 #770527

>>770143
>>770392
Имплаинг я не смогу за неделю+во время преподавания разобраться в том же питоне
>>770351
Паскалю их и в школке научат
>>770311
>QBasic
Ты хочешь детей вообще сломать как программистов?

Ответы>>770533

16 Июн, 00:53 #24 #770533

>>770527
>Ты хочешь детей вообще сломать как программистов?
Да, думаю надо учить детей, что программирование это копание в говне. Так туда пойдут только самые отбитые чуханы, которым туда и дорога, а нормальные люди выберут другую отрасль.

16 Июн, 03:03 #25 #770577

>>770057 (OP)
Посмотри etoys. Кажется, он более полноценный, чем скретч.
>C#
>уныло
Конечно им, блять, уныло, ёбаный ты задрот. Дети программировать пришли, а не в абстрактные фабрики и прочий жаваподобный ооп-мусор пердолиться.

Для тех, что постарше, могу посоветовать смолтолк вместо питона. По простоте и выразительности он сравним с питоном, но удобство и интересность разработки намного выше за счет поддержки т.н. интерактивного программирования. Возможность пощупать, исправить работающую систему - громадный плюс. Особенно при обучении.

Ответы>>770580>>770587

16 Июн, 03:13 #26 #770580

>>770577
Ну и плюс в сквике из коробки идут библиотеки для работы и с графонием, и со звуком.

16 Июн, 03:58 #27 #770587

>>770057 (OP)
>>770577
Алсо, можно попробовать elm: горячая замена кода есть, frp есть, грофен есть, работает в браузере и язык не такой задротский, как хаскел. Можешь, например, доработать марио http://debug.elm-lang.org/edit/Mario.elm и показать детям. Если их заинтересуешь и если они понимают физику 5х-6х классов,
то они тебе за вечер напердолят свой крузис.

16 Июн, 04:41 #28 #770604

GameBlox - то ли ребрендинг, то ли эволюция скратча. Нереальный двигатель - блюпринты возякать мышкой. Blitz3D - сделать свой крузис, да без такого-то графона. 3DRad (гамак и прочие фпскреэйторы) - таскай@ассеты.
Ну и научи их задачи решать, а не языку. Расскажи, как моды делать, напишите вместе какую-нибудь игру, юзерскрипты для сайтиков (можно сделать бота для браузерки), научи их игры крякать, в ядре линукса покопайтесь, объясни, как за бородой ухаживать.

16 Июн, 10:03 #29 #770715

>>770057 (OP)
ОП, попробуй Ruby. Или Boxer: http://web.archive.org/web/20150905171238/http://www.soe.berkeley.edu/boxer/20reasons.pdf .

Ответы>>770749

16 Июн, 10:06 #30 #770718

>>770057 (OP)
Возьми что-нибудь игроделательное. Unity3D, game maker, love2d, dark basic, в /gd посоветуйся. Можно к майнкрафту моды пилить.

Ответы>>770748

16 Июн, 10:57 #31 #770740

>>770096
сук ждал эту пасту

16 Июн, 11:03 #32 #770746

>>770057 (OP)
> Но наиболее мелким ублюдкам это было абсолютно неинтересно и они либо поливали от меня, либо приходили чисто гонять в каесик.
Надо было Unity изучать, писать игори.

> Во второй раз младшей аудитории я давал Scratch.
Это совсем для маленьких, до 12 лет. Или для тян.

16 Июн, 11:04 #33 #770747

>>770311 >>770351
Вы троллите или реально дебилы?

16 Июн, 11:07 #34 #770748

>>770718
> game maker
Двачую, многие в детстве начинали с него (кроме совсем олдфагов, заставших DOS или Spectrum).
Unity сложнее, но интереснее.

16 Июн, 11:08 #35 #770749

>>770715
> ОП, попробуй Ruby.
RPGMaker можно (там Ruby используется в качестве скриптового языка), но это на любителя.

Ответы>>779983

16 Июн, 11:10 #36 #770750

Добавлю еще Бейсики. Для игорь это Blitz3D и Dark Basic.

16 Июн, 11:13 #37 #770752

>>770096
Говорят, легче начинать именно с функциональных языков (Haskell или Lisp), т.к. они ближе к человеческому мышлению, а сложными кажутся только тем, кто выебал свой мозг императивной парадигмой.

Ответы>>770762>>770768>>770873

16 Июн, 11:26 #38 #770762

>>770752
ебать дебил.

я так и представляю, как мыслит человек
постирать(включить стиральную машину (
Наполнить машину вещами(взять вещи из таза),
засыпать порошок(вес вещей),
выбрать режим (мягкая стирка, 50 градусов)
))

вместо
Стирка:
1. возьмите вещи из таза и загрузите их в барабан
2. засыпьте порошок по весу стираемого белья
3. установите режим мягкая стирка, 50 градусов
4. включите стиральную машину.

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

Ответы>>770771

16 Июн, 11:44 #39 #770768

>>770752
Действительно, обоснуй. Почему функциональные языки считаются простыми?

Да, там ошибки отлавливать легче и параллелятся лучше, но именно с точки зрения восприятия я хуй знает.
Простых для понимания языков походу не существует, лол. С одной стороны у нас скобочки, с другой у нас 28 классов для поддержки правильной иерархии. Заебись, чё

Ответы>>770774>>770777>>770823

16 Июн, 11:47 #40 #770771

>>770762
Еще один даун с промытыми мозгами. Человек мыслит вещами (объектами) и связями между ними (функциями).

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

Императивный стиль тяжел для понимания начинающим. Сколько школьников на уроках информатики осваивало запись X = X + 2? Это надо именно насиловать мозг, чтобы мыслить не вещами, а некими изменяемыми "коробками". Потому что память у человека ассоциатиативна и иммутабельна, а у машины - последовательна и мутабельна.

Ответы>>770815

16 Июн, 11:48 #41 #770774

>>770768
В Excel и Mathematica, например (инструментах для непрограммистов) используется функциональный стиль. Потому что формулы человек понимает лучше, чем скрипты и переменные.

16 Июн, 11:52 #42 #770777

>>770768
> С одной стороны у нас скобочки
В Лого нет никаких скобок (хотя это и не совсем функциональный язык, смешанный как Лисп).

16 Июн, 12:06 #43 #770792

Game Maker. Нахуй скретч

16 Июн, 12:26 #44 #770815

>>770771
>>770771
ты сейчас описал объектное программирование, а не функциональное
Функциональное мышление - это когда
Мне нужно постирать
чтобы постирать, мне нужно включить машину
для того, чтобы включить машину, мне нужно положить вещи из таза в барабан, нужно установить режим мягкая стирка 50градусов, нужно засыпать порошок в резервуар, чтобы положить порошок, мне нужно отмерить его по весу вещей.

вот это и есть функциональное мышление.

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

Ответы>>770884

16 Июн, 12:33 #45 #770823

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

16 Июн, 13:39 #46 #770873

>>770752
Императивное мышление:
Собрать всё бельё в тазик.
Пока в тазике есть грязные вещи, загружать их в стиралку.
Засыпать в стиралку порошок.
Закрыть дверцу.
Задать программу.
Функциональное мышление:
Отобразить пустой тазик в тазик полный грязных вещей (создав по пути новый тазик (старый можно оставить посреди комнаты - сборщик мусора (мамка) о нём позаботится)).
Создать новую стиральную машину с грязными вещами внутри.
Создать ещё одну с грязными вещами и стиральным порошком внутри.
Плоско отобразить стиралку, полученную на последнем шаге, в стиралку с заложенной программой.
>они ближе к человеческому мышлению
Действительно, ближе, а я и не замечал как-то даже.

Ответы>>770884>>772951>>773138>>775136

16 Июн, 13:50 #47 #770884

>>770815
А параметры у функции не последовательно вычисляются, наркоман? Императивное - работает с изменяемой средой. Человек в голове строит модели (объекты) и функции/формулы, описывающие зависимости между ними. Ему важно, что нужно сделать для достижения результата, а не как. Ту же последовательность действий человек может забыть, может перепутать ветви при возможности выбора, но сам набор необходимых команд обычно запоминает.

>>770873
> Отобразить пустой тазик в тазик полный грязных вещей
> Создать новую стиральную машину с грязными вещами внутри.
> Создать ещё одну с грязными вещами и стиральным порошком внутри.
> Плоско отобразить стиралку, полученную на последнем шаге, в стиралку с заложенной программой.
Прикинь, у тебя мозг именно так и работает. Вспомни, как люди складывают/перемножают числа и подумай, почему они с трудом перемножают в уме даже трехзначные числа, но легко распознают цифры на бумаге, а компьютер - наоборот.

Ответы>>770967>>771441

16 Июн, 14:57 #48 #770967

>>770884
>параметры у функции не последовательно вычисляются
При call-by-value последовательно, при call-by-name нет.

Ответы>>771008

16 Июн, 15:36 #49 #771008

>>770967
> call-by-name
Как там, в 1960-м?

Ответы>>771021

16 Июн, 15:57 #50 #771021

>>771008
Охуевший?

> Even though by default Scala is call-by-value, it can also do call-by-name.[10] Today's .NET languages can simulate call-by-name using delegates or Expression<T> parameters. The latter results in an abstract syntax tree being given to the function. Eiffel provides agents, which represents an operation to be evaluated when needed

В call-by-need такакя же хуйня - а это и Haskell, И R, и Lazy<T> в шарпиках

16 Июн, 16:53 #51 #771092

>>770057 (OP)
Блеать, а как же божественный ТУРБО ПАСЦАЛЬ?! Нас что, зря дрочили им в универе? Диды преподавали и ты преподавай!

Ответы>>771124

110 Кб, 824x768

16 Июн, 17:11 #52 #771124

>>771092
Только Sinclair Basic, только черно-белый телевизор. Ньюфажина тот, кто череп не рисовал.

16 Июн, 17:13 #53 #771126

Попробуй мелким blueprints кодинг на Unreal Engine

16 Июн, 17:17 #54 #771135

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

Ответы>>783094

16 Июн, 17:49 #55 #771172

Хм, а может, мне старшим задротам вообще дать Gamemaker Studio и пусть хуярят себе аниме-РПГ, а мелким дать пообмазываться Скретчем, а потом дать погонять Human Resource Machine и Code Combat? Все эти уёбки любят геймз же

Ответы>>771340

1189 Кб, 1920x1080

16 Июн, 18:56 #56 #771247

>>770057 (OP)
Human resource machine самое то для ублюдков.

Ответы>>771283

16 Июн, 19:44 #57 #771283

>>771247
Уже советовали, лол.

16 Июн, 21:00 #58 #771340

>>771172
>аниме-РПГ
Плодить анимублядей?

16 Июн, 22:37 #59 #771441

>>770884
>А параметры у функции не последовательно вычисляются, наркоман?
Параметры функции могут вообще не вычисляться, наркоман

16 Июн, 23:05 #60 #771476

http://www.echudaeva.edurm.ru/index.php?option=com_content&view=article&id=66:-qq&catid=5:---9-&Itemid=7
Привет из начала 90-х

17 Июн, 14:23 #61 #771986

>>770057 (OP)
https://www.packtpub.com/application-development/python-projects-kids

17 Июн, 14:23 #62 #771987

>>770057 (OP)
https://www.packtpub.com/application-development/python-projects-kids

17 Июн, 23:05 #63 #772545

>>770096
Это прикол какой-то? Сейчас выбираю, с чего начать и учебники по Хаскелю больше всего нравятся. Другое дело, что загуглил и о языке пишут абсолютно противоположное.

Ответы>>772597>>772703

17 Июн, 23:32 #64 #772597

>>772545
Да не годится он для детей, ибо графику (как самый наглядный и подстегивающий интерес результат) на нем без штанги не попрограммируешь, а списки чисел складывать и факториалы считать слишком уныло.
Бери, как я уже говорил, smalltalk, elm или что-нибудь другое с быстрой обратной связью, простое и доступное.

Ответы>>783108

18 Июн, 00:31 #65 #772686

>>770057 (OP)
Очевидная Scala. Рекомендую сразу заинтересовать их этим https://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0 https://github.com/non/spire https://spark.apache.org/ http://doc.akka.io/docs/akka/2.4.7/scala/stream/stream-graphs.html

Ответы>>772690>>772695

66 Кб, 994x559

18 Июн, 00:33 #66 #772690

>>772686
Мартин отклеился.

18 Июн, 00:37 #67 #772695

>>772686
Ууух, сколько семантического шума! Хороший сиплюсплюс у хаскелистов получился

18 Июн, 00:51 #68 #772703

>>772545
Никаких приколов. Хаскель - идеальный язык для детей и тех, кто не шарит в программировании и думает, с чего бы начать. Там всё для новичков сделано, сам посуди:
- учебники по Хаскелю - это книжки с картинаками: http://learnyouahaskell.com/ Сравни с каким-нибудь заумным талмудом по Джаве http://www.mindview.net/Books/TIJ/ - даже хуй поймёшь как его скачать.
- ghci - приложение, которое позволяет набрать программу на Хаскелле и сразу запустить её. Ага, попробуй сделать то же самое в Джаве. Даже если скачаешь и установишь крутую IDE вроде IntelliJ Idea, тебе всё равно надо знать, что такое JDK, как его скачать и установить, как настроить проект в этом приложении, где 100500 менюшек. Опытный программист на Джаве это быстро сделает, но он на то и опытный программит, он знает, куда жать, а новичек хуй разберется.
- Стандартная прелюдия: https://hackage.haskell.org/package/base-4.9.0.0/docs/Prelude.html - модуль, который по умолчанию импортируется в хаскель-программу, и в котором есть всё, что нужно новичку. Т.е. если тебе нужно написать программу, которая что-нибудь спрашивает у пользователя, что-то вычисляет и что-то пишет в файл или на консоль, в прелюдии это всё уже есть, не надо думать, какие модули подключить, просто пиши программу и не парься. Просто сравни хелловорлды на Хаскелле и Джаве. Хаскель:
[code]main = putStrLn "Hello, World!"[/code]
Единственное, что тут нужно знать, что main - это специальная функция, которая вызывается при запуске твоей программы. Ну она и называется "main" - типа главная функция. А дальше просто положить-стринг-строку и сама строка "Hello, World!". А теперь Джава:
[code]
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
[/code]
И тут сразу зоопарк вопросов. А что значит class (нужно знать ООП)? А что значит public (нужно знать области видимости)? А что значит static (нужно знать, чем class-methods отличаются от object-methods)? А что есть void? Ну и сам метод println в объекте out модуля System, это всё нужно знать.
- Единый репозиторий. Когда-нибудь ты превратишься из новичка в программиста, которому нужно решать практические задачи. И у программиста нет времени, чтобы писать всё самому на функциях стандартной прелюдии, ему нужно взять уже написанные библиотеки, связать их между собой и получить готовую программу. У тут Хаскеля есть https://hackage.haskell.org/packages с полным списком библиотек, всеми версиями, исходниками и документацией. Всё в вебе, ты можешь просто щекнуть мышкой и посмотреть любой исходник, или посмотреть, насколько популярна библиотека, как часто её скачивают. Также есть https://www.stackage.org, где есть тулза для сборки Хаскель-программ и самые свежие билд-планы, т.е. указания, какие версии библиотек с какими дружат. Разумеется, всё это работает автоматически, тебе не надо заморачиваться за версии, ты просто пишешь stack build и выгружается подобранный мейнтернерами стека план, в котором указаны совместимые между собой версии библиотек и твоя программа собирается. А что есть в той же Джаве? Есть http://www.apache.org . Есть https://spring.io . Есть еще хуй пойми что. Есть еще Maven, в котором ты должен прописать все репозитории и используемые версии. В итоге всё это из говна и палок как-то собирётся. Но только в том случае, если ты сам в этом зоопарке нихуёво шаришь и сделал всё правильно.

Резюмируя: Хаскель - это простой, заточенный под новичков язык, с простой инфраструктурой, где всё максимально автоматизировано и сделано под людей.

Постскриптум: А вот некоторые говорят, что Хаскель - это сложный язык. А вот в Хаскеле есть экзистенциальная типизация, охуеть заумное слово! А еще в Хаскелле есть генерализованные алгебраические типы, охуеть как сложно, высшая алгебра прямо! А я вот вас спрошу, а есть ли она там? Ну напишите мне эту самую программу с экзистенциальной типизацие, ну, ну?! И тут сразу рученки тянуться вхуячить {-# LANGUAGE Rank2Types #-} {-# LANGUAGE TypeFamilies #-} и тому подобное. И здесь я соглашусь, в Хаскелле полно расшений, и многие из них заумные, потому что супер-крутому программисту нужны заумные расширения языка, иначе ему просто не хватит выразительных средств. В Хаскелле эти средства есть. Но по умолчанию они все отключены. А супер-крутой программист включает только то, что ему надо. В итоге, сложный ли Хаскель? Да нет, нихуя не сложный, он напротив очень прострой по сравнению с той же Скалой, потому что все выебоны в нём по умолчанию выключены и включаются вручную, когда они нужны. Т.е. когда какой-нибудь выебонщик что-то хуячит, он явно указывает, какие сложные фишки языка надо включить, в итоге каждый модуль содержит минимально-необходимое количество сложных фишек, все остальные попросту отрублены.

18 Июн, 00:51 #68 #772703

>>772545
Никаких приколов. Хаскель - идеальный язык для детей и тех, кто не шарит в программировании и думает, с чего бы начать. Там всё для новичков сделано, сам посуди:
- учебники по Хаскелю - это книжки с картинаками: http://learnyouahaskell.com/ Сравни с каким-нибудь заумным талмудом по Джаве http://www.mindview.net/Books/TIJ/ - даже хуй поймёшь как его скачать.
- ghci - приложение, которое позволяет набрать программу на Хаскелле и сразу запустить её. Ага, попробуй сделать то же самое в Джаве. Даже если скачаешь и установишь крутую IDE вроде IntelliJ Idea, тебе всё равно надо знать, что такое JDK, как его скачать и установить, как настроить проект в этом приложении, где 100500 менюшек. Опытный программист на Джаве это быстро сделает, но он на то и опытный программит, он знает, куда жать, а новичек хуй разберется.
- Стандартная прелюдия: https://hackage.haskell.org/package/base-4.9.0.0/docs/Prelude.html - модуль, который по умолчанию импортируется в хаскель-программу, и в котором есть всё, что нужно новичку. Т.е. если тебе нужно написать программу, которая что-нибудь спрашивает у пользователя, что-то вычисляет и что-то пишет в файл или на консоль, в прелюдии это всё уже есть, не надо думать, какие модули подключить, просто пиши программу и не парься. Просто сравни хелловорлды на Хаскелле и Джаве. Хаскель:
[code]main = putStrLn "Hello, World!"[/code]
Единственное, что тут нужно знать, что main - это специальная функция, которая вызывается при запуске твоей программы. Ну она и называется "main" - типа главная функция. А дальше просто положить-стринг-строку и сама строка "Hello, World!". А теперь Джава:
[code]
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
[/code]
И тут сразу зоопарк вопросов. А что значит class (нужно знать ООП)? А что значит public (нужно знать области видимости)? А что значит static (нужно знать, чем class-methods отличаются от object-methods)? А что есть void? Ну и сам метод println в объекте out модуля System, это всё нужно знать.
- Единый репозиторий. Когда-нибудь ты превратишься из новичка в программиста, которому нужно решать практические задачи. И у программиста нет времени, чтобы писать всё самому на функциях стандартной прелюдии, ему нужно взять уже написанные библиотеки, связать их между собой и получить готовую программу. У тут Хаскеля есть https://hackage.haskell.org/packages с полным списком библиотек, всеми версиями, исходниками и документацией. Всё в вебе, ты можешь просто щекнуть мышкой и посмотреть любой исходник, или посмотреть, насколько популярна библиотека, как часто её скачивают. Также есть https://www.stackage.org, где есть тулза для сборки Хаскель-программ и самые свежие билд-планы, т.е. указания, какие версии библиотек с какими дружат. Разумеется, всё это работает автоматически, тебе не надо заморачиваться за версии, ты просто пишешь stack build и выгружается подобранный мейнтернерами стека план, в котором указаны совместимые между собой версии библиотек и твоя программа собирается. А что есть в той же Джаве? Есть http://www.apache.org . Есть https://spring.io . Есть еще хуй пойми что. Есть еще Maven, в котором ты должен прописать все репозитории и используемые версии. В итоге всё это из говна и палок как-то собирётся. Но только в том случае, если ты сам в этом зоопарке нихуёво шаришь и сделал всё правильно.

Резюмируя: Хаскель - это простой, заточенный под новичков язык, с простой инфраструктурой, где всё максимально автоматизировано и сделано под людей.

Постскриптум: А вот некоторые говорят, что Хаскель - это сложный язык. А вот в Хаскеле есть экзистенциальная типизация, охуеть заумное слово! А еще в Хаскелле есть генерализованные алгебраические типы, охуеть как сложно, высшая алгебра прямо! А я вот вас спрошу, а есть ли она там? Ну напишите мне эту самую программу с экзистенциальной типизацие, ну, ну?! И тут сразу рученки тянуться вхуячить {-# LANGUAGE Rank2Types #-} {-# LANGUAGE TypeFamilies #-} и тому подобное. И здесь я соглашусь, в Хаскелле полно расшений, и многие из них заумные, потому что супер-крутому программисту нужны заумные расширения языка, иначе ему просто не хватит выразительных средств. В Хаскелле эти средства есть. Но по умолчанию они все отключены. А супер-крутой программист включает только то, что ему надо. В итоге, сложный ли Хаскель? Да нет, нихуя не сложный, он напротив очень прострой по сравнению с той же Скалой, потому что все выебоны в нём по умолчанию выключены и включаются вручную, когда они нужны. Т.е. когда какой-нибудь выебонщик что-то хуячит, он явно указывает, какие сложные фишки языка надо включить, в итоге каждый модуль содержит минимально-необходимое количество сложных фишек, все остальные попросту отрублены.

Показать весь текст
Ответы>>772738

18 Июн, 01:09 #69 #772720

Детям постарше можно попробовать дать Kotlin. Он прост в понимании, достаточно лаконичен, мощный.

Ответы>>772723

18 Июн, 01:12 #70 #772723

>>772720
Есть хоть одна причина форсить это говно среди зоопрака аналогичных говн?

Ответы>>772732

18 Июн, 01:20 #71 #772732

>>772723
> есть хоть одна причина
Говорю же: он прост для вкатывания и освоения основ программирования. Я предложил его как вариант для старших школьников. Никто не заставляет на нём работать.
> зоопарк аналогичных говн
Например?

Ответы>>772739>>772746

18 Июн, 01:31 #72 #772738

>>772703
>А вот некоторые говорят, что Хаскель - это сложный язык.
И правильно говорят. Хаскель прост ровно до тех пор, пока ты считаешь факториалы, реальный же код писать невозможно из-за тех самых супер-программистов, которым так и не терпится хоть куда-нибудь воткнуть крутой йобаморфизм, о котором они только что узнали. В итоге 90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей (лишних в основном) на строчку кода либо просто сырые недоделки. Я одно время угорал по хаскелю, но меня заебало часами червить документацию очередной решающей тривиальную проблему библиотечки, чтобы разобраться в заумных изъёбствах её автора.

Ответы>>773135>>773151

18 Июн, 01:34 #73 #772739

>>772732
Котлин прост для жаба-программистов, а не для вкатывания.

18 Июн, 01:43 #74 #772742

>>770057 (OP)
Scheme. Точнее, Racket. Для обеих возрастных групп. Там тебе и графическая поебень и все, что захочешь. Со старшими можешь и сикп порешать, если там не лагерь дцпшников. Только не засирай неокрепшие умы ООП ссаниной, прошу. И парашу со сломанным скоупингом aka питон давать не смей.

Ответы>>772744

18 Июн, 01:49 #75 #772744

>>772742
>Там тебе и графическая поебень
Насколько я помню, она была то ли сырая, то ли жутко медленная, то ли просто ебанутая. В общем, непригодная для использования.

Ответы>>772748

380 Кб, 1996x1996

18 Июн, 01:54 #76 #772746

>>772732
А в котлине есть что-то уровня https://github.com/scalaz/scalaz ? А то дети не заинтересуются.

Ответы>>772845

18 Июн, 02:09 #77 #772748

>>772744
А, вспомнил! FrTime была сырая, хуйня для графена медленная и с не самым удобным api (могли бы и edsl запилить, ведь ракета так для этого подходит), ну а ебанутой, видимо, была сама ракета.

Ответы>>772752

18 Июн, 02:32 #78 #772752

>>772748
>ну а ебанутой, видимо, была сама ракета
Уж не знаю. Когда смотрел? Может допилили с тех пор. Глянь еще раз. Для твоих целей, по моему, лучше не найти.
Олсо, подумай насчет Go.

Ответы>>772753>>773000

18 Июн, 02:38 #79 #772753

>>772752
Я не ОП, а тот анон, что советовал ему элм или смолтолк

18 Июн, 10:29 #80 #772845

>>772746
Ты собрался этим детей заинтересовывать? Рофлишь?

Ответы>>772847>>773559

18 Июн, 10:31 #81 #772847

>>772845
Я тоже считаю что shapeless лучше

18 Июн, 12:16 #82 #772925

>>770057 (OP)
лучшие ЯП для обучения это:
Logo (https://goo.gl/5Lql3Y) - тут мы учимся рассуждать, юзать рекурсию, программировать мультиагентные системы (https://goo.gl/ZjLSyl)

Scratch (https://goo.gl/VInUxk) - продолжение идеи Logo, только ещё и EventDriven.

Oz (https://goo.gl/xBcDdv) и его реализация Mozart - приучает к нормальному восприятию конкурентного dataflow программированию.

В общем-то ещё можно показать смолток.

18 Июн, 12:53 #83 #772951

>>770873
Лол, императивный дебилоид решил блеснуть знаниями.
Все твои последовательные тумба-юмба инструкции "Взять копьё; Убить мамонта; Съесть мясо" - это как раз противоестественная хуита для специально выведенных компьютерных опущенцов байтоёбов, мыслящих как машина. Заметь, ни в математике, ни в физике такой примитивной хуйни нет, потому что человек мыслит абстрактно, и только червь-байтоёб мыслит командами.

И в мышлении нормального человека не будет никаких низкоуровневых "создать", "удалить", "пока", "старая версия", "сборщик мусора". И кстати, персистентные структуры как раз естественны, ведь прибавив к 1 ещё 1, ты не уничтожаешь единицу, она по прежнему продолжает существовать. Это только в мире процедурных опущей с их i++ колдунствами, переменная это не переменная в нормальном смысле, а специальная коробочка куда что-то можно положить, потом забрать, потом положить что-то ещё. И не будет всего этого убогого перекладывания кирпичиков, а будет просто контейнерный тип, одна свертка и отображение. Потому что это обобщенные понятия, которые работают везде, не важно что нужно делать, постирать бельё, собрать результаты двух парсеров, или посчитать сумму двух сигналов. Этому учат с самого детства на уроках алгебры. Поиск закономерностей это и есть важнейшая часть человеческого обучения. И только отмороженный инженегр-аутист, ничему не учится, так и продолжая перекладывать какашки с места на место своими инструкциями.

Ответы>>772956>>772976

18 Июн, 12:58 #84 #772956

>>772951
>для специально выведенных компьютерных опущенцов байтоёбов, мыслящих как машина
Почему тогда в кулинарных рецептах тоже императивный стиль? Домохозяйки -- байтоёбы?

Ответы>>772975>>772988

18 Июн, 13:16 #85 #772975

>>772956
Процесс готовки по рецепту тут как раз аналогичен выполнению последовательности инструкций процессором. А вот процесс придумывания нового блюда как раз подключает декларативное мышление и использование известных закономерностей (x зависит от y и z по таким то правилам). А написание уже готового рецепта - это компиляция нормальных декларативных рассуждений в набор команд для тупого исполнителя.

18 Июн, 13:21 #86 #772976

>>772951
>Все твои последовательные тумба-юмба инструкции "Взять копьё; Убить мамонта; Съесть мясо" - это как раз противоестественная хуита для специально выведенных компьютерных опущенцов байтоёбов
Просто ты, дружок, забыл уже, как чему-то учился. На самом деле, это печально. Сие значит, что ты в развитии остановился очень давно. Не важно, умственный ли скилл ты учишь, или физический, но делается это именно так. И лишь после определённых часов практики тьы можешь, наконец, "мыслить абстрактно", когда ты настолько до автоматизма задрочил мелкие действия, что это для тебя "пойти в магазин", а не "выйти на лестницу, согнуть ногу, перенести вес... и так далее".

Ответы>>772989

18 Июн, 13:35 #87 #772988

>>772956
Там не императивный, тащемта. Определяются лишь зависимости между шагами, а как и когда их выполнять - решает он сам исполнитель.
>Очистить чеснок |> порубить мелко |> обжарить |> добавить (мясо |> промыть |> нарезать)
Где |> имеет тип a -> (a -> b) -> b

Ответы>>773001

18 Июн, 13:36 #88 #772989

>>772976
Т.е. ты думаешь, чтобы прийти к понятию числа 3, нужно сначала сначала увидеть три камня, и три яблока и три ещё чего нибудь? А так просто умозрительно это сделать никак? И чтобы прийти к понятию вычитания нужно сначала взять три яблока и одно съесть чтоб стало два? Вообще я не специалист по обучению, может действительно ребёнок первое время учится исключительно восходящим путём. Но ведь потом он накапливает достаточно закономерностей, потом учит математику, логику, другие точные науки. И дальше не обязательно каждую вещь сначала делать, чтобы потом выводить общение. А наоборот сначала изучить общие правила и потом уже по Top-Down применять их на чем то конкретном. В общем-то этому в вузиках и учат.

Ответы>>772992>>772997

18 Июн, 13:41 #89 #772992

>>772989
>В общем-то этому в вузиках и учат.
Учат, да только императивное быдло там нчиего понять не способно и поэтому механически заучивает действия, которые приводят к сдаче контрольных и переходу с курса на курс. Тупые, жрущие говно быдлостуденты.

18 Июн, 13:47 #90 #772997

>>772989
>три камня, и три яблока и три ещё чего нибудь? А так просто умозрительно это сделать никак?
Именно так. Число само по себе - не число чего-то, а число в отрыве от этого чего-то, даже концепция количества - это абстракция, обобщение.
К интуитивному понятию любой абстракции обычно приходят через опыт работы с частными случаями, которые - как становится в какой-то момент понятно - могут быть обобщены и абстрагированы в какое-то понятие более высокого уровня.
Математики в своих книжках и статьях сразу выплескивают на читателя определение абстракции, из чего у неподготовленного читателя может сложиться впечатление что это естественный путь. Но это не так, сами же математики, если им нужно работать с какой-то незнакомой им областью, после ознакомления с определениями аккое-то время (иногда довольно большое) отводят себе именно на выработку интуиции о понятиях этой области - это можно делать разными способами, например порешать какие-то задачки из нее, подоказывать теоремы - все это сводится к тому чтобы покрутить в руках (голове) разные частные проявления тех абстракций, которые им нужны.
С монадами, паттернами, и многими другими абстракциями в программировании, например, хорошее, годное их понимание приходит после того как человек с десяток раз напрограммировал разные варианты чего-то очень похожего, и ВНЕЗАПНО обнаружил что блджад, да я что-то почти такое, только в полосочку уже писал несколько раз - после этого он задумывается о том чем же именно оно было похоже между собой и выделяет абстракцию.

18 Июн, 13:48 #91 #773000

>>772752
>Олсо, подумай насчет Go.
Когда мне было 15 лет, и я ездил в лагерь вожатый всё время как-бы невзначай крутился возле компа, и всё спрашивал, почему ты не передаёшь указатель на структуру, почему передаешь саму структуру? первый раз я не ответил, так он начал стучать по столу, и орать, что ты там итерируешь, почему у тебя потребление памяти превышает 14 килобайт? начал материться, и говорить, что вообще на Си переведёт всю группу, будем вручную память очищать, алсо, вожатый ругался, если я передаю аргумент не как указатель , причём не просто при объявлении метода структуры, а везде, мотивировал это тем, что памяти меньше нужно, и сам потом мне говорил: вот я объявлю функцию и и передаю ей указатель, и ты так делай!
однажды я программировать сел, и слышу, вожатый где-то у двери встал в отдалении, ну я скомпилировал всё, и на пол накарачики присел, а там щель очень широкая снизу у двери, ну я в щель и смотрю, а там вожатый на карачиках сидит и в щель смотрит, и мне говорит: ты чё? ебанутый? чё ты там делаешь?
вожатый кстати всё время какие-то методы у структур объявляет, чтобы писать было удобдно, пишет по 5 программ в день, а потом говорит, что пальцы жжёт, и ещё монады любит. пиздец короче!
реальная история. я не тролль

18 Июн, 13:50 #92 #773001

>>772988
Готовить по рецепту == проходить монаду?

Ответы>>773003

18 Июн, 13:50 #93 #773003

>>773001
Где ты монаду увидел? Обычная апликация функций

Ответы>>773007

18 Июн, 13:53 #94 #773007

>>773003
Я везде вижу монады. Они мне даже снятся иногда.

Ответы>>773009>>773015

18 Июн, 13:54 #95 #773009

>>773007
Пробовал подрочить на монаду? Есть правило 34 с монадами?

18 Июн, 13:58 #96 #773015

>>773007
Зачем тогда спрашиваешь про готовку, если и без меня там видишь монады?

18 Июн, 16:10 #97 #773135

>>772738
>В итоге 90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей (лишних в основном)
Если 90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей тебе не составит труда назвать, скажем 20 таких библиотек из перечисленных тут https://hackage.haskell.org/packages/ нескольких тысяч, а так же объяснить, какие именно сущности в них лишние? Не то, чтобы я не доверял твоему экспертному мнению, но просто если ты такие вещи пишешь, тебе наверное очень легко будет ответить на мой вопрос, о великий гуру Хаскеля.

Ответы>>773180

18 Июн, 16:13 #98 #773138

>>770873
Но у тебя две императивные программы написаны. И та и другая у тебя - последовательности действий, видимо ты еще не освоил функциональное мышление.

Ответы>>773864

18 Июн, 16:32 #99 #773151

>>772738
>неоправданно переусложненный
Оправданно. Попробуй сделать все то же самое, но значительно проще. Сложней сделать несложно - Scala тому пример.

Но действительно

> Once you manged to grok the basic stuff about Typeclasses, Functors, Applicative, Monads, Monad Transformers, different notions of recursion, a minimal understanding of how lazyness can be quite tricky, the multitude of different ways of how errors and exceptions are handled in various libraries, and perhaps basic STM, Haskell has a tendency to become even more complex. If you want to do efficient IO and prevent space leaks, you have to learn about Iteratees, Enumerators and Enumeratees. If you wish to create GUIs in a bearable manner, its imperative that you learn about FRP and Arrows eventually. Then there's the innumerable amount of language extensions to Haskell of the GHC flavor, each of which comes with only scarce documentation and examples, but with a lot of theory (Fundeps, Type families, Existential types, GADTs). But there's more: Comonads, Kleisli Arrows and probably things I haven't even heard about. The whole point being: If you want to be able to handle 'real world stuff' in Haskell, its not enough to stay 'mostly pure' and use StateT, unfortunately. I like Haskell - I shudder when I think of C, C++ and Java - but at this point in time I find it overwhelming

Ответы>>773160

18 Июн, 16:40 #100 #773160

>>773151
>Попробуй сделать все то же самое, но значительно проще.
Дело в том, что то же самое иначе не сделаешь. Упрощать нужно не реализацию, а сам дизайн библиотеки. Точнее, не упрощать, а полностью переделывать с нуля.

Ответы>>773168>>773180

18 Июн, 16:43 #101 #773168

>>773160
Как именно ты предлагаешь все переделать? Излагай.

Ответы>>773177

18 Июн, 16:48 #102 #773177

>>773168
Все. Так я прям всё и брошу, начну шерстить хакейдж, займусь перепроектировкой библиотек и всё ради ублажения праздного интереса анона, который ещё и, возможно, сектант и меня попросту не услышит.

Ответы>>773187>>773203

1216 Кб, 470x470

18 Июн, 16:52 #103 #773180

>>773160
Почему ты продолжаешь набрасывать делая вид, что не заметил мой вопрос >>773135 ? Он слишком неудобный?

Ответы>>773190

106 Кб, 960x720

18 Июн, 16:55 #104 #773187

>>773177
Тебе не надо ничего шерстить, ты сказал, что там "90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей (лишних в основном)". Раз ты так сказал, ты очевидно, уже прошерстил весь хакейдж, или по крайней мере большую его часть, поэтому тебе не составит труда привести пример, допустим 20 библиотек и лишних сущностей в них. Есть, конечно, еще один вариант - ты просто пиздабол, который пиздит о чём понятия не имеет, но ты ведь не такой, правда?

Ответы>>773203

18 Июн, 16:57 #105 #773190

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

Ответы>>773196>>773198

18 Июн, 16:59 #106 #773192

>>770076
Так она короткая, если не дебил, то часа за 3 можно пройти.

Хотя если чисто давать там по одной миссии в день, то сойдет.

801 Кб, 2560x1920

18 Июн, 17:02 #107 #773196

>>773190
Но ведь ты ведь не на экзамене с ручкой и читым листком бумаги, чтобы оправдываться перед профессором в духе "я знаю ответ, но забыл!" Тебе достаточно зайти на http://hackage.haskell.org/packages/ и открыть несколько популярных библиотек. Там ведь 90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей, поэтому найти их не составит для тебя труда. Если, конечно, ты вообще что-то знаешь о языке.

Ответы>>773203

18 Июн, 17:04 #108 #773198

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

Ответы>>773203

18 Июн, 17:08 #109 #773203

>>773187
У тебя там ВРЁТИ что ли? Предлагаю тебе самому провести эксперимент: выбери какую-нибудь простую задачу (будь то пара содомирующихся фигурок на черном экране, работа с базой данных или ещё что-то) и реши её на хаскеле и каком-нибудь другом, более подходящем языке, а затем сравни затраченные усилия.
>>773196
-> >>773177
>>773198
Сравни хотя бы ямпу в хаскеле и реакт (или как он там назывался) в окамле.

Ответы>>773311

268 Кб, 1250x720

18 Июн, 18:39 #110 #773311

>>773203
>У тебя там ВРЁТИ что ли?
Нет, просто было интересно, можешь ли чем-нибудь подтвердить свой наброс. Ну не можешь, так не можешь.
>Предлагаю тебе самому провести эксперимент
Проводил уже неоднократно.
>Сравни хотя бы ямпу в хаскеле и реакт
Давай сравним.

Ответы>>773359

18 Июн, 18:43 #111 #773315

>>770380
computercraft

http://www.computercraft.info/

18 Июн, 19:39 #112 #773359

>>773311
Ну сравни, потом расскажешь. Можешь ещё потом для сравнения взять frp из elm и racket.

Ответы>>773416

18 Июн, 19:51 #113 #773378

тред не читал
помню была какая то игра с блоками, наверно вроде скретча
составляешь из них алгоритм, если правильно - высирает тебе письменное решение на таком-то ЯП

18 Июн, 19:54 #114 #773383

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

18 Июн, 20:10 #115 #773416

>>773359
Но зачем мне их сравнивать, ведь это ты спизданул что "90% библиотек - неоправданно переусложненный шлак с зашкаливающим количеством сущностей (лишних в основном)", а теперь пытаешься увильнуть от ответсвенности.

Ответы>>773442>>773443

18 Июн, 20:40 #116 #773442

>>773416
Зачем? Не знаю, зачем тебе это. Ты же, наверное, не просто так прилип как банный лист к жопе и уже второй день отлипнуть не можешь. Доказывать я тебе ничего не собираюсь, потому что 1) мне лень снова ковырять библиотеки, вникать в документацию, потом ещё тебе всё по полочкам раскладывать, ведь сам ты, как выяснилось, провести анализ и сравнение не можешь, несмотря на свою заинтересованность, 2) есть подозрение, что эти усилия будут напрасны ввиду твоей фанатичности, о которой намекают твои хвалебные оды хаскелю.
Так что, хочешь докопаться до истины - валяй: сравнивай библиотеки, подсчитывай сущности, оценивай трудозатраты на изучение документации, что хочешь, то и делай, но сам. Ну а я выводы для себя уже давно сделал.
Ну или просто забудь и продолжай свою пропагандистскую форумную деятельность, пока не разочаруешься в своем предмете обожания после первого более-менее реального проекта.

Ответы>>773450

18 Июн, 20:40 #117 #773443

>>773416
я не он

> If error handling is so great in Haskell, then why am I putting it under the complaints section? Well, it turns out that not everyone seems to think it’s as great as I make it out to be because people seem to keep writing Haskell APIs that throw exceptions!
> Despite what some purists would have you believe, Haskell has exceptions, and they are not uncommon. Lots of things can throw exceptions, some of which are probably reasonable. Failing to connect to a database is a pretty catastrophic error, so it seems fair that it would throw. On the other hand, inserting a duplicate record is pretty normal operation, so it seems like that should not throw.
> It’s also probably worth noting that exceptions in Haskell can be thrown from anywhere, even pure code, but can only be caught within the IO monad. This is especially scary, but I’ve seen it happen in actual libraries out in the wild, even ones that the entire Haskell ecosystem is built on. One of the crowning examples of this is the text package, which provides a function called decodeUtf8 to convert bytestrings into text. Its type is very simple:
> decodeUtf8 :: ByteString -> Text
> But wait, what if the bytestring is not actually a valid UTF–8 string?
>A couple weeks later, we found that providing this function with invalid data was returning HTTP 500 errors. Why? Our error handling was meticulous! Well, the answer was a decodeUtf8 call, hidden inside of the JWT library. This is especially egregious, given that the API it exposed returned a Maybe anyway!
https://lexi-lambda.github.io/blog/2016/06/12/four-months-with-haskell/

Ответы>>773463

18 Июн, 20:50 #118 #773450

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

Ответы>>773473

18 Июн, 20:54 #119 #773463

>>773443
И что именно это доказывает?

Ответы>>773568

18 Июн, 21:00 #120 #773473

>>773450
Значит, ты решил выбрать второй вариант. Я так и думал.

Ответы>>773475

18 Июн, 21:03 #121 #773475

>>773473
Нет, я решил проверить, есть ли за твоим заявлением реальные факты, или это просто наброс. Выяснилось, что просто наброс.

18 Июн, 22:31 #122 #773559

>>772845
Что может быть интереснее, чем функциональное программирование?

Ответы>>773563

18 Июн, 22:33 #123 #773563

>>773559
Пони

Ответы>>773567

18 Июн, 22:35 #124 #773567

>>773563
Это для престарелых педерастов, а не для детей

Ответы>>773573

18 Июн, 22:35 #125 #773568

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

33 Кб, 250x223

18 Июн, 22:40 #126 #773573

>>773567
Ты завязывай с монадами, здоровье не резиновое.

Ответы>>773646

190 Кб, 720x960

18 Июн, 23:26 #127 #773646

>>773573

19 Июн, 05:08 #128 #773847

>>770057 (OP)
http://pythontutor.ru если будешь давать ублюдкам ЗМИЯ, http://informatics.mccme.ru тут можно глянуть обучение на олимпиадных задачках, ботанам понравится.

19 Июн, 06:30 #129 #773864

>>773138
let tazik = put_to pustoi_tazik @@ List.filter (fun belie -> belie.gryaznoe) vse_belie in
let stiralka = put_to pustaya_stiralka @@ dostat'_iz tazik in
let stiralka1 = add_poroshok stiralka poroshok in
...
?

Ответы>>773964

19 Июн, 09:56 #130 #773964

>>773864
проиграл
это питон?

Ответы>>774524

19 Июн, 16:59 #131 #774524

>>773964
Окамл

19 Июн, 21:13 #132 #774759

>>770057 (OP)
https://racket-lang.org/
http://docs.racket-lang.org/quick/
Попробуй racket. Как раз для этого и создавался.
Кармак рекомендует, его огрызок мелкий на нем пишет.

19 Июн, 21:34 #133 #774792

Пиздец, так в итоге в 21 стоит с Хаскеля начинать?

Ответы>>774852

19 Июн, 22:41 #134 #774852

>>774792
Ебанулся что ли?

Ответы>>774855

19 Июн, 22:45 #135 #774855

>>774852
Почему ебанулся?

Ответы>>774859>>774862

19 Июн, 22:46 #136 #774859

>>774855
Потому что дети на нем ничего, кроме факториалов, написать не смогут.

Ответы>>774877

19 Июн, 22:49 #137 #774862

>>774855
OP, ETO TY?

Ответы>>774877

19 Июн, 23:00 #138 #774877

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

>>774862
NET. POCHEMU VY SPRASHIVAETE?

Ответы>>774880

19 Июн, 23:05 #139 #774880

>>774877
Ну для себя можешь и хаскель взять, а можешь и общелисп какой. Да хоть даже смолтолк

Ответы>>774881>>774887

19 Июн, 23:06 #140 #774881

>>774880
Или даже форт, или ребол/ред

19 Июн, 23:18 #141 #774887

>>774880
Выше писали, мол, "язык X портит восприятие". Вообще, часто читал, что люди последующие ЯП изучали в контексте первого. Другое дело, что тут были хорошие, как мне показалось, аргументы в пользу Хаскеля, а противник не смог ничего конкретного противопоставить. Потому и уточнил.

Ответы>>774889>>774891>>774908

19 Июн, 23:20 #142 #774889

>>774887
С хаскелем ты не найдешь для себя вводной в программирование литературы как минимум.

Ответы>>774907>>774910

19 Июн, 23:24 #143 #774891

>>774887
В MIT, кажется, были вводные курсы на ocaml. Можешь их поискать.
Ну и сам язык, окамл, получше будет в плане практичности.

Ответы>>774910

19 Июн, 23:51 #144 #774907

>>774889
>вводной в программирование литературы
http://www.ozon.ru/context/detail/id/28346038/ объясняются все принципы программирования с самого начала.

19 Июн, 23:51 #145 #774908

>>774887
Это не тот язык, которым среднестатестического долбоеба 8-16 лет обучишь за 3 недели, тем более поддерживая интерес.

19 Июн, 23:55 #146 #774910

>>774889
Хотел начать с "Learn You a Haskell for Great Good!". В введении с оговоркой написано, что можно и первой книгой по программированию брать. Или лучше Lisp (Common?) тогда?

>>774891
Именно вводные не смог найти.

Ответы>>774927

20 Июн, 00:33 #147 #774927

>>774910
http://ocaml.org/learn/teaching-ocaml.html
Там куча разных курсов.

20 Июн, 12:54 #148 #775136

>>770873
Конкатенативный стиль:
Бельё в тазик собрать
Из тазика в машину загрузить
Порошок в стиралку засыпать
Стиралки дверцу закрыть
Стиралки программу задать
И всё это кратко, и даже вполне функционально.

Вот, держи: http://kittenlang.org/

Ответы>>775141

20 Июн, 12:59 #149 #775141

>>775136
Kitten в моем /pr

слезы радости

В тацитном стиле напиши

Ответы>>775165

20 Июн, 13:19 #150 #775165

>>775141
Лучше в явном стиле J напишу:
задать&программу закрыть&дверцу засыпать&порошок стиралку загрузить тазик собрать бельё

Ответы>>775173

0 Кб, 59x90

20 Июн, 13:26 #151 #775172

1) Скрипты в Ёксели им покажи. Как вывести MessageBox с надписью "ты хуй", как в списке из 1000 фамилий сделать первую букву везде заглавной, как ячейки на всём листе шахматной доской раскрасить. Включи фантазию.
2) Если лагерь технарской направленности, притащи Ардуину со светодиодами. Заставь светодиоды светофором мигать, это строчек в 10-20 делается. На двухстрочный ЛСД-дисплей тоже може ардуиной "ты хуй" вывести и в корпус от какого-нибудь школьного дерьмометра засунуть.

Ответы>>775175

114 Кб, 535x437

20 Июн, 13:27 #152 #775173

>>775165
На пайпах было бы наглядней

http://www.slideshare.net/vinothchandar/composing-and-executing-parallel-data-flow-graphs-wth-shell-pipes

20 Июн, 13:28 #153 #775175

>>775172
>Скрипты в Ёксели им покажи
Потом Prolog
Потом Datalog
Потом их не возьмут в лухософт

20 Июн, 13:49 #154 #775192

>>770057 (OP)
Важнее не какой язык, я что писать.
Если даёшь C#, то показывай Unity. Можешь дать Java и учить делать плагины к майнкрафту. JS опять же может хорошо зайти, если делать игры.

Ответы>>775356

20 Июн, 16:56 #155 #775328

>>770070
А мне похуй, я вкатываюсь. И ты так делай

20 Июн, 17:17 #156 #775339

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

20 Июн, 17:59 #157 #775356

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

20 Июн, 19:38 #158 #775401

>>770057 (OP)
>Что ещё можно предложить детям?
http://www.apple.com/swift/playgrounds/

Ответы>>775403

117 Кб, 804x604

20 Июн, 19:41 #159 #775403

>>775401
Cамое то для сраных детей. Если денег на айпады нет, то можно какие-нибудь колоботы и аналоги поискать.

Ответы>>779973

25 Июн, 23:01 #160 #779883

Не засирайте детям мозги, ASM и/или C.
Топовая база для любого движения.

Ответы>>779971>>780006

26 Июн, 03:19 #161 #779971

>>779883
Этому говну полезному пусть в вузиках обучаются. Сейчас дать им просто алгоритмизирование зойдачек уже достаточно.

26 Июн, 03:26 #162 #779973

>>775403
А на соснолях есть что-нибудь подобное?

Ответы>>779976

26 Июн, 03:38 #163 #779976

>>779973
Чот представил прогроммирование на геймпаде.

Ответы>>779977

26 Июн, 03:42 #164 #779977

>>779976
Так там же все блоки визуальные, текст набирать не надо.

Ответы>>779978

26 Июн, 03:43 #165 #779978

>>779977
Ну это само собой, но я то представил не визуальное.

26 Июн, 04:10 #166 #779983

>>770749
Уже js.

Ответы>>780002

26 Июн, 05:21 #167 #780002

>>779983
Уже сами японцы не хотят писать на Руби. Хотя годный был язык, и детей на нем вполне можно было обучать, как раньше на Бейсике. Что сейчас осталось, только Питон и Го?

Ответы>>780454

26 Июн, 05:29 #168 #780006

>>779883
Си, увы, нет. Возьмем самый простейшую программу:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
Детям придется объяснять:
1. Что такое заголовочные файлы и препроцессор.
2. Что такое типы данных.
3. Что такое массивы и указатели.
4. Что такое спецсимволы.
5. Что такое функции и возвращаемые значения.
Сомневаюсь, что кто-то осилит все это на первом уроке.

Ответы>>780012

26 Июн, 05:41 #169 #780012

>>780006
#include <stdio.h>
main:
printf("Hello world");
>просто вставьте эту строку и пока о ней забудьте

Ответы>>780022

26 Июн, 06:24 #170 #780022

>>780012
Там всю программу придется забывать, кроме одной строки. И вообще, непонятная магия ("это тебе знать пока не нужно") - не лучший способ обучения программированию. Программист должен знать, как работает каждая его строчка, чтобы с легкостью вносить изменения и править баги. Иначе получаются быдлокодеры, которые не могут на собеседовании рассказать, как в Java устроен HashMap и чем он отличается от TreeMap.
Дети тем более будут задавать вопросы, они очень любопытны. В итоге придется объяснять все.

Ответы>>780030

26 Июн, 07:04 #171 #780030

>>780022
А пацаны в гарварде-то и не знают. Пожалуйста, не пиши больше хуйни в этот раздел.

Ответы>>780033

26 Июн, 07:08 #172 #780033

>>780030
В гарварде учатся школьники, не умеющие программировать? Пожалуйста, не пиши больше хуйни в этот раздел.

Ответы>>780034>>780041

26 Июн, 07:15 #173 #780034

>>780033
Алсо, курс из MIT для начинающих именно на Python:
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-8
Внезапно, и в Гарварде тоже:
https://www.summer.harvard.edu/courses/introduction-programming-python/33562
Про C же ничего найти не удалось. Так что не придумывай и не пиши хуйню.

26 Июн, 07:25 #174 #780038

>>770057 (OP)
Язык не важен, важны задачи.

Узнай что итм интересно, и делайте это.

26 Июн, 07:39 #175 #780041

>>780033
Студенты, которые компьютера могли в глаза до курса не видеть. Кушай https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

Ответы>>780352

26 Июн, 10:48 #176 #780091

>>770070
Если две извилины есть, то можно за пару лет в программирование вкатится, конечно суперзвездой не станешь, но вполне сможешь реализовать свои проекты. Так что 30 это еще совсем не поздно

26 Июн, 10:51 #177 #780096

>>770096
Питон один из самых легких языков. Возможностей мало, хех да на нем почти все задачи решать можно.

Ответы>>781063

sage 26 Июн, 14:56 #178 #780352

>>780041
Там так и сказано в первой лекции?
>просто вставьте эту строку и пока о ней забудьте
Сомневаюсь, что профессора в Гарварде такие же долбоебы, как ты.

Ответы>>780923

26 Июн, 16:15 #179 #780454

>>780002
>раби
>годный
end
end
end
end

Ответы>>780498>>780570

26 Июн, 17:23 #180 #780498

>>780454
> был
> как раньше на Бейсике

26 Июн, 18:54 #181 #780570

>>780454
Вообще-то в руби есть еще и {}

27 Июн, 04:53 #182 #780923

>>780352
Да, именно так и сказано. "Потом мы до этого доберёмся". И это во второй лекции. Или ты про неумение в компьютеры? Это-таки в первой.

Ответы>>780939

27 Июн, 07:19 #183 #780939

>>780923
Понятно, профессор типа Вирта попиливает бабло. Вот в MIT такой хуйни нет, там учат на Питоне.

27 Июн, 08:09 #184 #780954

>>770057 (OP)
>ёбаные дети
>мелким ублюдкам
ОП, я вижу, ты не испытываешь особой симпатии к ЦВЕТАМ ЖИЗНИ. Нахуй в лагерь-то тогда идти? Зарплаты вроде небольшие, так что я думал что туда идейные идут.

Ответы>>781188>>781328

sage 27 Июн, 11:23 #185 #781063

>>780096
> да на нем почти все задачи решать можно.
Почти абсолютно на любой языке можно решить любые задачи.

27 Июн, 14:26 #186 #781188

>>780954
> ОП, я вижу, ты не испытываешь особой симпатии к ЦВЕТАМ ЖИЗНИ.
Он не педофил же, чтобы любить мелких уродливых карликов.

27 Июн, 18:00 #187 #781328

>>780954
>я думал что туда идейные идут
Нет, самые никчемные, те кто не могут просто выучить плюсы и переехать в деес.

27 Июн, 22:41 #188 #781625

ЗКаны, мне очень доставило как вы расписываете парадигмы на примере стиральной мышины. Все очень понятно. А можете аналогичным образом описать как работают указатели и куча?

Ответы>>781699>>781826>>781841>>783076>>783276

27 Июн, 23:33 #189 #781699

>>781625
Туч - На острие педагогики!

28 Июн, 04:42 #190 #781826

>>781625
>указатели
Попиши на асме недельку, там ничего сложного нет.
>куча
Здесь-то тебе что может быть непонятно?

Ответы>>781836

28 Июн, 05:09 #191 #781836

>>781826
В теории, вроде, понятно. А на практике - нет.

Насчет асма - даже хз с чего начать, я же ООП-макака.

34 Кб, 670x519

28 Июн, 05:43 #192 #781841

>>781625
> указатели
https://ru.wikipedia.org/wiki/Соотношение_карты_и_территории

29 Июн, 12:37 #193 #783076

>>781625
> указатели
Переменная, которая содержит адрес в памяти (по сути число), по которому лежит объект
> куча
Шмат памяти, отведённый под динамическую аллокацию.

29 Июн, 13:17 #194 #783087

>личинки пидорашек
>Кодинг
Тут все очевидно. ТУРБО ПОЦКАЛЬ и ДЕЛФИ

29 Июн, 13:28 #195 #783094

>>771135
>Функциональный господин
Функциональный господин посасывает хуй в говношараге без работы)))))) Пока успешные жава/сишарпо/крестогоспода уже студентиками-джуниорами получают 1к долларов)))))) Ботан, ты будешь своей мамке рассказывать какой ты погромист, мы то все тут знаем что ты нищий лох в свитере без будущего))))))

Ответы>>783103>>783104>>783130>>783366

29 Июн, 13:43 #196 #783103

>>783094
>кресты
>работа

Ответы>>783126

29 Июн, 13:45 #197 #783104

>>783094
А вот и байтоеб

Ответы>>783126

29 Июн, 14:03 #198 #783108

>>772597
>графику (как самый наглядный и подстегивающий интерес результат) на нем без штанги не попрограммируешь
Да ладно-ка. https://cdsmith.wordpress.com/2011/08/16/haskell-for-kids-week-1/

29 Июн, 14:47 #199 #783126

>>783104
Нищий лох, не бомби))))
>>783103
>Функциональная параша
>Работа
Ох уж эти проекции нищенки))) И да, я джавабог

Ответы>>783131>>783259>>783357

109 Кб, 1000x808

29 Июн, 14:49 #200 #783130

>>783094

Ответы>>783263

29 Июн, 14:50 #201 #783131

>>783126
>джавабог
>джава
ХХАХАХАХАХАХАХАЗЫХВЪЫХАХЪВХЗАЪХАЗВЪХАБ ЛЯТЬ ЪАВЪХАЪХАХАХХХAUHAUHAUHAUHAUHAUHAUHAUHAUHAUHAUHHAHUAHUAHUAHAHAHAHAHAHAHAHAHHAHAHHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAHAHHAHHHHHHHHHHHHHHHAHAHAHAHAH BLYAAA AHAHAHAH

29 Июн, 15:09 #202 #783142

>>770057 (OP)
>и мне нужны ваши советы

Мелких Scratch-ем обмазывай, а со старшими на Python с прикрученным pygame игрули пиши.

А можешь поступить ещё проще - и тех, и других ардуиной со всеми прибамбасами обмажь: с псевдо недо-C, с моторчиками, с "роботами", которые два раза в ладоши хлопаешь, а они два оборота колёсами делают...

29 Июн, 17:08 #203 #783259

>>783126
Бог Питух штоле?

29 Июн, 17:12 #204 #783263

>>783130
Это джаваэлита на пиках?

Ответы>>783341

29 Июн, 17:24 #205 #783276

>>781625
> указатели
На коробке написано ЧЕЙ МАТЬ ИПАТЬ. Я открываю коробку, достаю бумажку, читаю там адрес твоей мамаши и иду по нему к ней в спальню. В это время подходит хаскелобог и кладет другую бумажку, где написан адрес мамаши жабопетушка. На следующий день я прихожу, достаю бумажку и иду по указанному адресу. Бумажка - указатель, коробка - переменная типа указатель, мамаша-шлюха - содержимое по указателю.
> куча
Есть полка с кучей таких бумажек. Специально обученный раб-хохол по звонку достает из кучи первую попавшуюся бумажку и кладет в указанную ему коробку (коробок может быть несколько). Затем прихожу я или хаскелобог и см. выше. Когда мамаша выебана, мы звоним хохлу, и он убирает бумажки обратно.
Если внезапно на полке кончаются бумажки, то это ошибка, и хохол получает пизды.

Ответы>>783339

29 Июн, 17:31 #206 #783287

Учи с мелкими JS,это будет надолго.
Если что, https://code.org/educate/applab

29 Июн, 18:24 #207 #783332

>>770057 (OP)
Учи их лучше настраивать окружение, уметь в линупс, работать с терминалом. Затем вводи в алгоритмы и структуры данных.

29 Июн, 18:33 #208 #783339

>>783276
Все так, кроме >первую попавшуюся бумажку
Надо так: первую бумажку с конца.

Ответы>>783449

194 Кб, 785x589

29 Июн, 18:35 #209 #783341

>>783263
Niet. Вот джаваэлита.

29 Июн, 18:59 #210 #783357

>>783126
О, вот и пхпжавамакаки подтянулись.

29 Июн, 19:05 #211 #783366

>>783094
> в свитере без будущего
Свитер без будущего - это сильно. Это, если можно так выразиться, квинтэссенция, соль и мудрость в одной ебаной фразе - свитер без будущего. Теперь я знаю, как называются эти пидорасы, которые вытирая сопли о свои свитера, доказывают как охуительно быть бедным интеллектуалом и собирать для музея спектрумы и прочие калькуляторы. Ты открыл мне глаза, блядь.

Ответы>>783409

29 Июн, 19:51 #212 #783409

>>783366
В свитере со спектрумом и калькулятором это же байтоёбы - полная противоположность функциональщикам.

Ответы>>783459>>783515

29 Июн, 20:16 #213 #783449

>>783339
> Надо так: первую бумажку с конца.
Это стек (или очередь, если первая бумажка с начала). Куча обычно реализуется как список свободных бумажек (областей памяти), и раб-хохол возвращает некоторые из них в ответ на команду выделения памяти.

29 Июн, 20:22 #214 #783459

>>783409
Лисп же был на спектруме.

29 Июн, 20:54 #215 #783515

>>783409
Функциональщики это, по сути, те же байтоебы в худшей их ипостаси - профитов в производительности нет, а страдание осталось.

Тред утонул или удален.
Это копия, сохраненная 20 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion