Так я как раз и негодую за то, что как только начинается разговор про ФП - сразу приплетают concurency и преподносят ФП как панацею. А про остальное как-то мимо.
Ну и вот это вот: >There are no data races in purely functional languages because they don’t have mutable variables.
В посылке. Все ФП-языки имеют mutable state, без него просто два потока просто не смогут общаться. Ну и гонки и дедлоки - тоже будут.
Безусловно за счет того что этот опасный код в том же Хаскеле скорее всего будет локализован в небольшом куске, а стейт не будет размазан, там все проще. Но что прям вот нет гонок - это ложь.
Одна переменная, обернутая в lock {} - тоже не имеет ни гонок, ни дедлоков.
На двух таких переменных, как и на двух MVar-ах - можно устроить себе и гонки, и дедлоки.
Понятно что так стараются не делать в Хаскеле, и сплошь и рядом делают в дотнетах. Но это в большей мере только потому что в ФП народ сообращает круче.
no subject
Date: 2012-04-13 09:20 am (UTC)Ну и вот это вот:
>There are no data races in purely functional languages because they don’t have mutable variables.
- наглая ложь же
no subject
Date: 2012-04-13 09:36 am (UTC)no subject
Date: 2012-04-13 09:43 am (UTC)Безусловно за счет того что этот опасный код в том же Хаскеле скорее всего будет локализован в небольшом куске, а стейт не будет размазан, там все проще. Но что прям вот нет гонок - это ложь.
no subject
Date: 2012-04-13 10:26 am (UTC)MVar их не имеет, STM тоже.
Дедлоки у меня возникали при определении тишины в канале. Это не считается.
no subject
Date: 2012-04-13 11:02 am (UTC)На двух таких переменных, как и на двух MVar-ах - можно устроить себе и гонки, и дедлоки.
Понятно что так стараются не делать в Хаскеле, и сплошь и рядом делают в дотнетах. Но это в большей мере только потому что в ФП народ сообращает круче.
no subject
Date: 2012-04-13 03:09 pm (UTC)ну и? там, где без STM может быть race condition, там с STM будет lack of progress (redo).
no subject
Date: 2012-04-16 01:26 pm (UTC)Т.е., формально, мне не кажется, что там ложь.
Скорее уж "умалчивание о проблемах", "great propaganda"...
От проблем синхронизации ничто не избавляет. Даже в БД, для которых поддержка многопользовательской работы подразумевается, надо за этим следить.