LINUX.ORG.RU

Haskell, зачем он сейчас? Как состояние ФП?

 , , ,


1

7

Всем привет. Помню как появился Haskell и много стали говорить о промышленном применении ФП.

А где сейчас применяется Haskell? Какого его промышленное применение? Зачем он современному миру, кроме тестирования каких-либо подходов?

То же касательно и других ФП-языков - кто-то полноценно жив?

★★

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

Ну и ФП не хаскелем единым держится. Многие другие вещи вполне себе живут в проде.

Та же скала, та же кложура, я знаю у ребят даже eta-lang и Elm. И это не какие-нибудь извращенцы, а разработка в прод.

nihirash ★★★
()

А почему бы и нет? Пусть будет. У ФП всё замечательно, спасибо что спросил.

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

Ада точно использовалась американскими военными пару лет назад.

Конечно. Но я спрашивал конкретно об ОС на Ада. Я слышал только об одной, но за давностью лет забыл название.

Там всё серьёзно — правительственные контракторы без права на ошибку, всё это.

Они же испольуют Си++. И Си.

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

И это не какие-нибудь извращенцы, а разработка в прод.

Как бы это, в проде дохрена извращенцев.

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

И это не какие-нибудь извращенцы, а разработка в прод.

Как бы это, в проде дохрена извращенцев.

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

Но ведь отлично же подходит.

Так подходит, что все по-прежнему клепают всё подряд на JS с питоном.

На лоре уже обсуждали список популярных прог на хаскеле. Я могу вспомнить только pandoc.

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

Ну какие у parsec плюсы относительно миллиона других генераторов?

Можно строить парсер по кирпичикам, отлаживая его как обычную программу. Если мы генерируем парсер из РБНФ или YACC, то там такой возможности нет.

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

Плюсы тут тоже вполне себе риски

От плюсов и сишек открещиваются везде, где они не необходимы 100%, а там где таки надо, берут людей со стажем в 20 лет, портфолио и рекомендациями.

миллиард строк кода на класс

Так везде, в основном на C# встречается. Ибо культура кода у этих вендомакак отсутствует.

Вне зависимости от языка или парадигмы.

Нет. Если у тебя свалит жабист, ты нового жабиста найдешь просто вытянув руку на улице. А на хацкел не найдешь никого :)

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

Есть вот такой вот списочек Haskell in industry.

Но именно популярных программ действительно мало. Видимо, в попсовых областях просто не сталкиваются с теми челленджами, которые хаскель помог бы оседлать. Парсеры, трансляторы, компиляторы, анализаторы, кодогенераторы и прочие наукоёмкие вещи — это всё довольно нишевое, и массовому юзеру не нужно.

А для остальных задач хаскель хоть и тоже подходит (в том смысле, что позвляет делать), но не несёт каких-то явных преимуществ перед JS с питоном, очевидных для работодателя

Crocodoom ★★★★★
()
Последнее исправление: Crocodoom (всего исправлений: 3)
Ответ на: комментарий от tailgunner

DO-178C/DO-178b-совместимые авионики (считай сам :), F-22, Boeing-777...), системы упр. воздушным и ЖД движением (Парижское и Гонконгсое метро), SCADA-системы, Wind River WxWorks (на диаграме слоев в MILS у них ни разу не Мисра-Ц, а Ada и MIL-STD, Ц-шка относится к частям которые не очень критикал)

Алсо https://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html :) и что касается топов:

https://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html#Air_Traffic_Mana...

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

100%DO-178C/DO-178b-совместимые авионики (считай сам :), F-22, Boeing-777...), системы упр. воздушным и ЖД движением (Парижское и Гонконгсое метро), SCADA-системы,

Я спрашивал об ОС на Аде. О применении Ады во встраиваемых системах я и сам знаю.

Алсо https://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html :) и что касается топов:

То есть об ОС на Аде ты не знаешь. Я так и думал.

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

Про «ос» я говорил в том смысле, что не следует их путать с попсой типа линукса. Во встройке монолитный elf-бинарь с тасками «RTos» называют, и ничо.

slackwarrior ★★★★★
()

Scala очень даже жива, Erlang вроде тоже умирать не торопится.

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

Про «ос» я говорил в том смысле, что не следует их путать с попсой типа линукса

Ну так не путай. Я не путаю - может, и у тебя получится.

ты просто мартышка с банхаммером :)

Разрывом доволен.

Во встройке монолитный elf-бинарь с тасками «RTos» называют, и ничо.

Конечно. Только тасками заведует что-нибудь вроде RTEMS на Си.

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

Ну и ФП не хаскелем единым держится.
Та же скала, та же кложура…

…и Idris!

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

Разрывом доволен.

Мазохист с банхаммером порвался, несите другого :)

Только тасками заведует что-нибудь вроде RTEMS на Си.

Нет :) Ада сама умеет в таски без костылей :)

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

Жаль только чистых функций нет

Не нужно надрачивать на чистоту так усердно. Она не должна быть самоцелью. В русте переменные по умолчанию рид-онли, ненужные муты ловятся компилятором. Это вполне неплохо и практично.

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

Ну какие у parsec плюсы относительно миллиона других генераторов?

