Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Чем отличается ООП и функциональное программирование? (Самыми-самыми простыми словами для новичка.)

ПрограммированиеОпределение понятий+3
Анонимный вопрос
  · 2,7 K
Веб-разработчик, геймер, специалист по этике  · 10 февр 2022
Функциональное программирование - это стиль написания программы, при котором мы позволяем себе создавать новые данные на основе имеющихся, но запрещаем себе изменять уже существующие данные. Таким образом мы стремимся к идеальному (недостижимому практически) положению, когда решение нашей задачи - это одна большая математическая функция, которой мы даём данные на вход, и она выдаёт данные на выходе.
Классическая книга по функциональному стилю - Structure and Interpretation of Computer Programs Абельсона и Сассмана.
Объектно-ориентированное программирование - это стиль архитектуры приложения, в котором мы представляем себе решение задачи в виде взаимодействия "объектов" друг с другом. Где каждый "объект" выполняет какую-то свою определённую функцию и обладает своим собственным внутренним состоянием, которое скрыто от стороннего наблюдателя. ООП подразумевает, что мы будем менять внутреннее состояние объектов, но это не обязательно, то есть, вообще говоря, мы можем сохранять требования функционального стиля программирования в объектно-ориентированной архитектуре.
Классическая книга по ООП - Object-Oriented Software Construction Мейера. Учитывая количество дезинформации и глупостей вокруг ООП, если ваш курс/книга/видео не ссылается на эту книгу, они скорее всего несут ерунду.
Веб-разработчик Php, Bitrix. Исследователь аномальных явлений, автор книги о тайнах и...  · 4 дек 2021
Тем, что ООП поддерживает принципы ООП, а функциональное не поддерживает.
Я бы ещё добавил, функциональное больше подходит для мелких программ и задач, когда решение нужно здесь и сейчас, хотя смотря как структурировать, конечно.
А в ООП изначально заложены принципы построения крупных и постоянно развивающихся систем.
Я - программист, который знает немного о циклах и условиях.  · 4 дек 2021
Поясню на примере языка Scala, который является объектно-функциональным, то есть на котором можно писать программы как в функциональном, так и в ООП-стиле, и также в их сочетании: вот у вас есть задача промоделировать множество студентов и решить задачу нахождения студентов, которые живут в России: Функциональный подход: определяем структуру данных для хранения... Читать далее
Как вы отлично заодно показали подход "снизу вверх" к решению задач. :) Мне думается, если бы вы проектировали... Читать дальше