OberonCore
https://forum.oberoncore.ru/

Сюда?
https://forum.oberoncore.ru/viewtopic.php?f=7&t=1264
Страница 1 из 9

Автор:  Wlad [ Воскресенье, 30 Ноябрь, 2008 23:20 ]
Заголовок сообщения:  Сюда?

Хотел назвать сначала нечто навроде "блеск и нищета"....
Да и вообще не понятно - сюда с этим или как?...

История.

Парнишка из соседских пришёл с вопросами "по информатике". Парнишка не глупый, "с пониманием". Хочет стать или программистом или чем-то рядом. Пришёл с обстоятельно подготовленным списком вопросов в тетрадке (мама наставила: "дядя Володя - сурьёзный дядя, надо подготовиться"... :) )
Пацан довольно много читает и удивительно нипадецки серьёзно к своему увлечению относится.

Поговорили мы с ним несколько раз, я ему (аки "табуле расе") подсунул КП/ББ.
Явилось дарование через некоторое время и изрекло (дарованию - 13-14 лет):
"Вы понимаете, мне это не очень подходит.... Конечно, среда необычная, но можно привыкнуть... Непопулярная, но учиться программировать по нему можно... Но вот язык - СИЛЬНО простой... Даже замыканий нет...".
Причём, из дальнейшего разговора, человек прекрасно понимает, что это такое и где и как использовать. И довольно хорошие аргументы привёл, зачем ему это нужно. Я его спросил, а много у него знакомых ребят, которым это также нужно? :) Ответ был, вполне: "Ну не все же профессиональным программированием будут заниматься..."

Так вот я размышляю... Мэйнстрим можно ругать. Но пацаны вполне адекватные есть. Им это не для свистулек нужно. Они вполне осознанно создают "на-месте"определяемые блоки кода и вполне грамотно и умело их используют...

Не занижаем ли мы им планку? Навязывая стиль, при котором писанины больше (да и наглядность, частенько, страдает)???... Не недооцениваем ли мы мОлодежь... Наследие 90-х тяжко и уродливо, но и оно перевариться. Может уже сейчас на наших глазах "зёрна от плевел заканчивают отделяться" и всё пошло своим нормальным чередом?...

Автор:  Илья Ермаков [ Воскресенье, 30 Ноябрь, 2008 23:52 ]
Заголовок сообщения:  Re: Сюда?

Владимир, ну почему-то не верю я, что у этого пацана есть задачи, которые не решаются просто и красиво обычной структурной декомпозицией. А он клосуры комбинирует. Потому что аналитике не было где научиться(( Ему б послать эти клосуры и матаном и дискреткой заняться лучше, наверное.

Автор:  Wlad [ Понедельник, 01 Декабрь, 2008 00:51 ]
Заголовок сообщения:  Re: Сюда?

Илья Ермаков писал(а):
Владимир, ну почему-то не верю я, что у этого пацана есть задачи, которые не решаются просто и красиво обычной структурной декомпозицией. А он клосуры комбинирует.

Я тоже не поверил. А оно оказывается уже пытается игры писать!... :D Простейшие. С кубиками и мячиками на экране. А клосуры он использует для перебора всех предметов на предмет сравнения координат и поиска столкновения...
Вот и думаешь теперь себе... Пока мы тут копья ломаем, людены уже строем ходят рядом... Топают, а мы и не слышим... :shock: :D

Автор:  Alexey Veselovsky [ Понедельник, 01 Декабрь, 2008 03:01 ]
Заголовок сообщения:  Re: Сюда?

Мне кажется, что всё дело в базисе.

У человека в голове может поместиться весьма небольшой "базис" неких базовых понятий. Соответственно все прочие понятия он пытается разложить по вот этому вот базису. При формировании базиса приоритет имеет то, что было первым услышано/узнано/опробовано.

А обычно шанс быть услышаным первым имеет что-то что наиболее модно в нынешнее время, что на слуху. А нынче у нас входит в моду широкими шагами функциональщина применительно к императивщине. Экая смесь. Следовательно юные дарования именно о этих замыканиях и слышат (ибо о них кричат нынче громчее всего, о АТД и структурном подходе не кричат -- о нем все знают, это уже само собой, это не модно), начинает изучать, использовать, и, как следствие, МЫСЛИТЬ ими. Разлогать любую задачу используя в т.ч. и эту составляющую ЕГО базиса понятий.

В КП/ББ этой состовляющей нету. Образуется дырка. Неудобство. Приходится либо писать жутко кривой код, либо корежить базис (а изменение базиса граничит с изменением мировоззрения). Что многим неприятно.

Автор:  Geniepro [ Понедельник, 01 Декабрь, 2008 08:34 ]
Заголовок сообщения:  Re: Сюда?

Илья Ермаков писал(а):
Ему б послать эти клосуры и матаном и дискреткой заняться лучше, наверное.
Лучший (из англоязычных, по-крайней мере) учебник по дискретной математике построен на основе Хаскелла, а уж насколько легко и естественно в Хаскелле делаются эти самые замыкание -- ни в каком другом языке так не делается...
Да, этому парнишке хорошо бы этот учебник изучать... Жаль, его ещё не удосужились на русский перевести...

Автор:  Geniepro [ Понедельник, 01 Декабрь, 2008 08:37 ]
Заголовок сообщения:  Re: Сюда?

Alexey Veselovsky писал(а):
о АТД и структурном подходе не кричат -- о нем все знают, это уже само собой, это не модно)

Скажите, ну почему те, кто не занимаются ФП, вечно находят какое-то противостояние между ФП и АТД со структурным подходом??? Ну нету такого противостояния, а все эти АТД с алгоритмами на ФЯ выражаются гораздо проще и красивее, чем на ваших оберонах...

Автор:  Alexey Veselovsky [ Понедельник, 01 Декабрь, 2008 10:09 ]
Заголовок сообщения:  Re: Сюда?

Geniepro писал(а):
Alexey Veselovsky писал(а):
о АТД и структурном подходе не кричат -- о нем все знают, это уже само собой, это не модно)

