Здравствуйте, gyraboo, Вы писали:
G>Здравствуйте, dsorokin, Вы писали:
G>Модульность издревле есть и в императивной разработке (модули Паскаля, Оберона, модули и библиотеки Джавы, и т.д.). G>Мне кажется, основная идея функциональности — это декларативность ("математическая функциональная запись", "не как сделать, а что сделать"). А лямбда и композиционность — это уже вторичные особенности, которые есть и в других парадигмах.
Функциональные языки могут выглядеть декларативно. Это бесспорно. Но если быть въедливым до терминологии, то декларативность означает большее. К декларативным, например, относят и Пролог, но он функциональным не является.
Что касается других парадигм, просто происходит взаимопроникновения идей, хотя основа императивного языка С++ все равно остается императивной, как ты ни старайся на нем писать в функциональном стиле (я пробовал: один раз было очень удачно, а в других случаях был "ужас, летящий на крыльях ночи").
G>Точно так же можно ограничивать работу с изменяемым состоянием и в императивной парадигме (final-переменные, арх. паттерны типа CQRS (Command Query Responsibility Segregation)).
А можно через инкапсуляцию. Проблема-то общая. Собственно, вопрос стиля программирования — это не жесткое какое-то правило. Это просто предпочитаемый и наиболее удобный в рамках конкретного языка стиль решения задач программирования. Как-то так. А так, можно ООП увидеть и в Эрланге, и в Хаскеле при желании. SICP не даст соврать.
G>Предсказуемость и надежность как раз таки у императива выше))
Это субъективно.
D>>А есть еще люди, которым нравится просто сама (математическая) концепция — они просто тащатся от нее.
G>Вот это уже ближе к истине))
Не хочу спорить.
D>>Мы все разные. Кому-то действительно императивный стиль ближе, где расписано все по шагам, по правилам — как они сами и думают в обычной жизни. Кому-то ближе функциональный стиль. И это абсолютно нормально и естественно
G>АИ как думают функциональщики в обычной жизни? Не по шагам?
Если ты лично про меня, то, вероятнее всего, что у меня "интуитивно-эмоциональное" мышление, где действительно "не по шагам". Заметь, что я никоим образом не пытался наехать на тебя. Просто еще раз хочу заметить, что люди порою очень сильно отличаются друг от друга. Кому-то императивное программирование ближе, кому-то — функциональное, а кто-то знать не хочет ни о каком программировании, да и компьютер кому, вообще, на фиг не сдался