Comments 27
Так и хочется написать «А вы знаете кто ещё использовал Haskell? Правильно! ……»
Заинтересовался действительно ли в KasperskyOS смотрят на новые языки как на средство повышения безопасности.
Но нет, оказалось что они рассматривают автогенерацию кода как на средство повышения безопасности. И самый важный и доверенный код вычислителя вердиктов который они генерируют почему-то написан на C-и.
Так если рассуждать, то gcc это тоже просто автогенератор кода на ассемблере и никак не повышает безопасность.
Так если хаскель используется во всяких встраиваемых решениях, он обычно для кодогенерации, а не сам непосредственно во встраиваемой системе применяется.
Я не нашел информации, упомянутый в статье DSL Atom генерирует сразу бинарь или же код на каком-то языке, который компилируется в бинарь.
Как я понимаю, написан он как раз на Хаскелле, и потом оттранслирован в Си.
непонятно только одно, безопасность повысилась, и если да, то как?
Пишут-то на хаскеле, какая разница во что он компилируется - сразу в байт-код или предварительно в си?
Что предлагается вместо этого делать?
Раз спросили о пет-проектах, да будет мне позволено...
https://habr.com/ru/post/249803/ (не мой)
Минималистичный менеджер окон для X11 https://xmonad.org/
(хотя он, оказывается, отнесён к утилитам и был в другой статье)
В общем, как ни круто, а все равно в итоге рулит си.
Не холивара ради: был ли у вас выбор между Лиспом и Хаскелом? Если да, то почему второй?
Нет, именно такой выбор не стоял, для нас Haskell обладает целым рядом преимуществ, например, статическая типизация, АТД, удобные для моделирования предметной области, большое количество библиотек и т.д. Я не работала в компании с самого начала, но у нас есть пост, где рассказывается про выбор технологий, так сказать, из первых уст: https://habr.com/ru/company/typeable/blog/554516/
У меня как у разработчика был выбор между Clojure и Haskell, когда захотелось работать на функциональном языке, но на Haskell у меня уже был опыт разработки и уже были предложения работы, так что вакансии на Clojure даже особо не было смысла искать.
И чем плох мой вопрос? На полке книга по Common Lisp, но в последнее время упоминания про Haskell мне попадаются чаще, вот и решил узнать что да как... Но нет же, нашелся какой-то мудень, который вместо ответа влепил минус. За что? ХЗ.
По моим ощущениям haskell развивается и поддерживается гораздо лучше CL. Не так давно добавили поддержку линейных типов
Не минусовал, но попробую предположить откуда такая реакция. На мой взгляд языки чуть ли не максимально разные, даром что оба принято называть функциональными. То есть, вопрос звучит примерно как "питон или С?" — в большинстве случаев такой выбор просто не стоит, он определяется предметной областью и личными предпочтениями. Опять же, мы ведём это обсуждение в блоге компании, которая топит за статическую типизацию.
P.S. Обычно такое негодование ещё минусов собирает. (:
Мы тоже не минусовали, наоборот: такие вопросы как раз уместны в блоге компании, которая выбрала Haskell! Можно лишний раз рассказать, какой он классненький :)
Если серьёзно, то когда хочется функциональщины, то выбор между двумя "семействами" (Lisp или потомки ML) -- вполне естественный. Из лиспов сейчас живее всех в индустриальной разработке Clojure, из ML-ных, Haskell.
Если серьёзно, то когда хочется функциональщины, то выбор между двумя "семействами" (Lisp или потомки ML) — вполне естественный.
Ну ладно, не буду спорить. Похоже я не могу представить как это когда "просто хочется функциональщины". (:
Просто мне кажется, что множества любителей динамической и статической типизации не очень сильно пересекаются. Опять же, в моём понимании, лисп (тем более Common Lisp, о котором шла речь) — это, в первую очередь, макросы и "гибкость".
Все знают, что Haskell - язык, написанный специально для конфигурации оконного менеджера Xmonad. И может использоваться только для этого)))
Cardano не просто делается на Хаскеле. В компании-разработчике, IOG, работают люди, пилящие GHC, сама IOG вкладывает в экосистему Хаскела миллионы баксов сейчас. В развитие инструментария, и, в том числе, в Asterius. 9й GHC написан уже под влиянием и непосредствеенным участием Cardano:)
К вопросу о применении Haskell: работа с изображениями (в частности формат QOI “Quote OK Image”) https://0xd34df00d.me/posts/2021/12/haskell-is-quite-ok-decoding.html
дополнения
Написание GDB-скриптов на Хаскеле:
https://luctielen.com/posts/write_your_gdb_scripts_in_haskell/
В посте о скриптах ссылка на репозиторий https://github.com/luc-tielen/debugger-hs
Работа с файлами формата ELF
https://github.com/potan/MUV-dp-example/tree/master/haskell
Паттерн Model-Update-View
https://github.com/grotsev/snippet/blob/master/grosum.hs
https://habr.com/ru/post/598913/ (под спойлером внизу поста)
Параллельный алгоритм неотрицательной суммы
А вы знаете, где используется Haskell?