Oberon space

General Category => Общий раздел => Тема начата: valexey от Январь 31, 2012, 09:27:04 pm

Название: Куда идет C#
Отправлено: valexey от Январь 31, 2012, 09:27:04 pm
Гусары, молчать! :-)

Прочитал вот эту статью: http://rsdn.ru/article/dotnet/ReactiveExtensions.xml Там, в шарпе появилось модное реактивное программирование. По ходу прочтения меня мучали две мысли:
1) Архитекторов C# покусали функциональщики.
2) Блин, да все это ж было и раньше прямо в языках и в ОС, и называлось, соответственно, сопрограммами и fiber'ами. Ну и соответственно все это легко комбинацией fiber+thread делается.

Вообще, вот этот код из статьи, смотрится весьма эпично:
Func<int, int, int> add = (_x, _y) => _x + _y;
int x = 1, y = 2;
Func<int, int, IObservable<int>> obvervableAdd = add.ToAsync();
IObservable<int> result = from added in obvervableAdd(x, y)
                            select added;
result.Subscribe(r => Console.WriteLine(@"Observable result for function add({0}, {1}):
                      result = {2}, CurrentThreadId = {3}", x, y, r,
                                    Thread.CurrentThread.ManagedThreadId));
Если кто не понял -- тут два числа складывают :-) Нет, я понимаю, что это игрушечный пример и что в реальном примере полезного (прикладного) кода в процентном отношении будет больше. Но.. Блин. Зачем так извращаться то (пачка прослоек, игрища с типами, замыкания/лямбды...)? Для императиного подхода есть сопрограммы/fiber'ы и это естественно. Для функциональных - есть лямбды с монадами, и это тоже естественно. А тут ни два ни полтора получается. Застряли по серединке.
Название: Re: Куда идет C#
Отправлено: Peter Almazov от Февраль 01, 2012, 01:23:33 am
Так C#-то в данном случае никуда не идет, стоит на месте.
Вся байда реализуется библиотекой.
Полезность/вредность Rx я не могу оценить, не написав хотя бы сотню строк кода.
Название: Re: Куда идет C#
Отправлено: Geniepro от Февраль 01, 2012, 05:23:22 am
А разве этот Rx не заменён либой Task Parallel Library из .NET 4?
Название: Re: Куда идет C#
Отправлено: valexey от Февраль 01, 2012, 08:32:56 am
Так C#-то в данном случае никуда не идет, стоит на месте.
Вся байда реализуется библиотекой.
Полезность/вредность Rx я не могу оценить, не написав хотя бы сотню строк кода.
Ну, во-первых тут таки используются некие странные языковые конструкции вроде "from added in obvervableAdd(x, y) select added;", хотя это наверняка в LINQ появилось.

Во-вторых, C# это не только язык, но и библиотеки и подходы продвигаемые создателем. Язык без стандартных библиотек и подходов не является инструментом годным для прикладного программирования.
Название: Re: Куда идет C#
Отправлено: valexey от Февраль 01, 2012, 08:33:47 am
А разве этот Rx не заменён либой Task Parallel Library из .NET 4?
А кстати, да. Не знаю как в .net 4, а в C# 5 действительно появилось новое ключевое слово async.
Название: Re: Куда идет C#
Отправлено: valexey от Февраль 01, 2012, 08:51:51 am
Просмотрел по диагонали Task Parallel Library - по моему, это не то. По моему это про parallelism, а не про concurrency. То есть Task Parallel Library это некий аналог OpenMP.

Впрочем, могу и ошибаться.

А то что меня интересует - это async/await из C# 5.
Название: Re: Куда идет C#
Отправлено: Peter Almazov от Февраль 01, 2012, 09:50:48 am
Ну, во-первых тут таки используются некие странные языковые конструкции вроде "from added in obvervableAdd(x, y) select added;", хотя это наверняка в LINQ появилось.
Ну да, это LINQ. Хорошая вещь, кстати. Я поначалу негативно отнесся, хотел писать циклы руками (благо, умею это делать). Потом распробовал. При использовании LINQ количество кода может сокращаться в десятки раз.
Вопрос-то в чем?
Название: Re: Куда идет C#
Отправлено: vlad от Февраль 01, 2012, 02:46:36 pm
Ну да, это LINQ. Хорошая вещь, кстати. Я поначалу негативно отнесся, хотел писать циклы руками (благо, умею это делать). Потом распробовал. При использовании LINQ количество кода может сокращаться в десятки раз.

Да, я тоже пока не узнал, что такое есть (оно только с какой-то версии появилось) злобно ругался на убогий шарп, в котором циклы надо руками писать :)

Вопрос-то в чем?

Сколько ж можно всякой херни добавлять. Не пора ли новый язык замутить по опыту и с учетом. В частности, с более изящным выражением элементов ФП (ставших модными в современных мэйнстримовых ЯП).
Название: Re: Куда идет C#
Отправлено: DIzer от Февраль 01, 2012, 03:01:08 pm

Сколько ж можно всякой херни добавлять. Не пора ли новый язык замутить по опыту и с учетом. В частности, с более изящным выражением элементов ФП (ставших модными в современных мэйнстримовых ЯП).
  :D :D :D так вот и пытаемся, по мере сил и способностей отпущенных богом (и приобретенных непосильным трудом) ПОДОЙТИ к решению этой задачи  :)
Название: Re: Куда идет C#
Отправлено: valexey от Февраль 01, 2012, 03:03:35 pm

Сколько ж можно всякой херни добавлять. Не пора ли новый язык замутить по опыту и с учетом. В частности, с более изящным выражением элементов ФП (ставших модными в современных мэйнстримовых ЯП).
  :D :D :D так вот и пытаемся,
Это не попытки. То что втащили в промышленный язык, выкинуть уже нельзя. То есть оно там навсегда. Следовательно оно растет как снежный ком. И удачное и не удачное.

Мне политика развития java много больше нравится - язык развивается очень консервативно. А для экспериментов есть другие языки под jvm вроде той же скалы и всяких там груви.
Название: Re: Куда идет C#
Отправлено: DIzer от Февраль 01, 2012, 03:15:57 pm
Отчего же - по мере СИЛ и СПОСОБНОСТЕЙ  мы ДЕЛАЕМ это (Алексей  вы не уловили смысл написанного мной).... - важно понять для чего и что хотим получить в результате ,  пример ведь недалеко , вот Рифат СДЕЛАЛ модификацию Оберона 07 - и что,  мы имеем  - кучу желающих использовать его? Другой пример JAVAFX - задумывался именно как декларативный неболтливый ЯП со всеми по словам Vlad а новомодными функциональными штучками - где они теперь? сейчас это - официальный фреймворк для JAVA....