Size: a a a

Compiler Development

2019 September 29

AK

Andrei Kurosh in Compiler Development
Ну и кстати Swift в этом плане от индустрии не отстает
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
То, на каком уровне в мейнстримные языки вкрапляется функциональщина (лямбды, замыкания, возможно DU), особого углубления не требует
Дело же не в синтаксисе конкретных языков, а вообще к подходам к проектированию ПО. Категорные базы данных, например, или, допустим, генеративные модели в МО. Там нужна функциональщина для понимания. А кодить можно хоть на ассемблере.
источник

AK

Andrei Kurosh in Compiler Development
Михаил Бахтерев
Дело же не в синтаксисе конкретных языков, а вообще к подходам к проектированию ПО. Категорные базы данных, например, или, допустим, генеративные модели в МО. Там нужна функциональщина для понимания. А кодить можно хоть на ассемблере.
Если кодить можно хоть на ассемблере, то и данные можно хранить в текстовом файле или обучаться на какой-нибудь примитивной модели, и что это доказывает?
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
Если кодить можно хоть на ассемблере, то и данные можно хранить в текстовом файле или обучаться на какой-нибудь примитивной модели, и что это доказывает?
Ничего. Дело не в хранении данных, а в том, как Вы их интерпретируете. Функциональная интерпретация более удобна и позволяет быстрее развивать функциональность. И она просто более адекватна реальности, потому что имеет физические основания. По крайней мере, мой опыт таков. Но я не навязываю точку зрения. У всех опыт разный.
источник

AK

Andrei Kurosh in Compiler Development
По-моему мы с вами о разных вещах говорим. Я не спорю, что ФП работает, но если судить по мейнстримным языкам, то лучше всего оно работает как приправа к императивному ООП
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
По-моему мы с вами о разных вещах говорим. Я не спорю, что ФП работает, но если судить по мейнстримным языкам, то лучше всего оно работает как приправа к императивному ООП
Лично для меня (распределённые системы и параллельные вычисления) ООП вообще не работает.
источник

AK

Andrei Kurosh in Compiler Development
А вы собственный опыт экстраполируете на всю индустрию разработки в целом? )
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
А вы собственный опыт экстраполируете на всю индустрию разработки в целом? )
Ну, это же не только мой личный опыт. У нас, параллельщиков, у всех такая проблема. ООП не работает, потому что не получается придумать достаточно эффективное понятие  объекта для распределённой памяти.
источник

AK

Andrei Kurosh in Compiler Development
С этим я тоже не спорю, но помимо параллельщиков есть еще, например, фронтенд, в котором многопоточности практически нет, или встраиваемые системы, где нужно быть ближе к железу, или мобильщики - в общем, достаточно много областей, где ФП в полной мере применить нельзя из-за порога вхождения, толщины абстракций и тд
источник

AY

Anatoly Y. in Compiler Development
Чем акторы не объекты которые в то же время могут работать в параллельных системах
источник

AY

Anatoly Y. in Compiler Development
Мне кажется от задачи как обычно все зависит
источник

МБ

Михаил Бахтерев in Compiler Development
Anatoly Y.
Чем акторы не объекты которые в то же время могут работать в параллельных системах
Акторы - это самый простой вид пересылки сообщений. Ну, с технической точки зрения. А нужны более сложные и структурированные операции.
источник

Dv

Dr. Friedrich von Never in Compiler Development
EgorBo
да, но я не знаю какие билд системы юзает паскаль и как там включать флаги
Никакие :)
источник

Dv

Dr. Friedrich von Never in Compiler Development
Когда мне надо было, я просто сам билдскрипты писал, и модифицировал App.config компилятора, чтоб он сборки из нугета мог подгрузить.
источник

Dv

Dr. Friedrich von Never in Compiler Development
Sergey Sverdlov
Я для студентов юзаю PascalABC.NET. Для него так можно сделать?
Нет, на данный момент нельзя. Я порылся в коде компилятора и, кажется, он соответствующие инструкции генерировать не умеет.

Но можно туда законтрибьютить, например :)
источник

Dv

Dr. Friedrich von Never in Compiler Development
У них код довольно человечный, хоть и написан поколениями студентов.
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
С этим я тоже не спорю, но помимо параллельщиков есть еще, например, фронтенд, в котором многопоточности практически нет, или встраиваемые системы, где нужно быть ближе к железу, или мобильщики - в общем, достаточно много областей, где ФП в полной мере применить нельзя из-за порога вхождения, толщины абстракций и тд
Не такие уж там и толстые абстракции. Функция - это всего лишь структура данных с указателем на код (или, если связи можно разрешить статически, без указателя). В Lambda Papers хорошо описано, как eval сводится к формированию таких структур,  а apply сводится к goto.

Для встраиваемых систем есть реализации функциональных языков.

О других областях программирования ничего не могу сказать.
источник

Dv

Dr. Friedrich von Never in Compiler Development
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
С этим я тоже не спорю, но помимо параллельщиков есть еще, например, фронтенд, в котором многопоточности практически нет, или встраиваемые системы, где нужно быть ближе к железу, или мобильщики - в общем, достаточно много областей, где ФП в полной мере применить нельзя из-за порога вхождения, толщины абстракций и тд
Фронт-енд и мобильные - это уже неиллюзорные распределённые системы, и разработчики там огребают все проблемы распределённых систем. Постепенно даже начинают использовать решения из распределённых систем - CRDT, там, и всякое такое.
При этом внезапно выяснилось, что UI (стейт-машину) удобно моделировать в функциональном стиле - привет React/Redux и прочим Elm Architecture с RxEverything. И эта тема сейчас активно просачивается в мобилки из фронт-енда.
Оно, конечно, не Haskell, и тем более не зав. типы, но то, что попало в мейнстрим JS становится общим местом. 😃
источник

SS

Sergey Sverdlov in Compiler Development
Могу заменить только, что аккуратно написано. Но ковыряться в этом нет возможности.
источник