Re[14]: Nemerle через 5 лет - выстрелит или скончается?
От: hi_octane Беларусь  
Дата: 28.09.14 21:00
Оценка: 50 (2) +1 :)
B>Какие проблемы конечного пользователя решают ваши волшебные макросы?

Ну вот пример — прямо сейчас async/await не совместим с lock в C#. Вообще. Т.е. методы содержащие lock() { ... await ... } не будут компилироваться. Имея макросы, ты бы мог решить эту проблему десятком способов, например взять с гугла любой AsyncMutex, сделать свой lock принимающий этот AsyncMutex, и всё готово. Оставаясь на C# ты просто ждёшь, непонятно чего, так как эта фича пока даже не заявлена в C#6, и неизвестно будет ли вообще когда-то заявлена. Как C# решает проблему того что async/await есть, а внятной синхронизации нет? using(IDispoableAsyncMutex)? try{ await AsyncMutex } finnaly { AsyncMutext.Release() } ? Использовать scheduler-обёртку над защищаемым объектом, и стартовать таски в нём? Методы один хуже другого, и все дико не наглядные, тупо мешающие читать код, по сравнению с lock().

Пример макрса для многопоточности readlock, writelock
Автор: hi_octane
Дата: 01.11.10
, одного из первых, использованного в реальном проекте. Оно уже годы в продакшене, а на C# как обычно даже в планах нету. Вот так и решает, макрос за макросом, и рукописного кода надо писать всё меньше, на задачу времени остаётся всё больше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.