Здравствуйте, Mamut, Вы писали:
LVV>>Естественно, мы начали с императивщины. LVV>>Ибо цель была и пока остается: обучать чистых новичков, которые в школе программирование не проходили.
M>Это как раз не естественно. Новички в школе изучали, как минимум, математику. И функциональщина (особенно с паттерн-матчингом) на эту математику ложится просто сразу.
Гипотетически. На практике, всегда и везде начинают с того, что четко видно в реальном виде — поведение, состояние и тд. Отсюда первый фундаментальный барьер — ввод-вывод. Программирование это новая область деятельности, соответсвенно, нужно начинать примерно как дети в саду — считать на палочках, коробочках и тд и тд.
С функциональщиной эту часть пропускаем. Факт в том, что часть студентов конечно же потянут функциональщину сходу. Но такой результат ни о чем не говорит. Не ясно, какой у этих студентов бекграунд. Собтсвенно, факт и в том, что бОльшая часть студентов никак не потянет функциональщину.
Скажем, я сейчас работаю со студентами прикладной математики и мехмата. Аппликативные, функциональные примеры проходят мимо их сознания. Казалось бы, у людей математики столько, что дальше некуда, а все код пишут в жесточайше-императивном стиле.
M>В отличие от императивщины.
Что характерно, ни разу не видел, что бы товарищ с хорошей функциональщиной имел проблемы с императивным программированием. А вот наоборот — полно примеров.