Информация об изменениях

Сообщение Re: Мнение: объектно-ориентированное программирование — ката от 10.09.2019 21:40

Изменено 07.10.2021 15:43 Zhendos

Re: Мнение: объектно-ориентированное программирование — ката
Здравствуйте, кт, Вы писали:

кт>Перевод статьи «Object-Oriented Programming — The Trillion Dollar Disaster»

кт>Рассказывает Илья Суздальницкий, senior full-stack-разработчик


кт>Каковы альтернативы?


кт>Внимание, спойлер — функциональное программирование.


Как-то статья резко кончилась. Долго рассказывали как плохо иметь глобальное
состояние, а потом резко "возьмите функциональный язык и будет вам счастье".
Допустим взяли язык, который позволяет позволяет писать только "чистые функции",
но реальная программная система включающая эту программу будет ведь обладать глобальным
состоянием, пусть оно будет не в самой программе, а в базе данных, кэше запросов,
еще где-то оно ведь все равно будет, как этого возможно избежать.
Где обоснование, что глобальное состояние в таком виде проще поддерживать, сопровождать и отлаживать?

И ведь до объектно-ориентированного подхода, были и есть процедурные языки,
да там было можно использовать глобальные переменные, но в сложных программах этим не злоупотребляли,
то есть был совершенно тот же подход процедура(функция) принимает на вход данных,
считает и выдает не меняя глобальное состояние,
но в некоторых случаях такая программа намного труднее для понимания, чем несколько
агентов обменивающихся сообщениями для изменения своего состояния, именно поэтому ООП и взлетело,
непонятно что функциональное программирование предлагает концептуально нового?
Re: Мнение: объектно-ориентированное программирование — ката
Здравствуйте, кт, Вы писали:

кт>Перевод статьи «Object-Oriented Programming — The Trillion Dollar Disaster»

кт>Рассказывает Илья Суздальницкий, senior full-stack-разработчик


кт>Каковы альтернативы?


кт>Внимание, спойлер — функциональное программирование.


Как-то статья резко кончилась. Долго рассказывали как плохо иметь глобальное
состояние, а потом резко "возьмите функциональный язык и будет вам счастье".
Допустим взяли язык, который позволяет писать только "чистые функции",
но реальная программная система включающая эту программу будет ведь обладать глобальным
состоянием, пусть оно будет не в самой программе, а в базе данных, кэше запросов,
еще где-то оно ведь все равно будет, как этого невозможно избежать.
Где обоснование, что глобальное состояние в таком виде проще поддерживать, сопровождать и отлаживать?

И ведь до объектно-ориентированного подхода, были и есть процедурные языки,
да там было можно использовать глобальные переменные, но в сложных программах этим не злоупотребляли,
то есть был совершенно тот же подход процедура(функция) принимает на вход данных,
считает и выдает не меняя глобальное состояние,
но в некоторых случаях такая программа намного труднее для понимания, чем несколько
агентов обменивающихся сообщениями для изменения своего состояния, именно поэтому ООП и взлетело,
непонятно что функциональное программирование предлагает концептуально нового?