Dmitrii
Хочется верить, что лет через 5 Haskell станет очень популярным :D Но вообще высокооплачиваемых вакансий на Haskell разработчика полно, правда они почти все не в России
Anatolii
Dmitrii
Ping @jagajaga
Вообще, видео пока не думали, потому что курс ещё далеко не в финальной стадии, всего третий год преподаётся, и очень много пока переделывается и значительно улучшается после того, как собирается фидбек от студентов. При этом в ghc постоянно выходит что-то новое, иногда очень много нового и надо это как-то впихнуть... К примеру, первые 5 лекций были переписаны больше чем на половину.
Но спасибо за такой приятных отзыв, мы будем стараться и дальше!)
Anatolii
Ну я просто темы посмотрел - с удовольствием бы прошел некоторые части, для новичков так вообще супер
Anatolii
А за ghc никогда не угонишся
A64m
а что за изменения такие, которые требуют переписывать курс для студентов? AMP и FTP?
Alexander
ну рассказываешь ты им про * и #
Alexander
а тут бах! и levity polymorphism
Dmitrii
Переписывать не полностью, но какие-то части. AMP и FTP, к счастью, были до того, как курс начался) Просто всякая мелочь накапливается:
1. Backpack
2. deriving strategies
3. Monad of No return
4. MonadFail proposal
5. Semigroup => Monoid (оказывается, объяснить зависимость между полугруппой и моноидом не так просто, особенно когда студенты даже не могут разобраться, как правильно импортировать <>)
6. Вот да, тот же levity polymorphism.
Может быть ещё что...
Когда-нибудь ещё Linear Types и Dependent Haskell... Трудно понять, что является в некотором смысле фундаментальным и обязательно должно рассказываться, а что не так важно для обучающего курса, ибо всё-таки хочется сделать знания, которые будут получены студентами, полезными для практического применения, если они будут программировать (а несколько человек каждый год начинает в итоге программировать на Haskell на работе).
A64m
да, по # была куча изменений и до левити полиморфизма, это-то точно
A64m
ну не знаю, нужно ли что-то из перечисленного в курс для студентов включать. Откуда нужно будет <> импортировать они как-нибудь и на работе разберуться, когда и если она у них будет
Dmitrii
Достаточно смотивированный и целеустремлённый человек может во всём самостоятельно разобраться) Так-то вообще и курс можно не читать тогда
A64m
нет, ну есть же какая-то база, которой учиться надо и тут хорошо, когда есть упражнения, их проверяет кто-то и т.д. а другое дело какие-то детали "а, сейчас это вот так делается - ну понятно"
A64m
бэкпак к такому не относится, но там не понятно чему и учить уже, это какая-то экспериментальная фича с которой ни практика применения еще не понятна, ни вообще будет этим кто-то пользоваться или нет
A64m
вот стрикт хаскель, к примеру, вообще никто же не использует.
A64m
хотя там годами ждали, закатывали рукава, ох держите меня семеро, сейчас как пойду на строгом хаскеле писать программы! Как говорил СПЖ, хаскель будующего должен быть строгим!
Aleksei (astynax)
StrictData хватит всем :)
Dmitrii
Strict Haskell — просто прагма для удобства, если кому-то удобно. Достаточно знать просто, что такое строгие вычисления и как с ними работать в Haskell
Alexander
StrictHaskell вообще странная штука
A64m
там чтоб этим как-то пользоваться, надо чтоб кто-то строгую прелюдию написал сначала, а то со всеми этими ленивыми конструкторами из стандартной можно и не заметить что стрикт хаскель вообще включен
Dmitrii
Так написали уже такую прелюдию. Называется Idris
Alexander
и calling convention
Alexander
спасибо не надо такой прелюдии
Alexander
я не умею в purescript
Alexander
не могу с ним сравнивать
Alexander
я многое упускаю?
Dmitrii
Если ты не пишешь фронтенд, тогда немногое.
Aleksei (astynax)
В пурсе, говорят, часто ленивости не хватает
Anonymous
там с ней не получится
Alexander
мне в идрисе даже на смешных задачах не хватало
Alexander
а в пурсе в js бекенде то точно с ленивостью проблемы будут
A64m
я написал пару хеллоуворлдов на пурскрипте и он у меня вызывает странное чувство, видно хаскелеподобный синтаксис включает не те участки коры в мозгу и я на нем пишу только вышибающий стек код
Кабачок
Разве в Standard Chartered не пишут на строгом хаскеле?
Alexander
mu ?
A64m
у них похожие отзывы. "все работает не так как ожидаешь", не даром там рекурсия вообще отключена по умолчанию
Кабачок
да, mu
A64m
с другой стороны я сейчас что-то и не уверен даже
A64m
ведь программа на которой это могло бы быть заметно просто весело переполнит стек и все
A64m
хотя не только стек вышибает, аут оф мемори еще
A64m
вот такое для ленивого списка, к примеру length (1 .. 10000000) хотя тут же константная память должна быть
a66ath
/thread
Denis
/thread
A64m
вообще, все эти модно-молодежные пурскрипты и идрисы имеют невероятно отстойные имплементации. аналогичные по маргинальности элис и клин, к примеру, вроде были не такие убогие в этом смысле
A64m
сами языки-то еще ничего
Leonid 🦇
в пурсу уничтожитель мёртвого кода только-только пилят, даже инлайнить не умеет
A64m
ну, насколько ничего бывают строгие языки вообще
кана
так, а зачем туда уничтожитель? Есть же аглифаеры всякие
A64m
ну да, для него и яваскриптовые уничтожители должны годиться
Leonid 🦇
ну вот не годятся, так как там какая-то беда с модулями в js
Leonid 🦇
и вообще, оптимизировать надо на всех стадиях.
Leonid 🦇
а то некоторые взяли моду даже константы не схлопывать, уверяя что llvm это всё умеет.
A64m
так для пурскрипта вроде принципиально, чтоб на выходе был какой-никакой но читабельный яваскрипт
A64m
с оптимизатором это не сочетается в принципе
Leonid 🦇
пурса еще хочет раздельную компиляцию
Leonid 🦇
в общем в продакшен брать стрёмно
Leonid 🦇
пусть хотя-бы (.) и ($) инлайнят.
Leonid 🦇
точнее (<<<)
Denis
меня очень раздражает композиция через (<<<)
Denis
не могли чего-нибудь подлиннее еще сделать для ФЯП
A64m
да, меня тоже
Denis
это же никому не нужно
A64m
это же ради селекторов через точку, я правильно понимаю?
Denis
не то селекторов через точку, не то Control.Category
Denis
скорее наверное селекторы
Алексей
Синтаксически различать a.b и a . b, не?
Denis
но тогда я зря брешу на них, т.к. я подумал что из-за Category
Denis
A64m
такой пропозал и для хаскельных рекордов был когда-то
A64m
неоднократно даже
Denis
это type-directed чототам?
A64m
но там-то не было шансов уже
A64m
а вот в 90-х был пропозал который мог искалечить хаскель с самого начала
A64m
правда зато были бы рекорды вроде окамловских объектов
Алексей
A64m
ну когда делали рекорды для хаскеля там грубо говоря было три основных пропозала, тот что выиграл от Марка Джонса, Йельский (рекорды как тайпклассы) и то что потом называлось TRex от Марка Джонса же в числе прочих
кана
A64m
прото TRex проиграл, но позже была попытка опять его протолкнуть
A64m
но сам он уже имел инородный синтаксис