Это не генератор, а библиотека (в этом плюс) на основе парсер-комбинаторов. Но у парсер-комбинаторов есть жирный минус, который хаскеллевские пропагандисты почти всегда скрывают или, как минимум, не заостряют внимание: экспоненциальная сложность. Поэтому ghc сам parsec не использует, а применяет более-менее традиционный генератор парсеров Happy https://www.haskell.org/happy/.

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

Можно строить парсер по кирпичикам, отлаживая его как обычную программу. Если мы генерируем парсер из РБНФ или YACC, то там такой возможности нет.

Это почему? Убираешь ненужную часть грамматики и поехал.

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

Ну какие у parsec плюсы относительно миллиона других генераторов?

А можно назвать представителей этого «миллиона генераторов»? Преимущество Parsec перед, например, yacc - в том, что Parsec является библиотекой.

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

Преимущество Parsec перед, например, yacc - в том, что Parsec является библиотекой.

А что это дает с практической точки зрения?

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

А можно назвать представителей этого «миллиона генераторов»?

lemon, bison, peg/leg, antlr.

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

Преимущество Parsec перед, например, yacc - в том, что Parsec является библиотекой.

А что это дает с практической точки зрения?

Про parsec ХЗ (я не настоящий хаскел-сварщик), но в случае Nom - это намного удобнее, чем yacc/bison. Не надо отдельного файла с описанием грамматики и всей дурацкой мороки с макросами в семантических правилах.

Думаю, и с комбинацией парсеров будет гораздо проще. Описание всего на одном языке рулит.

lemon, bison, peg/leg, antlr.

По-моему, это всё очень разные инструменты %)

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от Crocodoom

Парсеры, трансляторы, компиляторы, анализаторы, кодогенераторы и прочие наукоёмкие вещи — это всё довольно нишевое, и массовому юзеру не нужно.

Тем временем, все самый популярные xml/html парсеры на сишке.

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

А унутре у ней неонка

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

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

месье не вкурсе про равенсар?

Равенскар. Месье в курсе.

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

Я бы спросил «на чем там написана система управления задачами?», но Ravenscar на это пофиг.

А у тебя есть примеры ОС на Аде? Живая ОС вроде есть, но я не могу вспомнить ее названия.

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

Хм. Даже по моему минимальному знакомству с Nom - это сильно лучше bison.

Парсеры чего ты пишешь, если не секрет? Что-то сложное, вроде ЯП?

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

Тем временем, все самый популярные xml/html парсеры на сишке.

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

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

Я бы спросил «на чем там написана ?»

дядя, ты дурак? на аде.

всё очень просто, смотри: если ты хочешь сертифицировать свою вундерфафлю, тебе надо юзать сертифицированый канпелятор. а сертифицированый канпелятор не умеет в с. и на чем ты будешь писать «систему управления задачами»?

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

Парсеры чего ты пишешь, если не секрет? Что-то сложное, вроде ЯП?

Нет, простые вещи вроде конфигов и парсинга входящих сообщений (через attoparsec). Возможно на large scale ситуация заметно отличается.

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

а у аирбус есть ліл :-)

У Airbus тоже нет. Там Integrity. Вот если Integrity на Аде - тогда конечно, но у меня таких данных нет.

дядя, ты дурак?

Нет, я умный. А ты?

Тебе надо юзать сертифицированый канпелятор. а сертифицированый канпелятор не умеет в с.

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

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

совершенно точно по качеству кода любой мл на три этажа выше чем сишное байтоёбство

Согласен. Но на реальность это мало влияет.

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

Да мне кажется, что именно в малых языках и удобнее (я на Nom делал только игрушечные примеры).

Ну я писал конфиги на bison... Кроме того, что parsec умеет нормальный UTF-8 (спасибо тебе, господи), разницы особой не заметил.

Для парсера пакетов бизон никогда не использовал, ничего не могу сказать. Скорее всего, attoparsec окажется быстрее.

kirk_johnson ★☆
()

если в фп не умею, есть смысл изучать для общего развития? хаскель подойдет для этого?

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

Конечно. Или можешь взять TDD with Idris, книжка тоже вполне себе норм для новичков.

Metaeblanuje
()

Haskell нужен только чтобы по-другому взглянуть на программирование и открыть для себя новые подходы. Никаким промышленным применением у него никогда и не пахло, промышленно ФП применяют на нормальных императивных языках.

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

Haskell нужен только чтобы по-другому взглянуть на программирование и открыть для себя новые подходы. Никаким промышленным применением у него никогда и не пахло, промышленно ФП применяют на нормальных императивных языках.

Да ладно, я в конторе на хачкеле пишу.

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

если в фп не умею, есть смысл изучать для общего развития? хаскель подойдет для этого?

ИМХО Этого ФП уже много везде, достаточно начать писать с использованием реактивных фреймворков.

anonymous
()

А где сейчас применяется Haskell? Какого его промышленное применение?

[e.g.] на лоре новость была недавно про сервер wire: https://github.com/wireapp/wire-server

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

И много вы видели ядер на паскале и аде? Выбора, зачастую, как раз и нет.

первые версии Windows были написаны на Pascal

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

Где ты со своей конторой, и где промышленное применение.

Ближе, чем ты думаешь.

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