Leonid 🦇
а в яваскрипт что?
"Стрелочные функции это новое слово в компьютер саенс!"
A64m
Alexander
Алексей
сомнительно что существенные изменения нельзя перечислить парой строк.
Ну вот неполный список:
1) самое главное - промисы, наконец то подвезли нормальную асинхронщину белого человека
2) нормальные переменные/константы const и let, которые работают так как и должны, а не то говно со всплытием var
3) деструктуризация
4) классы, теперь не надо писать огромнуюю кучу ClassName.prototype.methodName
5) ну и стрелочные функции, да
A64m
это все мелкие фичи
Yura
Кто-то сталкивался с таким, что nix собирает либу и при этом из этой либы не виден один из типов?
Alexander
Фича не мелкая, если она затрагивает философию программирования на языке.
Yura
при этом остальные типы и функции видны. Stack собирает нормльно.
Алексей
может быть их реализация и не кажется такой уж большой и сложной, но их влияние на код просто кколоссальное
Alexander
Алексей
Yura
да stack собирает нормально
Alexander
точно те же версии? а то как-то удивительно
Алексей
Ну да, я признаю при этом, что в принципе все эти фичи - это прежде всего устранение недостатков ES5, но всё же.
Alexander
A64m
серезное изменение - это изменение уровня разницы между языками. плюсовые темплейты это как раз такое изменение, а перечисленное - нет
Alexander
т.е. то что можно было на уровне библиотеки сделать, теперь в языке и получше?
Yura
тут даже прикол в том, что когда nix-build собирает тесты, то он символ не видит, а если запустить pkg.env, то cabal test всё видит
Yura
т.е. такое ощущение, что nix выкидывает эти символы
Leonid 🦇
Yura
да
Leonid 🦇
nix то как может выкидывать?
Алексей
Yura
я не знаю
Leonid 🦇
Какое отношение nix имеет к компиляции ?
Leonid 🦇
Магия
Yura
он запускает cabal
Leonid 🦇
nix это лучи смерти, никто не знает как они работают. А значит могут всё что угодно
Yura
походу никто не сталкивался
Yura
хз он может какой-то флаг cabal-у даёт
Yura
хм...
Yura
я закоментировал флаг
isLibrary = true;и оно заработало
Yura
WTF
Евгений
Вброшу дальше про типы. На самом деле то, что является результатом "type inference" и то, что стоит после : это тоже разные вещи совсем.
Евгений
Поэтому типами обычно называют три вещи, а не две
A64m
ну это близкородственные вещи
A64m
на каком-то этапе было посложнее - емнип, первый вывод типов вообще не позволял аннотации делать
Евгений
ну это близкородственные вещи
Ну, они часто используются вместе. Но часто и теги вместе с типами используются (например для реализации system f второго и более порядка)
A64m
ну они не столько используются вместе, сколько могут быть аннотирована в большинстве случаев для которых выводятся.
A64m
но это не одно и то же, да Ж(((
Зигохистоморфный
Dmitry
Ё-маё. Полдня в чатике не был, открываю, а тут как будто филиал Хабрахабра.
Dmitry
Битва джыэсников и хаскеллистов — атас, моё почтение!
Dmitry
Через неделю предлагаю пригласить гошника, ну или там растера.
Andrei
Dmitry
Алексей
Dmitry
Вот то-то же!
Алексей
точнее почти никогда не нужно
Cheese
когда это не нужно, например?
Андрей
когда на пхп пишешь )
Алексей
Алексей
достаточно отработки тестов, покрывающих самые распространённые варианты + парочку гранчиных случаев
Cheese
когда я пишу любой бэкенд, будет грустно, если существует хотя бы один способ неправильным запросом украсть данные моих клиентов
Алексей
возникнет неучтённая ошибка на бэкенде - она ловится, дебажится, пишется тест под неё
Алексей
Алексей
Cheese
саша
Алексей
саша
саша
Алексей
значит, всё-таки нужно?
Что нужно? Формально доказывать корректность каждой программы? Нет, не нужно. Статическая типизация тоже не панацея кстати.
Алексей
Алексей
Andrey
а статическую линковку бинаря из-под osx в линукс удалось завести кому-нибудь при компиляции stack --docker?
Алексей
Именно самое важное
Нет, самое важное - это всё-таки промисы. А генераторы мало где используются. В основном используют опять же промисы и async/await поверх них.
саша