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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.12.2015, 01:54   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
...И ERP вот точно не то место, где нужно всеми силами стремиться к чистоте кода, математическим абстракциям, анонимным функциям и прочему.
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
...это однопоточный язык...
дело в том, что современный вектор развития направлен не на математические абстракции,
а на контроль над многопоточным приложением, на параллельные вычисления.

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

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

Последний раз редактировалось mazzy; 18.12.2015 в 02:08.
Старый 18.12.2015, 07:50   #2  
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   #3  
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   #4  
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   #5  
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   #6  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от belugin Посмотреть сообщение
Цель чего? Изобретения ФП? Введения в какой-то язык? Использования в конкретном применении?
Цель функционального программирования.
Старый 18.12.2015, 08:13   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,433 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
На самом деле современный вектор развития направлен именно на математические абстракции, более чистое, функциональное программирование. Во-первых, в основу LINQ положено понятие лямбда-исчисления. Это математическая абстракция, введённая математиком Алонзо Чёрчем. Во-вторых, LINQ разрабатывалась как абстракция доступа к данным. Мы хотим получать результат на разных типах данных, используя один язык, способ. Это абстракция, направленная на унификацию работы с данными, не имеющая ничего общего с параллельными вычислениями. В третьих, как уже говорил, сейчас наблюдается введение элементов функционального программирования. Однако, функциональное программирование не ставит цели распараллеливание кода.
Функциональное программирование позволяет выражаться декларативно (что делать), а не процедурно (как делать), а уже это даёт возможности к распараллеливанию.
Старый 18.12.2015, 08:14   #8  
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.
Старый 21.12.2015, 10:42   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Дело в том, что JavaScript это однопоточный язык
Цитата:
Сообщение от belugin Посмотреть сообщение
Не знал.
Цитата:
Сообщение от mazzy Посмотреть сообщение
параллельная обработка - ой как нужна в ERP
Ура! Дошел мой анекдот с первой страницы!!

С Уважением,
Георгий
За это сообщение автора поблагодарили: Lemming (3).
Старый 21.12.2015, 10:55   #10  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Ура! Дошел мой анекдот с первой страницы!!
1) Introduction to HTML5 Web Workers: The JavaScript Multi-threading Approach

2) Если ты читаешь не только последнее сообщение, но и контекст, то обнаружишь, что состоялся примерно такой диалог:

- Смотрите, что за говнокод надо писать в W10 на JS
- Это, навреное, из за асинхронности
- Нет, это потому, что js однопоточный

Т.е. однопоточность в данной ветке обсуждения - нежелательный фактор, приводящий к говнокоду.
Теги
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, время: 15:07.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.