Зигохистоморфный
какая именно?
Alexander
unversum
Dmitrii
на одной чаше весов болото, на другой developer time
Ну, developer time есть. Но опять же, не каждый разработчик вбухивает часы на развитие. Возможно, в начале более активно, но потом некоторые best practices разрабатываются, всё устаканивается, нужно только следить за обновления в обычном prelude и фиксить баги, если вдруг что. С другой стороны, обычный prelude тоже в некоторой степени можно считать болотом, потому что там очень редко происходят изменения и не такие значительные. Много людей постоянно жалуется, что функции частичные, неэффективный String тип, и прочее... Конечно, foundation может быть альтернативой, которая всё сделает лучше, но здесь. Но пока у нас довольно удобный инструмент. Реально облегчение от работы всё же есть.
Alexander
/shrug
Alexander
я не спорю
Deleted Account
я не спорю
не спорь!
Alexander
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы
Alexander
ну иногда тихо ругаюсь, если мне он как зависимость нужен, но это мелочи
Alexander
я вообще люблю тихо ругаться
Dmitrii
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы
@jagajaga по-моему до сих пор против этой прелюды, ему идея изначально не нравилась, и сейчас не нравится) Но разработчики победили в этой войне. Да и просто хочется иногда побыть дизайнером если не языка, то хотя бы его стандартной либы... Но это так, приятная отдушина :) Изначально universum был форком protolude с минорными изменениями. Потом, конечно, сильно разошлись, но некоторые принципе остались в основе. Если есть пожелания, то всегда welcome :) Я не очень понял про event-log...
Alexander
про event-log я слепой, все что мне нужно есть. Пожелания врятли будут, это ж её использовать надо, а я маловероятно, что буду
Alexander
т.е. если почитаю код то что-нить предложу, но скорее всего моё мнение надо будет выкинуть пока не поиспользую
Dmitrii
Любое мнение ценное, может помочь)
Max
https://cryptol.net/
Max
на х-е
Alexey
Други, а нормально что у меня простое приложение на серванте занимает 24мб? Собирал -O2.
Artyom
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы
я могу за себя сказать, что мне все решения кажутся не особо хорошими • юзать обычную Prelude с импортами всяких helper functions: слишком много импортов получается • сделать Imports.hs: хорошо, что можно экспортировать ещё и какие-то локальные полезные-только-для-одного-проекта вещи, но плохо то, что если много проектов, приходится его таскать в каждый • сделать прелюду: а) всё то, что @qnikst сказал выше, б) вообще изобретать велосипеды кажется каким-то не очень хорошим стилем • пропихивать улучшения в стандартные либы: этот вариант мне нравится больше всех, но он одновременно и самый геморный
Artyom
Други, а нормально что у меня простое приложение на серванте занимает 24мб? Собирал -O2.
а strip сделал? (хотя я не помню, может он уже и автоматически делается)
Alexander
автоматически если только при install
Alexander
у стека точно, у кабала не помню, вроде флагом регулируется
Artyom
в общем, после strip+upx должно меньше стать
Artyom
сейчас на Cardano проверю
Artyom
оригинал: 87 MB после strip: 58 MB после upx -9: 12 MB
Artyom
я где-то читал, что бинарники после upx даже быстрее загружаются (т.к. распаковка в памяти быстрее, чем чтение с диска), поэтому должен быть win-win
Alexander
/me не стрипает, т.к. частенько надо лазать gdb
Alexander
в тех проектах где надо
Alexander
иначе все совсем печально
Alexey
Спасибо. Получилось 3.5 мб после стрипа и упх. Не фонтан конечно, но лучше
Alexander
можно попробовать все -shared собирать
Alexander
не будет статически слинкованного файла
Alexander
будет куча .so
Alexander
и будет как-то не интерпрайзно
Alexey
нужен один бинарь
Artyom
у меня есть вопрос по servant есть адекватные причины, по которым в нём так сложно разобраться (webdev is inherently complex, etc) или просто это ужасная библиотека? я пытался помочь каким-то людям сделать что-то простое на servant (достать юзера из базы), убил на это часов пять и до сих пор не понимаю нормально, как servant работает внутри, хотявроденетупой
Dmitry
есть презентация авторов
Dmitry
после неё норм. из сложного там тайплевел
Dmitry
который сложный
Dmitry
потому что он везде сложный
Dmitry
в каком языке тайплевел простой?
Dmitry
если испытываешь отвращение к тайплевелу, есть более простые веб фреймворки
Alexander
вот по мне тайплевел там самое простое
Alexander
ха-ха-ха
Alexander
и ещё ха-ха
Alexander
ну там многое конечно сильно приятнее
Dmitry
а что в серванте сложное, если там тайплевел простой?
Dmitry
свою монаду впиливаешь методом копипасты, и в ней хоть на ушах стой
Dmitry
но объяснять как это делается я, пожалуй, пас
Dmitry
этот вот :~>
Artyom
а что в серванте сложное, если там тайплевел простой?
то, что там я тыкаю в любое место в коде и оказывается, что там новое понятие и как только надо модифицировать копипасту, я как котёнок
Artyom
ну, я-то привык к тому, что я вижу типы в библиотеке и знаю, что функции делают а в серванте я вижу типы и знаю абсолютно ничего
Oleg
по мне там немножко сложно композить хэндлеры, если их реально много. Это то, что я исправил в скаловской версии
Vasiliy
мне вот эта статья неплохо помогла в понимании того, что там под капотом происходит http://www.well-typed.com/blog/2015/11/implementing-a-minimal-version-of-haskell-servant/
Dmitry
@lightgreen ну это как-то неконкретно. т.е там реально взрывает мозги тайплевел уровень - описание API и генерация из этих описаний всякого
Dmitry
но когда сам запрос обрабатываешь, там же фактически IO
Dmitry
и делай в нем что что хочешь
Dmitry
ну еще неустранимый бойлерплейт печалит. но отчасти компенсируется всякими халявами, которые даёт сервант
Artyom
но когда сам запрос обрабатываешь, там же фактически IO
когда запрос обрабатываешь, да мне не запросы сложно обрабатывать, мне сложно кастомизировать сервантовскую логику обработки этих запросов то есть, вот например я захотел сделать authentication не внутри запроса, а сразу для целого куска API. Начал читать http://haskell-servant.readthedocs.io/en/stable/tutorial/Authentication.html#generalized-authentication. Там на меня кинули Context, AuthHandler, AuthProtect и AuthServerData, и самое плохое то, что я вообще без понятия, что там вызывает что и какие вещи происходят под капотом серванта потом (уже не помню почему, но не от хорошей жизни) мне пришлось лезть куда-то глубже и на меня свалились ещё DelayedIO, addAuthCheck, delayedFailFatal, HasLink, MkLink и друзья я уверен, что были какие-то способы сделать всё правильно и по сервантовски, но проблема в том, что сам я не могу найти эти способы
blkmrkt
Как впечатления от Idris?
Roman
Как впечатления от Idris?
Мне тоже интересно
Dmitrii
Изучал Idris по этому прекрасному курсу после самостоятельного чтения документации: http://compsciclub.ru/courses/idrisprogramming/2017-spring/ Намного лучше всё в голове прояснилось. Ту самую книжку не читал, пока в планах. Решал задания в рамках этого курса. Они у каждого в закрытом репозитории. К сожалению, пока нет курса на степике такого же как с Haskell, было бы очень классно. В качестве экзаменационного проекта реализовал IntMap на зависимых типах на Idris. К сожалению, автор idris-containers не захотел мёржить мой PR, потому что алгоритм слишкой сложный для него( Но лично мне разобраться было очень интересно. Язык (именно язык, а не компилятор) оставил очень приятное ощущение. Наверное, мне нравится даже больше, чем Haskell во многих местах (часть из которых отмечена в выложенном ранее блог-посте). Разумеется, использование зависимых типов и всех этих доказательств может быть утомительным, потому что нужно ещё больше специфицировать в типах, нужно больше тратить на доказательство компилятору, больше думать об архитектуре. Но лично я люблю выжимать больше гарантий из компилятора) И для написаного разного кода пока ещё хватало ума... Наверное, больше всего в языке нравится ортогональность. Как Haskell является очень ортогональным языком, в котором фичи дружат друг с другом, так в Idris этого ещё больше, потому что из-за зависимых типов очень много конструкций уходит, всё дружит друг с другом, фичи более органично сочетаются. Это приятней по ощущениям. Касательно компилятора... Ну, он не очень :D Иногда бывают баги. Например, сравнивать версию 1.0 у языка Kotin и Idris по тому, насколько корректно работает, нельзя. Иногда проблемы с парсингом, иногда сообщения об ошибках бесплолезные и странные, компилятор может зависнуть, тоталити чекер до сих пор не всегда работает, скорость компиляции и выполнения оставляет желать лучшего. Конечно, для истинных (извращенцев) ценителей это не помеха. Всё-таки, язык молодой, и эти проблемы преодолеваемы. Особенно если больше людей будет им интересоваться. С коммьюнити вообще беда... Если есть какие-то проблемы -- гугл тебе не помощник =\ Приходится разбираться самому почти всегда (это следствие предыдущего пункта). Что уже говорить про тулинг... В общем, язык очень сыроватый, но приятный. Я бы хотел использовать его чаще. Но тут и Haskell использовать в продакшене бывает больновато, что уже говорить про Idris...
Евгений
А где у него пакетная мусорка сейчас?
Dmitrii
В главном репозитории есть список библиотек: https://github.com/idris-lang/Idris-dev/wiki/Libraries
Евгений
Ну такое :(
Dmitrii
Согласен(
Vasiliy
меня больше всего напрягло отсутствие вывода типов, к которому сильно привык
Vasiliy
у всех определений верхнего уровня должны быть указаны типы
Евгений
у всех определений верхнего уровня должны быть указаны типы
Тот кто в хацкеле не для всех определений верхнего уровня указывает типы — тот редиска
Евгений
http://www.zelenjava-pikapolonica.si/slike/Zelenjava/redkvica.jpg
Vasiliy
в конечном коде - полностью согласен
Vasiliy
но во время разработки я наоборот не пишу типы, чтоб проще было маневрировать, так сказать
Евгений
> Secure web framework > last commit Feb 3, 2014
Евгений
😢
Quet
просто сразу написали так что больше и добавить-то нечего
Quet
и без ошибок само собой
Евгений
Да оно небось не компилится
Evgenii
Things that Idris improves things over Haskell (Score: 100+) Link: http://j.mp/2rDtSUw
Vasiliy
уже третий раз здесь эта ссылка
Alexander
давайте ради интереса обсудим?
Alexander
мне понравились пункты про Num и рекорды