Leave a comment

nygoth September 25 2019, 16:35:28 UTC
Интересно...

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

В чём же дело?

Я программист. Мне это нравится, и начинал я самоучкой ещё со спектрума. Но, в силу жизненных обстоятельств, нормально не программировал уже лет 16 (небольшие программки для телефона не в счёт).

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

И мне хватило вот этого твоего объяснения, чтобы понять всю приведенную тобою в пример парадигму. Просто, вот так -- "оба-на, всё то, что раньше я делал циклами, теперь можно одной командой делать на множествах! Круто! Буду знать.". И если мне реально понадобится решить подобную задачу, я теперь знаю, что есть такой инструмент, и буду пользовать (и освою) именно его.

Поэтому, именно в моём лице твой пример (раскрытый на треть, наверное, статьи) неверен. Возможно, я исключение.

Однако.

Вот ты привёл в пример игру на гитаре. Физический навык. Я могу на себе показать сходную проблему -- я учил акробатику сам. Самоучка. Не представлял ни методики, ни правильной техники. В результате уже, наверное, лет с десяток мучительно переучиваюсь с переменным результатом. Что крайне печально.

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

Мне так кажется.

Reply

son_0f_morning September 25 2019, 18:01:39 UTC
>> "оба-на, всё то, что раньше я делал циклами, теперь можно одной командой делать на множествах! Круто! Буду знать."
Судя по этим словам вам несказанно повезло и вы крайне одарённый к обучению человек.
Ведь если говорить не про foreach и контейнеры (которые действительно лишь синтаксический сахар), а про функциональный подход, то приходится довольно прилично поломать свой подход к программированию, чтобы закрепить это в практике.

Ведь действительно в самом начале условный "for" на питоне я буду писать пару минут, а правильный map-filter-reduce (особенно для не очень очевидного случая) можно гуглить и час и два.
При этом возникает целая куча нюансов: в ситуации решения практической задачи очевидно, что вы верифицируете for куда легче, чем код в новой языковой парадигме. А если эта задача ещё и как-то ограничена по времени, то минуте к 30й поисков правильного решения (а я всего лишь про синтаксис пока!) появляются мысли: "а не бросить ли всё это нафиг и по-старинке за 3 минуты дописать".
Ну и таких соображений можно привести ещё вагон и маленькую тележку.

Reply

lex_kravetski September 25 2019, 18:21:10 UTC
> Ведь если говорить не про foreach и контейнеры (которые действительно лишь синтаксический сахар), а про функциональный подход, то приходится довольно прилично поломать свой подход к программированию, чтобы закрепить это в практике.

По моим наблюдениям, с контейнерами у людей всё тоже проходит совсем даже не так гладко, как хотелось бы. Простой пример из статьи - это да, но вот как чуть посложнее, у людей сразу же вот эта самая первая мысль: «ну нах, я лучше циклом сейчас зафигарю».

Причём так происходит даже в тех случаях, когда буквально «чуть» сложнее. Когда нужен не просто фильтр, а ещё свёртка или поиск.

Ну а так, да, если ещё и за пределы контейнеров выходить, то там совсем всё плохо.

Reply


Leave a comment

Up