LINUX.ORG.RU
ФорумTalks

Триумф фунциональщины и сдвиг парадигмы?

 


0

3

Наблюдается активное внедрение функциональщины повсеместно, даже в таких, казалось бы, захолустьях как C++ и Java. Функциональные языки активно переманивают разработчиков в привычных средств (Scala), а то и целиком захватывают целые направления (Erlang). Языка без поддержки хотя бы базовых элементов функциональщины уже и не найти.

В связи с этим несколько вопросов:

1. Как видно, преимущества функциональщина имеет и без чистоты. Ждет ли нас ползучее проникновение чистоты в языки или этот барьер не будет преодолен?

2. Заметно сращивание чистых языков и систем доказательства теорем, что дало толчок этому процессу — зависимые типы?

3. Может нам уже пора писать на Idris и Agda, минуя Haskell и т.п.?

4. Ждут ли нас статически типизируемые макросы на AST?

5. Ну и в качестве легкого троллинга: сколько усилий нужно, чтобы написать на чистом языке (с зависимыми типами или без) что-то типа Qt, нужно ли оно и сколько будет компилироваться?



Последнее исправление: metadeu5 (всего исправлений: 1)

1. Не будет.

2. Уже пишут.

4. В мейнстриме — нескоро.

5. Столько же, сколько и на крестах.

Впредь цифры не пропускай.

buddhist ★★★★★
()

Играю со Скалой только потому, что она умеет под веб и она работает на жаба-машине - это значит, что есть куча библиотек, фреймворков, нормальные инструменты разработки, глобальность и надёжность. Сам язык нравицца, но чистота и особенности не принципиально.

bender ★★★★★
()

Касательно чистоты: можно же просто помечать все функции, изменяющие переменные и контактирующие с ОС как нечистые, а остальными компилятор может вертеть в целях оптимизации как хочет. Это где-то реализовано?

sevenredlines
()
Ответ на: комментарий от metadeu5

Тогда:

2. Да, зависимые типы и вообще работы в области теории типов.

3. Уже пишут, хаскель давно не в моде

buddhist ★★★★★
()
Ответ на: комментарий от metadeu5

...все функции, использующие нечистые функции также нечистые, иначе чистые.

*изменяющие переменные, не являющиеся локальными

sevenredlines
()
Ответ на: комментарий от sevenredlines

ЕМНИП, во всяком FLP вроде Mercury и Ciao есть

В вышеупомянутом Nim тоже есть соответствующая директива

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)
Ответ на: комментарий от sevenredlines

Все системные функции тогда должны считаться нечистыми, плюс ещё выкинуть все, в которых используются unsafe преобразования и чистых получится 3 функции в проекте.

metadeu5
() автор топика
Ответ на: комментарий от buddhist

Чтобы он стал в моде снова. У него же библиотека развитая и коммьюнити какое-никакое сформировалось.

metadeu5
() автор топика
Ответ на: комментарий от metadeu5

Там и выбирать не из чего. Scala. OCaml потихоньку снова набирает популярность, а эфшарп наоборот, тормозит. Кложурка тоже популярна.

buddhist ★★★★★
()

Может нам уже пора писать на Idris и Agda

Нет.

hateyoufeel ★★★★★
()
Ответ на: комментарий от buddhist

OCaml потихоньку снова набирает популярность

OCaml сейчас находится в достаточно плачевном состоянии. Достаточно хотя бы того, что его стандартная библиотека плохо сочетается с тредами.

hateyoufeel ★★★★★
()

Языка без поддержки хотя бы базовых элементов функциональщины уже и не найти

Ничего ты не понимаешь. Элементы функциональщины потому и пихают в мейнстримные язычки, чтобы удерживать на них разработчиков. Тот факт, что погромист на фукциональщине пишет такой же быдлокод, что и без нее, никого не колышит.

iVS ★★★★★
()
Ответ на: комментарий от buddhist

OCaml потихоньку снова набирает популярность

у тебя он годами «набирает популярность», только вот пользователей что-то не видно.

Lincor
()

Может нам уже пора писать на Idris и Agda, минуя Haskell и т.п.?

нет. Haskell - промышленный, Idris и Agda - нет. кроме того, порог вхождения - для программирования на Haskell особых знаний не надо, а вот писать на Agda или Idris без знания логики весьма проблематично

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Ну-ну. Доставляет видеть то тут, то там посты типа «Как мне исхитриться с типами, чтобы сделать что-то посложнее хеллоуворлд». Конечно, комьюнити помогает, но факт есть факт: такие затыки возникают постоянно. Не берем в расчет заслуженных мастеров спорта по тяжелой атлетике.

Virtuos86 ★★★★★
()

1. чистоты не будет, для этого надо все эти языки переписать, это никому не интересно
2. где это?
3. пиши
4. нет
5. не нужно

umren ★★★★★
()
Последнее исправление: umren (всего исправлений: 1)

Триумф фунциональщины

скорее ее слив, а то что можно у нее украсть перетекло/перетекает в мейнстрим язычки

umren ★★★★★
()
Ответ на: комментарий от metadeu5

Ого, сколько оптимизма! Британские ученые доказали, что использование map вместо цикла и filter вместо if-else дает прирост +100 IQ и +1000 ЧСВ.

iVS ★★★★★
()

2. Изоморфизм Карри-Ховарда. А там уж какого порядка логику хочешь, такую систему типов и нужно, не обязательно с зависимыми типами.

devsdc ★★
()
Ответ на: комментарий от devsdc

не обязательно с зависимыми типами

без зависимых типов будет у тебя логика высказываний. далеко ты уедешь с логикой высказываний?

jtootf ★★★★★
()
Ответ на: комментарий от Virtuos86

для программирования на Haskell особых знаний не надо

для программирования helloworld на Haskell особых знаний не надо
поправил

и ошибся. бывает

Хм. Одному мне кажется, что «программирование helloworld на Haskell» - это подмножество «программирования на Haskell», и всё, что верно для второго, верно и для первого?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

подмножество «программирования на Haskell», и всё, что верно для второго, верно и для первого?
подмножество
всё, что верно для второго, верно и для первого?

прямоугольники - подмножество многоугосльников, но это не значит, что у всех многоугольников прямые углы.

sevenredlines
()
Ответ на: комментарий от tailgunner

Сходи покури или наоборот подыши свежим воздухом. Если общее утверждение неверно, то его частный случай может быть верным, но не наоборот. Может, на хаскеле и можно программировать, не имея особых знаний, но где истории успеха? )

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Сходи покури или наоборот подыши свежим воздухом

Покурить это мысль... заодно и пепла раздобуду.

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf

какого порядка логику хочешь, такую систему типов и нужно

Я с ней вообще никуда ехать не собираюсь, а кто хочет, тот пусть и в такой логике ковыряется.

devsdc ★★
()
Ответ на: комментарий от devsdc

зависимые типы — не первопричина сама по себе

они дают некоторый профит и без привлечения CHI к верификации; та же Agda в некоторых смыслах - такой себе «правильный Haskell» без кучи необходимых GHC-расширений в каждом файле

однако, как и с Clean например, цель не оправдывает средства - писать всё равно трудно, а без CHI ещё и не очень понятно зачем

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.