Page Summary
sassa-nf.livejournal.com - (no subject)
vit-r.livejournal.com - (no subject)
fatoff.livejournal.com - (no subject)
anton-solovyev.livejournal.com - (no subject)
blackyblack.livejournal.com - (no subject)
archaicos.livejournal.com - (no subject)
sab123.livejournal.com - (no subject)
yigal_s - (no subject)
zyxman.livejournal.com - (no subject)
http://users.livejournal.com/_xacid_/ - (no subject)
Active Entries
Style Credit
- Style: Neutral Good for Practicality by
Expand Cut Tags
No cut tags
no subject
Date: 2014-06-09 06:13 pm (UTC)no subject
Date: 2014-06-09 06:36 pm (UTC)Не, честное слово, этот поиск Надёжного Средства для Всех Идиотов и привёл индустрию софтописания туда, где она сейчас находится.
no subject
Date: 2014-06-10 12:08 am (UTC)Не могли бы Вы просветить и поделиться ссылкой на упоминаемые вами результаты? Очень бы хотелось изучить. Заранее спасибо.
no subject
Date: 2014-06-10 05:52 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-06-09 06:38 pm (UTC)Also watched the one where he teaches Haskel to ones who know C++.
The guy who published C++ 11 async feature online course does know there drawbacks. But with just C programming the same tasks as he showed in his course, such as Map Reduce it is many degrees of magnitude more difficult.
Works like a charm and who cares, let the object talk to another object via some messages. If the messaging mechanism is Ok and shared resources are safe, why not do multithreading with C++ 11 objects? Doing that right now...
no subject
Date: 2014-06-09 08:56 pm (UTC)всё подлежащее, понятное дело, реализовано на обычных языках, но к строительству енвайронментов для своих языков immutable люди относятся примерно как водители к дорожным рабочим — х_й какой водитель мерседеса бенца сумеет проложить хоть метр дороги, что ни разу не мешает ему ехать мимо с задранным носом.
если смотреть на вселенную через телескоп fp-людей, oo-код постоянно решает невыполнимую задачу мониторинга переменчивого и следовательно непредсказуемого состояния своих "объектов". вызовы методов - рассадник "side effect'ов" — большое "no-no" с точки зрения fp…
no subject
Date: 2014-06-09 09:11 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-06-09 07:11 pm (UTC)no subject
Date: 2014-06-09 07:34 pm (UTC)no subject
Date: 2014-06-09 07:35 pm (UTC)no subject
Date: 2014-06-09 07:57 pm (UTC)no subject
Date: 2014-06-09 07:48 pm (UTC)no subject
Date: 2014-06-09 08:34 pm (UTC)no subject
Date: 2014-06-10 12:05 am (UTC)Data-race-free именно что composable, мало того, существует элементарнейший алгоритм как сделать любой код data-race-free - а именно, обернуть каждое чтение и каждую запись в конкретную разделяемую ячейку памяти - мютексом, ну, или как нынче модно, сделать доступ к ней атомарным.
Вообще, я б хотел увидеть того гения, который напишет два объекта, каждый из которых будет data-race-free, а их композиция - не будет. )))
no subject
Date: 2014-06-10 12:36 am (UTC)Положим, вам надо в объекте поменять два поля согласованно. Что вы будете оборачивать?
А если два поля меняются независимыми методами объекта?
А если между вызовом первого их этих методов и второго надо вставить некоторое не очень короткое вычисление?
Не то чтобы всё это невозможно было решить — но "элементарным" я бы такое решение не назвал. Решение "в лоб" в третьем случае чревато потерей ещё и перформанса.
no subject
Date: 2014-06-10 12:42 am (UTC)no subject
Date: 2014-06-10 12:43 am (UTC)Та проблема, о которой говорите Вы - это "race condition" общего типа - ровно то, что заботит обычных прикладны программистов, и действительно, являющееся при композиции "thread-safe" объектов, написанных, скажем, с помощью блокировок, крайне серьезной проблемой.
"race condition" и "data race" - разные вещи.
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-06-10 12:37 am (UTC)С оборачиванием есть ещё более стрёмная проблема - на основании как угодно атоммарно прочитанного значения обёрнутого поля нельзя сделать никаких модификаций чего бы то ни было, потому что прочитанное прямо в момент прочтения становится неверным. А обернуть все потенциальные мутации весьма сложно.
no subject
Date: 2014-06-10 12:49 am (UTC)"Let me quote the definition of data race: Two or more threads accessing the same piece of memory at the same time, at least one of them writing."
Это определение касается одной ячейки памяти, и только.
Если б Милевский просто написал "data race" и начал говорить после этого про банковские операции, т.е. о "race conditions" общего типа - это бы означало, что он то ли не знает смысла этого термина, то ли ошибся. Сие простительно. Но, увы, он не только привел термин, но и дал его определение. Тут уж приходится предполагать, что он чего-то крепко не понимает.
no subject
Date: 2014-06-10 01:01 am (UTC)Я предложил решение data races, а не всех race conditions ;-)
no subject
Date: 2014-06-10 03:49 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-06-10 03:37 am (UTC)- Естественно, если объекты используют типы данных, дозволяющие фривольности употребления себя и при этом не имеющие защиты, так будут проблемы.
А фактически, всего навсего нужно эти объекты пересобрать с concurency-safe типом данных.
Кстати, это можно сделать и при позднем связывании, хотя конечно это уже будет не нейтивный код, а язык с++ внутри виртмашины.
Да, я буквально имею в виду, что в pure ФП языках всего навсего отказались от классического аппаратного типа данных, а вместо него использовали тип данных высокого уровня, ну и соответственно, уже далее надстройки - вместо прямого шаринга небезопасного типа, в одних языках сообщения, в других транзакционная память (каждый из двух вариантов имеет свои преимущества и недостатки, лично мне, как любителю отказоустойчивых систем, больше нравятся сообщения).
no subject
Date: 2014-06-10 03:43 am (UTC)PPS Проблема, что после записи одним, чтение другого уже должно делать дополнительные телодвижения по синхронизации, от кривости архитектуры объектов.
no subject
Date: 2014-06-10 05:02 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-06-10 08:29 pm (UTC)обьектную парадигму нужно реализовывать средствами функциональной (парадигмы же).
и ни в коем случае не наоборот (как это делают сейчас, иногда).