Size: a a a

Programming Offtop

2020 March 27

AK

Anton Korotkikh in Programming Offtop
Tim Plotnikov
Вот вы кстати пишите про реляционки, но что-то никто не упомянул что запросы к ней вы пишите на офигенно функциональном sql)
хм... но ведь когда дело касается процедур, фп-парень становистя очень императивным посаном с decalre блоками перменных на манер старой школы и циклами из курсоров
источник

(

( in Programming Offtop
Tim Plotnikov
Это эволюция ооп в виде агентно-ориентированного подхода. Этот подход решает эти проблемы
Не хотите загуглить время появления?
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Господа, вы по-моему забываете о первопричинах появления/доминирования тех или иных технологий)
Обычно какая-то технология или парадигма появляется в ответ на возникшую проблему. Когда все устали писать многостраничные листинги ассемблера, все подумали: «Давайте будем куски кода писать в подпрограммах, а подпрограммы распихивать по файликам и будет нам счастье». Здравствуй Алгол и структурное программирование.

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

Ну всё бы и хорошо, но тут начинается интересная фигня - в каждый чайник и микроволновку начинают пихать по 2+ процессора и изобретают интернет. Что это значит? А значит это то, что мы начинаем писать распределенный софт. Обмен сообщениями, обрывы связи, недетерменированный порядок сообщений, конкурентный доступ к данным. И ООП начинает давать сбой. Оно не становиться плохим, просто его идей становится не достаточно для тех проблем, которые появляются в новом, часто многопоточном и распределенном софте.
И дальше люди вспоминают о существовании идей Чёрча.

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

К чему я это всё - если вы говорите что «ФП не нужон» то вам оно действительно не надо. И то, что любую технологию (вообще любую) иногда пихают не на совсем положенное место все знают. НО! Есть софт, задачи, разработчики для которых фп - охуенное решение их проблем.

Когда появился smalltalk, все тоже говорили что ооп нах никому не нужно и наверняка в BBS’ах также срались о его необходимости. Однако поглядите
Тут есть две важные ошибки:
1) Хаскелю лет 30. Он вылез сейчас не столько потому, что раньше был не нужен, а потому, что человеческий компилятор для него появился очень недавно.
2) Синхронизация распределенных систем мало отношения имеет к ФП в том виде ,в котором здесь его обсуждают (то есть опять же к хаскель-стайл). Никто не мешает это делать на акторах и всяком безлоковом map-reduce. Для этого не нужны сильные навороты системы типов.
источник

(

( in Programming Offtop
Он хоть появился и после смалтока, но до описанных вами проблем
источник

TP

Tim Plotnikov in Programming Offtop
Bogdan Panchenko
Нет, декларативном
Функциональное есть подвид декларативного)
источник

RU

Roman Ushakov in Programming Offtop
Anton Korotkikh
только дядя боб теоретик по большей части который пишет книги, а не системы. в где-то там, когда-то, под семью печатями nda он якобы кого-то консультировал
я бы к этому чистый код отнёс, нежели чистая архитектура. Тупо последняя проще в восприятии.
источник

BP

Bogdan Panchenko in Programming Offtop
Tim Plotnikov
Вот вы кстати пишите про реляционки, но что-то никто не упомянул что запросы к ней вы пишите на офигенно функциональном sql)
Когда sql выходит за рамки простых селектора с джойнами он легко превращается в императивщину, а если ещё и эфективныц sql то там ток императивный подход
источник

TP

Tim Plotnikov in Programming Offtop
Anton Korotkikh
хм... но ведь когда дело касается процедур, фп-парень становистя очень императивным посаном с decalre блоками перменных на манер старой школы и циклами из курсоров
Как писали выше, это всё не взаимоисключающее. Чистые языки умирают (smalltalk), остаются только гибриды
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Нет, декларативном
SQL ни разу не декларативный. Точнее декларативный, но только в рамках одного запроса. Запросы являются императивными командами
источник

BP

Bogdan Panchenko in Programming Offtop
Tim Plotnikov
Функциональное есть подвид декларативного)
Но не равно! Смалиок тоже вполне декларативен он фп ?
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Функциональное есть подвид декларативного)
нет
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
SQL ни разу не декларативный. Точнее декларативный, но только в рамках одного запроса. Запросы являются императивными командами
Я чуть ниже дописал)
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
Тут есть две важные ошибки:
1) Хаскелю лет 30. Он вылез сейчас не столько потому, что раньше был не нужен, а потому, что человеческий компилятор для него появился очень недавно.
2) Синхронизация распределенных систем мало отношения имеет к ФП в том виде ,в котором здесь его обсуждают (то есть опять же к хаскель-стайл). Никто не мешает это делать на акторах и всяком безлоковом map-reduce. Для этого не нужны сильные навороты системы типов.
Я ничего не писал про Хаскель и вообще не упомянул систему типов)
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Я чуть ниже дописал)
ага
источник

ML

Mikhail Levchenko in Programming Offtop
Tim Plotnikov
Господа, вы по-моему забываете о первопричинах появления/доминирования тех или иных технологий)
Обычно какая-то технология или парадигма появляется в ответ на возникшую проблему. Когда все устали писать многостраничные листинги ассемблера, все подумали: «Давайте будем куски кода писать в подпрограммах, а подпрограммы распихивать по файликам и будет нам счастье». Здравствуй Алгол и структурное программирование.

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

Ну всё бы и хорошо, но тут начинается интересная фигня - в каждый чайник и микроволновку начинают пихать по 2+ процессора и изобретают интернет. Что это значит? А значит это то, что мы начинаем писать распределенный софт. Обмен сообщениями, обрывы связи, недетерменированный порядок сообщений, конкурентный доступ к данным. И ООП начинает давать сбой. Оно не становиться плохим, просто его идей становится не достаточно для тех проблем, которые появляются в новом, часто многопоточном и распределенном софте.
И дальше люди вспоминают о существовании идей Чёрча.

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

К чему я это всё - если вы говорите что «ФП не нужон» то вам оно действительно не надо. И то, что любую технологию (вообще любую) иногда пихают не на совсем положенное место все знают. НО! Есть софт, задачи, разработчики для которых фп - охуенное решение их проблем.

Когда появился smalltalk, все тоже говорили что ооп нах никому не нужно и наверняка в BBS’ах также срались о его необходимости. Однако поглядите
сводить фп к решению проблем многопоточки – ну чёт такое
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Я ничего не писал про Хаскель и вообще не упомянул систему типов)
Тем не менее ортодоксы когда говорят про ФП, говорят именно про хаскель
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
Тем не менее ортодоксы когда говорят про ФП, говорят именно про хаскель
Простите, я лисп люблю))
источник

BP

Bogdan Panchenko in Programming Offtop
Mikhail Levchenko
сводить фп к решению проблем многопоточки – ну чёт такое
+
источник

AN

Alexander Nozik in Programming Offtop
По мне и Java-8 ФП,а уж котлин так тем более
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Простите, я лисп люблю))
А я нет.
источник