Скажите, ну почему те, кто не занимаются ФП, вечно находят какое-то противостояние между ФП и АТД со структурным подходом??? Ну нету такого противостояния, а все эти АТД с алгоритмами на ФЯ выражаются гораздо проще и красивее, чем на ваших оберонах...


Гм. А где противопоставление? Возможно да, там оно представлено лучше. Но это не пиарится и шуму вокруг этого нет. Зато есть шум вокруг например замыканий. Это ФИЧА. Нынче модная фича. А АТД, структурный подход и проч -- не модная фича. Хоть в ФП хоть в императиве.

Автор:  Илья Ермаков [ Понедельник, 01 Декабрь, 2008 12:00 ]
Заголовок сообщения:  Re: Сюда?

Geniepro писал(а):
учебник по дискретной математике[/url] построен на основе Хаскелла, а уж насколько легко и естественно в Хаскелле делаются эти самые замыкание -- ни в каком другом языке так не делается...

Какое отношение конкретный наворот-механизм замыканий имеет к фундаменту ФП? Что, у нас в лямбда-исчислении или в Лиспе клосур стал понятием первого порядка?

Автор:  AVC [ Понедельник, 01 Декабрь, 2008 12:42 ]
Заголовок сообщения:  Re: Сюда?

Владимир Лось писал(а):
Явилось дарование через некоторое время и изрекло (дарованию - 13-14 лет):
"Вы понимаете, мне это не очень подходит.... Конечно, среда необычная, но можно привыкнуть... Непопулярная, но учиться программировать по нему можно... Но вот язык - СИЛЬНО простой... Даже замыканий нет...".

И "дядя Володя" тут же устыдился простоты? :)
А что нам дадут замыкания (по сравнению с объектами)?

Исторически в разных диалектах Паскаля были (псевдо-)замыкания на основе передачи вложенных процедур в качестве аргумента (до введения процедурных переменных, после чего это стало небезопасно).

Автор:  Geniepro [ Понедельник, 01 Декабрь, 2008 13:11 ]
Заголовок сообщения:  Re: Сюда?

Илья Ермаков писал(а):
Какое отношение конкретный наворот-механизм замыканий имеет к фундаменту ФП? Что, у нас в лямбда-исчислении или в Лиспе клосур стал понятием первого порядка?
:shock: Ну вапще-то да, всегда был и всегда будет...
Хотя, например, block closure (аналог лямбда-замыкания) так же был и в одном из прародителей ООП -- в Смоллтоке. Так что замыкания -- давно известный механизм, хотя общепринятым он до недавнего времени был только в ФП, но справедливость всё-таки иногда торжествует -- это понятие начало входить и в мейнстрим... Так же, как когда-то вошли в мейнстрим объекты ("замыкания для бедных")...

Автор:  AVC [ Понедельник, 01 Декабрь, 2008 13:27 ]
Заголовок сообщения:  Re: Сюда?

