Показать сообщение отдельно
Старый 18.12.2015, 07:50   #35  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
дело в том, что современный вектор развития направлен не на математические абстракции,
а на контроль над многопоточным приложением, на параллельные вычисления.

вот хорошая лекция "про это" Зачем писать в стиле LINQ, Java Stream

параллельная обработка - ой как нужна в ERP
распараллелить расчет зарплаты, расчет налоговых регистров, расчет себестоимости.
и ведь в Аксапту все равно приходится вводить параллельную обработку (см. расчет себестоимости). Тот проект, где я сейчас работаю, без параллельных вычислений давно сдох бы. На этом проекте почти все выполняется в многопоточном фреймворке.
На самом деле современный вектор развития направлен именно на математические абстракции, более чистое, функциональное программирование. Во-первых, в основу LINQ положено понятие лямбда-исчисления. Это математическая абстракция, введённая математиком Алонзо Чёрчем. Во-вторых, LINQ разрабатывалась как абстракция доступа к данным. Мы хотим получать результат на разных типах данных, используя один язык, способ. Это абстракция, направленная на унификацию работы с данными, не имеющая ничего общего с параллельными вычислениями. В третьих, как уже говорил, сейчас наблюдается введение элементов функционального программирования. Однако, функциональное программирование не ставит цели распараллеливание кода.

Для параллельного программирования можно использовать более подходящие средства. Например, в СУБД для реализации параллельных запросов используют массивно-параллельную архитектуру (MPP). А в C++ есть замечательная библиотека MPI без всякого функционального программирования и прочих абстракций и парадигм.

А Linq2SQL это для достаточно простых запросов и небольших данных. Как только появляются более сложные запросы или большие данные возвращаются к обычному SQL.