Date: 2016-08-17 11:10 pm (UTC)
From: [identity profile] soonts.livejournal.com
Афтар приводит примеры кода с простыми багами, которые обнаруживаются за 1 минуту с отладчиком, и ещё за минуту чинятся.
Правильный, но неинтересный вывод из этого — на C# с лямбдами можно написать код с багами.
Какая неожиданность! Шо, уже придумали язык, на котором нельзя так?
Афтар же делает странный вывод о том, что концепция не работает.

Functional programming затащили нынче во все императивные языки совсем не ради safety, как почему-то решил афтар, а потому что функциональные абстракции для некоторых задач очень хорошо подходят.
Иногда можно написать немного простого функционального кода вместо кучи сложного императивного.
Иногда производительность лучше становится.
Иногда API design сильно упрощается.

Интересно, откуда афтар взял идею о том, шо если impure, то сразу unfeasible?

Date: 2016-08-17 11:41 pm (UTC)
From: [identity profile] perdakot.livejournal.com
> шо если impure, то сразу unfeasible?

А как узнать, что там в кишках творится? Есть есть f и g, можно ли их выполнять в любом порядке, можно ли их выполнять парралельно?

Date: 2016-08-18 03:54 pm (UTC)
From: [identity profile] soonts.livejournal.com
Откуда вы узнали, что они такие есть, f и g?
И откуда у вас стремление их выполнить?
Похоже у вас есть какие-то ожидания, шо именно они вычисляют. Откуда?

Вот оттуда же вы можете узнать, можно ли их параллельно.

Если сами написали, вы и так вероятно в курсе.
Если SDK/библиотека, читайте документацию.
Если untrusted код, я вам не советую выполнять ни одну из них, совершенно независимо от языка и рантайма. Разве что в хорошей песочнице (CLR + sandbox, или процесс с закрученными правами, или уж VmWare/HyperV/Xen), и то с оговорками.

Date: 2016-08-18 03:58 pm (UTC)
From: [identity profile] perdakot.livejournal.com
> Если сами написали, вы и так вероятно в курсе.

Наша команда написала. Коллективное творчество. Полгода назад захотелось несколько копий f запускать, каждую в своем треде. Пришлось просматривать весь код.

Date: 2016-08-18 04:30 pm (UTC)
From: [identity profile] soonts.livejournal.com
Так у вас куча legacy кода, написанного командой (вероятно за много лет) в предположении, что он будет работать в одном потоке?
Тогда ответ на ваши вопросы выше очевиден.
>можно ли их выполнять в любом порядке, можно ли их выполнять парралельно?
Нет, ваши функции нельзя выполнять параллельно.

Алсо вы могли не просматривать весь код, а починить функции, сделав их thread safe.

Date: 2016-08-19 01:58 am (UTC)
From: [identity profile] perdakot.livejournal.com
> в предположении, что он будет работать в одном потоке?

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

> Нет, ваши функции нельзя выполнять параллельно.

Оказалось, что можно (ну или я совсем немного поменял, чтобы было можно).

> а починить

Ага, весь миллиард. А если сразу писать все thread safe, то получится то, про что написано по ссылке в посте.

Date: 2016-08-18 12:45 am (UTC)
From: [identity profile] yussouf.livejournal.com
так!

под каждым словом!

> Афтар приводит примеры кода с простыми багами, которые
> обнаруживаются за 1 минуту с отладчиком, и ещё за минуту
> чинятся.

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

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 06:44 pm
Powered by Dreamwidth Studios