LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

STM

Исходные исследовательские работы по STM никакого отношения к функциональщине не имели и были поиском способов создания сочетаемых lock-free алгоритмов. Ограничение составляющих STM алгоритмов - это их отменяемость. Оно одинаково относится к любому языку, и даже в хаскеле ты не сможешь написать корректные STM операции, если будешь выдавать побочные эффекты внутри транзакции.

акторность / параллеллизм кругом -> подталкивает к написанию именно в фп-стиле

Не вижу взаимосвязи.

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

Ну и где твои божественные многопоточные приложения на хаскеле? А нету их, классический смешанный стиль - это лучший способ писать многопотоки. Математики придумали красивую идею, только они забыли, что без побочных эффектов их программа никому не нужна.

Тем более, что неизменяемость эта скорее внутренняя, а программа видит вполне себе изменяемые данные.

Че?

Ну вот элементарный пример - строки с подсчетом ссылок. Какая к черту разница, то ли я выделяю каждый раз новую строку, то ли ссылаюсь на старую при условии неизменности и получаю новую ссылку при изменении?

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

Кто предпочитает? Ты? За себя тогда явно и говори. Разраб Clojure прекрасно знает, что львиная доля реализации сделана на жаве, и нет никакого толку пытаться притворяться отдельным языком - это исключительно придаток для JVM и ее стандартной библиотеки классов.

Писать в фп-стиле на С на столько же сложно, на сколько и не нужно Да кучу функций библиотек в таком стиле написано

Еще больше написано не в таком

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

Исходная версия byko3y, :

STM

Исходные исследовательские работы по STM никакого отношения к функциональщине не имели и были поиском способов создания сочетаемых lock-free алгоритмов. Ограничение составляющих STM алгоритмов - это их отменяемость. Оно одинаков относится к любому языку, и даже в хаскеле ты не сможешь написать корректные STM операции, если будешь выдавать побочные эффекты внутри транзакции.

акторность / параллеллизм кругом -> подталкивает к написанию именно в фп-стиле

Не вижу взаимосвязи.

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

Ну и где твои божественные многопоточные приложения на хаскеле? А нету их, классический смешанный стиль - это лучший способ писать многопотоки. Математики придумали красивую идею, только они забыли, что без побочных эффектов их программа никому не нужна.

Тем более, что неизменяемость эта скорее внутренняя, а программа видит вполне себе изменяемые данные.

Че?

ну вот элементарный пример - строки с подсчетом ссылок. Кака як черту разница, то ли я выделяю каждый раз новую строку, то ли ссылаюсь на старух при условии неизменности и получаю новую ссылку при изменении?

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

Кто предпочитает? Ты? За себя тогда явно и говори. Разраб Clojure прекрасно знает, что львиная доля реализации сделана на жаве, и нет никакого толку пытаться притворяться отдельным языком - это исключительно придаток для JVM и ее стандартной библиотеки классов.

Писать в фп-стиле на С на столько же сложно, на сколько и не нужно Да кучу функций библиотек в таком стиле написано

Еще больше написано не в таком

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