Автор Тема: Куда идет C#  (Прочитано 6618 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Куда идет C#
« : Январь 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'ы и это естественно. Для функциональных - есть лямбды с монадами, и это тоже естественно. А тут ни два ни полтора получается. Застряли по серединке.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Куда идет C#
« Ответ #1 : Февраль 01, 2012, 01:23:33 am »
Так C#-то в данном случае никуда не идет, стоит на месте.
Вся байда реализуется библиотекой.
Полезность/вредность Rx я не могу оценить, не написав хотя бы сотню строк кода.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Куда идет C#
« Ответ #2 : Февраль 01, 2012, 05:23:22 am »
А разве этот Rx не заменён либой Task Parallel Library из .NET 4?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Куда идет C#
« Ответ #3 : Февраль 01, 2012, 08:32:56 am »
Так C#-то в данном случае никуда не идет, стоит на месте.
Вся байда реализуется библиотекой.
Полезность/вредность Rx я не могу оценить, не написав хотя бы сотню строк кода.
Ну, во-первых тут таки используются некие странные языковые конструкции вроде "from added in obvervableAdd(x, y) select added;", хотя это наверняка в LINQ появилось.

Во-вторых, C# это не только язык, но и библиотеки и подходы продвигаемые создателем. Язык без стандартных библиотек и подходов не является инструментом годным для прикладного программирования.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Куда идет C#
« Ответ #4 : Февраль 01, 2012, 08:33:47 am »
А разве этот Rx не заменён либой Task Parallel Library из .NET 4?
А кстати, да. Не знаю как в .net 4, а в C# 5 действительно появилось новое ключевое слово async.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Куда идет C#
« Ответ #5 : Февраль 01, 2012, 08:51:51 am »
Просмотрел по диагонали Task Parallel Library - по моему, это не то. По моему это про parallelism, а не про concurrency. То есть Task Parallel Library это некий аналог OpenMP.

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

А то что меня интересует - это async/await из C# 5.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Куда идет C#
« Ответ #6 : Февраль 01, 2012, 09:50:48 am »
Ну, во-первых тут таки используются некие странные языковые конструкции вроде "from added in obvervableAdd(x, y) select added;", хотя это наверняка в LINQ появилось.
Ну да, это LINQ. Хорошая вещь, кстати. Я поначалу негативно отнесся, хотел писать циклы руками (благо, умею это делать). Потом распробовал. При использовании LINQ количество кода может сокращаться в десятки раз.
Вопрос-то в чем?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Куда идет C#
« Ответ #7 : Февраль 01, 2012, 02:46:36 pm »
Ну да, это LINQ. Хорошая вещь, кстати. Я поначалу негативно отнесся, хотел писать циклы руками (благо, умею это делать). Потом распробовал. При использовании LINQ количество кода может сокращаться в десятки раз.

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

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

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

DIzer

  • Гость
Re: Куда идет C#
« Ответ #8 : Февраль 01, 2012, 03:01:08 pm »

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Куда идет C#
« Ответ #9 : Февраль 01, 2012, 03:03:35 pm »

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

Мне политика развития java много больше нравится - язык развивается очень консервативно. А для экспериментов есть другие языки под jvm вроде той же скалы и всяких там груви.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

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