AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

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

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

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

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

А Linq2SQL это для достаточно простых запросов и небольших данных. Как только появляются более сложные запросы или большие данные возвращаются к обычному SQL.
Старый 18.12.2015, 08:04   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Однако, функциональное программирование не ставит цели распараллеливание кода.
Из Википедии

Pure functional programming completely prevents side-effects and provides referential transparency, which makes it easier to verify, optimize, and parallelize programs, and easier to write automated tools to perform those tasks.

См также plinq
За это сообщение автора поблагодарили: AP-1055D (1).
Старый 18.12.2015, 09:51   #3  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от belugin Посмотреть сообщение
Из Википедии

Pure functional programming completely prevents side-effects and provides referential transparency, which makes it easier to verify, optimize, and parallelize programs, and easier to write automated tools to perform those tasks.

См также plinq
Я согласен с вами, и вы привели цитату, но параллелизм это следствие, а не цель. Это следствие (параллелизм) появляется в результате того, что мы оперируем чистыми функциями, результат которых зависит только от аргумента и ни от чего более. Следовательно, такие функции можно выполнять параллельно. Но это именно следствие. Основная цель, насколько я это помню из курса лекций и насколько понимаю сам, сделать код максимально модульным, так что, зная результат функции от аргумента можно было бы использовать этот результат независимо от других функций. Так, действительно, можно ввести параллельные вычисления.
Старый 18.12.2015, 11:20   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Основная цель, насколько я это помню из курса лекций и насколько понимаю сам, сделать код максимально модульным
Цель чего? Изобретения ФП? Введения в какой-то язык? Использования в конкретном применении?
Старый 19.12.2015, 10:02   #5  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от belugin Посмотреть сообщение
Цель чего? Изобретения ФП? Введения в какой-то язык? Использования в конкретном применении?
Цель функционального программирования.
Старый 18.12.2015, 08:13   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
На самом деле современный вектор развития направлен именно на математические абстракции, более чистое, функциональное программирование. Во-первых, в основу LINQ положено понятие лямбда-исчисления. Это математическая абстракция, введённая математиком Алонзо Чёрчем. Во-вторых, LINQ разрабатывалась как абстракция доступа к данным. Мы хотим получать результат на разных типах данных, используя один язык, способ. Это абстракция, направленная на унификацию работы с данными, не имеющая ничего общего с параллельными вычислениями. В третьих, как уже говорил, сейчас наблюдается введение элементов функционального программирования. Однако, функциональное программирование не ставит цели распараллеливание кода.
Функциональное программирование позволяет выражаться декларативно (что делать), а не процедурно (как делать), а уже это даёт возможности к распараллеливанию.
Старый 18.12.2015, 08:14   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
На самом деле современный вектор развития направлен именно на математические абстракции, более чистое, функциональное программирование.
Исследования - да, в сторону абстраций. Потому что там лежат lazy-вычисления, отложенные вычисления.

Но развитие - в сторону параллельности. Особенно в массовых языках.
В лекции об этом и говорилось.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Во-первых, в основу LINQ положено понятие лямбда-исчисления. Это математическая абстракция, введённая математиком Алонзо Чёрчем.
В основу - да.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Во-вторых, LINQ разрабатывалась как абстракция доступа к данным. Мы хотим получать результат на разных типах данных, используя один язык, способ. Это абстракция, направленная на унификацию работы с данными, не имеющая ничего общего с параллельными вычислениями.
В массовых языках - никто бы не вводил асбтракции.
Они сами по себе нах никому не сдались.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
В третьих, как уже говорил, сейчас наблюдается введение элементов функционального программирования. Однако, функциональное программирование не ставит цели распараллеливание кода.
функциональное - не ставит, согласен.
но тот вариант функционального программирования, который появляется в массовых языках, появляется именно из-за возможности распараллелить.

сравни хаскель и монадами и та куцая часть функционального программирования, которая попала хотя бы в скалу. не говоря уж об ошметках "функции высшего порядка" в C# и Java...

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Для параллельного программирования можно использовать
у меня такое ощущение, что вы лекцию не посмотрели.
докладчик так усилено напирал на ответы на ваши вопросы.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
А Linq2SQL это для достаточно простых запросов и небольших данных. Как только появляются более сложные запросы или большие данные возвращаются к обычному SQL.
)))))))
а почему только SQL? это ж реляционные данные.

вон, даже в аксапту вводят совершенно нереляционную entity.
Теги
f#, kotlin

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Боюсь, что при текущем подходе AX 10 лет у нас не проживет. Ark Курилка 18 29.09.2016 10:17
С вечера пятницы до вечера воскресенья (с 8.10 по 10.10) форум будет недоступен в связи с переездом на новый хостинг. mazzy Информация для участников 0 07.10.2010 21:11
10 минутная готовность: встречаем момент времени 12:34:56 07.08.09 Gustav Детская 8 07.08.2009 14:35
Встреча питерских аксаптеров 31.10.2008 fed Курилка 2 30.10.2008 13:09
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:33.