вторник, 18 мая 2010 г.

[prog] Microsoft завершила свой проект Software Transaction Memory for .NET (STM.NET)

Сегодня прочитал об этом в заметке на InfoQ: Microsoft’s Experiments with Software Transactional Memory Have Ended (сама заметка от 13-го мая), а официальное уведомление об этом в блоге команды STM.NET было написано 12-го мая.

Самое ценное в сообщении на InfoQ, на мой взгляд, – это ссылка на большой рассказ Джо Даффи об истории экспериментов с STM в MS: A (brief) retrospective on transactional memory. Рассказ, действительно большой. Я смог осилить лишь его половину. И то, не многое из написанного я понимал, т.к. от проблем Transaction Memory был очень далек. Но сухой остаток я понял – попытка внедрить STM в уже устоявшуюся технологию, в реальные проекты, в условия огромного количества унаследованного кода, ничего не знающего про какие-то там TM-ы, завершилась неудачно.

Думаю, что интересующимся темой TM и STM прочитать рассказ Джо Даффи нужно обязательно. Отдельный интерес, думаю, это повествование будет представлять для функциональщиков-хаскелистов. Как я понял, в Haskell-евых реализациях STM посредством системы типов жестко ограничивается контекст, в котором транзакции могут применяться. Т.е. изменять значения чего-либо можно, а вот обращаться к коду с побочными эффектами – нет. Что существенно упрощает реализацию STM и избавляет от кучи проблем, с которыми сталкивались Джо Даффи и Ко. Хотя остается вопрос – а нафиг кому-нибудь тогда такой STM ;)

У меня самого приятное впечатление от этой новости осталось. Разговоры о ТМ (как в виде STM, так и Hardware TM) ходят уже давно. Иногда с легким налетом “серебрянной пули”. Но разбираться с этим времени катастрофически не было. Успокаивал себя отговорками: “мол, когда это приблизится к мейнстриму, тогда и посмотрим”. Не зря, выходит, не тратил время на изучение TM. Не дойдет оно до мейнстрима :)

Отправить комментарий