Geniepro писал(а):
Так же, как когда-то вошли в мейнстрим объекты ("замыкания для бедных")...
У меня сложилось прямо обратное впечатление: замыкания - объекты для бедных. :)
Из объектов мы можем строить любые структуры.

Автор:  Geniepro [ Понедельник, 01 Декабрь, 2008 14:41 ]
Заголовок сообщения:  Re: Сюда?

AVC писал(а):
Geniepro писал(а):
Так же, как когда-то вошли в мейнстрим объекты ("замыкания для бедных")...
У меня сложилось прямо обратное впечатление: замыкания - объекты для бедных. :)
Из объектов мы можем строить любые структуры.

Ну это как в физике корпускулярно-волновой дуализм, так и тут тоже... дуализм...

Автор:  Info21 [ Понедельник, 01 Декабрь, 2008 15:15 ]
Заголовок сообщения:  Re: Сюда?

Владимир Лось писал(а):
... А клосуры он использует для перебора всех предметов на предмет сравнения координат и поиска столкновения...
Вот и думаешь теперь себе... Пока мы тут копья ломаем, людены уже строем ходят рядом... Топают, а мы и не слышим... :shock: :D

Угу. Типичная реакция старшего товарища на юного "компьютерного гения".

А юный гений -- тоже вполне типично -- видит в сложности повод самоутвердиться. Тем более взрослые восхищаются.

Это, конечно, очень здорово, что парень над собой работает, а не в подворотне колется.
Только определить, что хорошо, а что плохо, в 13-14 лет *невозможно*.
Контупер затягивает немедленным откликом -- обратная связь самоудовлетворения.
А математику учить долго и нудно.
(Вон тут у нас тоже никак не хотят некоторые, не будем показывать пальцем...)

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

Автор:  Geniepro [ Понедельник, 01 Декабрь, 2008 15:46 ]
Заголовок сообщения:  Re: Сюда?

Info21 писал(а):
Если кто думает, что все эти замыкания -- challenge интеллекту, пусть раскроет любой учебник гомологической алгебры. Просто чтобы иметь полезную реперную точку.
Замыкания -- мелочь, там нет ничего сложного. Если функция является в языке "гражданином первого сорта", то замыкания неизбежно сами собой появляются...

Автор:  Илья Ермаков [ Понедельник, 01 Декабрь, 2008 18:00 ]
Заголовок сообщения:  Re: Сюда?

Geniepro писал(а):
это понятие начало входить и в мейнстрим... Так же, как когда-то вошли в мейнстрим объекты ("замыкания для бедных")...

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

Автор:  Geniepro [ Вторник, 02 Декабрь, 2008 07:51 ]
Заголовок сообщения:  Re: Сюда?

Илья Ермаков писал(а):
Какой смысл относительно задач имеет Ваш сферический клошур в вакууме, в общем, понять гораздо труднее.

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

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

Автор:  Илья Ермаков [ Вторник, 02 Декабрь, 2008 11:32 ]
Заголовок сообщения:  Re: Сюда?

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

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

Автор:  Иван Кузьмицкий [ Вторник, 02 Декабрь, 2008 11:42 ]
Заголовок сообщения:  Re: Сюда?

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


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

Теперь, оказывается, могут быть такие closures, которые могут этот смысл передать наружу. Для меня (лично для меня), это непонятно. Зачем заключать внешний смысл в скорлупу, которая предназначена для хранения только внутренних смыслов?

Автор:  Geniepro [ Вторник, 02 Декабрь, 2008 12:02 ]
Заголовок сообщения:  Re: Сюда?

Илья Ермаков писал(а):
Сами по себе функции ФП - абстракции отнюдь не первого порядка...

В каком смысле?
ФП потому и называется функциональным, что в нём самое главное -- функции.

Автор:  Geniepro [ Вторник, 02 Декабрь, 2008 12:14 ]
Заголовок сообщения:  Re: Сюда?

Иван Кузьмицкий писал(а):
Я вот всегда рассматривал локальные переменные, как изолированные от основной программы. Для меня это способ обеспечить безопасность кода. Смысл этих переменных ограничен границами процедуры. Поскольку переменные локальные, то за пределами процедуры они смысл теряют.

Теперь, оказывается, могут быть такие closures, которые могут этот смысл передать наружу. Для меня (лично для меня), это непонятно. Зачем заключать внешний смысл в скорлупу, которая предназначена для хранения только внутренних смыслов?

Иногда это может быть нужно...
Если сравнивать с ООП, то экспортируемые поля объекта тоже как-бы передают наружу некий внутренний смысл...

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

Страница 1 из 9 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/