@haskellru

Страница 303 из 1551
Alexander
16.06.2017
13:00:48
на одной чаше весов болото, на другой developer time

причем developer time может быть хороший, т.к. если что-то исправляется то это надо анонсировать и ответить на вопросы n человек если не очевидно

btw Data.Bool.bool в prelude есть

где мой event-log в Debug?! =)

Google
Alexander
16.06.2017
13:04:41
кстати приятная прелюда

а не все есть

Denis
16.06.2017
13:04:55
Alexander
16.06.2017
13:05:02
выше ссылка

Denis
16.06.2017
13:06:06
выше ссылка
там много чего)

какая именно?

Alexander
16.06.2017
13:06:39
unversum

Dmitry
16.06.2017
13:06:55
на одной чаше весов болото, на другой developer time
Ну, developer time есть. Но опять же, не каждый разработчик вбухивает часы на развитие. Возможно, в начале более активно, но потом некоторые best practices разрабатываются, всё устаканивается, нужно только следить за обновления в обычном prelude и фиксить баги, если вдруг что. С другой стороны, обычный prelude тоже в некоторой степени можно считать болотом, потому что там очень редко происходят изменения и не такие значительные. Много людей постоянно жалуется, что функции частичные, неэффективный String тип, и прочее... Конечно, foundation может быть альтернативой, которая всё сделает лучше, но здесь. Но пока у нас довольно удобный инструмент. Реально облегчение от работы всё же есть.

Alexander
16.06.2017
13:07:23
/shrug

я не спорю

Tema
16.06.2017
13:07:45
я не спорю
не спорь!

Alexander
16.06.2017
13:07:53
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы

ну иногда тихо ругаюсь, если мне он как зависимость нужен, но это мелочи

Google
Alexander
16.06.2017
13:08:20
я вообще люблю тихо ругаться

Dmitry
16.06.2017
13:11:06
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы
@jagajaga по-моему до сих пор против этой прелюды, ему идея изначально не нравилась, и сейчас не нравится) Но разработчики победили в этой войне. Да и просто хочется иногда побыть дизайнером если не языка, то хотя бы его стандартной либы... Но это так, приятная отдушина :) Изначально universum был форком protolude с минорными изменениями. Потом, конечно, сильно разошлись, но некоторые принципе остались в основе. Если есть пожелания, то всегда welcome :) Я не очень понял про event-log...

Alexander
16.06.2017
13:12:01
про event-log я слепой, все что мне нужно есть. Пожелания врятли будут, это ж её использовать надо, а я маловероятно, что буду

т.е. если почитаю код то что-нить предложу, но скорее всего моё мнение надо будет выкинуть пока не поиспользую

Dmitry
16.06.2017
13:21:04
Любое мнение ценное, может помочь)

Max
16.06.2017
13:23:38
https://cryptol.net/

на х-е

Alexey
16.06.2017
13:24:04
Други, а нормально что у меня простое приложение на серванте занимает 24мб? Собирал -O2.

Artyom
16.06.2017
13:24:35
и как я говорил, если в каком-то проекте своя прелюда, то я не доказываю им что они не правы
я могу за себя сказать, что мне все решения кажутся не особо хорошими • юзать обычную Prelude с импортами всяких helper functions: слишком много импортов получается • сделать Imports.hs: хорошо, что можно экспортировать ещё и какие-то локальные полезные-только-для-одного-проекта вещи, но плохо то, что если много проектов, приходится его таскать в каждый • сделать прелюду: а) всё то, что @qnikst сказал выше, б) вообще изобретать велосипеды кажется каким-то не очень хорошим стилем • пропихивать улучшения в стандартные либы: этот вариант мне нравится больше всех, но он одновременно и самый геморный

Други, а нормально что у меня простое приложение на серванте занимает 24мб? Собирал -O2.
а strip сделал? (хотя я не помню, может он уже и автоматически делается)

Alexander
16.06.2017
13:25:25
автоматически если только при install

у стека точно, у кабала не помню, вроде флагом регулируется

Artyom
16.06.2017
13:26:49
в общем, после strip+upx должно меньше стать

сейчас на Cardano проверю

оригинал: 87 MB после strip: 58 MB после upx -9: 12 MB

я где-то читал, что бинарники после upx даже быстрее загружаются (т.к. распаковка в памяти быстрее, чем чтение с диска), поэтому должен быть win-win

Alexander
16.06.2017
13:29:41
/me не стрипает, т.к. частенько надо лазать gdb

в тех проектах где надо

иначе все совсем печально

Alexey
16.06.2017
13:33:38
Спасибо. Получилось 3.5 мб после стрипа и упх. Не фонтан конечно, но лучше

Google
Alexander
16.06.2017
13:34:34
можно попробовать все -shared собирать

не будет статически слинкованного файла

будет куча .so

и будет как-то не интерпрайзно

Alexey
16.06.2017
13:35:33
нужен один бинарь

Artyom
16.06.2017
13:37:02
у меня есть вопрос по servant есть адекватные причины, по которым в нём так сложно разобраться (webdev is inherently complex, etc) или просто это ужасная библиотека? я пытался помочь каким-то людям сделать что-то простое на servant (достать юзера из базы), убил на это часов пять и до сих пор не понимаю нормально, как servant работает внутри, хотявроденетупой

Dmitry
16.06.2017
13:39:10
есть презентация авторов

после неё норм. из сложного там тайплевел

который сложный

потому что он везде сложный

в каком языке тайплевел простой?

если испытываешь отвращение к тайплевелу, есть более простые веб фреймворки

Alexander
16.06.2017
13:40:33
вот по мне тайплевел там самое простое

Alexander
16.06.2017
13:40:44
ха-ха-ха

и ещё ха-ха

ну там многое конечно сильно приятнее

Dmitry
16.06.2017
13:41:33
а что в серванте сложное, если там тайплевел простой?

свою монаду впиливаешь методом копипасты, и в ней хоть на ушах стой

но объяснять как это делается я, пожалуй, пас

Google
Dmitry
16.06.2017
13:42:38
этот вот :~>

Artyom
16.06.2017
13:44:06
а что в серванте сложное, если там тайплевел простой?
то, что там я тыкаю в любое место в коде и оказывается, что там новое понятие и как только надо модифицировать копипасту, я как котёнок

ну, я-то привык к тому, что я вижу типы в библиотеке и знаю, что функции делают а в серванте я вижу типы и знаю абсолютно ничего

Oleg
16.06.2017
13:45:11
по мне там немножко сложно композить хэндлеры, если их реально много. Это то, что я исправил в скаловской версии

Vasiliy
16.06.2017
13:46:13
мне вот эта статья неплохо помогла в понимании того, что там под капотом происходит http://www.well-typed.com/blog/2015/11/implementing-a-minimal-version-of-haskell-servant/

Dmitry
16.06.2017
13:47:45
@lightgreen ну это как-то неконкретно. т.е там реально взрывает мозги тайплевел уровень - описание API и генерация из этих описаний всякого

но когда сам запрос обрабатываешь, там же фактически IO

и делай в нем что что хочешь

ну еще неустранимый бойлерплейт печалит. но отчасти компенсируется всякими халявами, которые даёт сервант

Artyom
16.06.2017
14:08:58
но когда сам запрос обрабатываешь, там же фактически 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
16.06.2017
14:49:43
Как впечатления от Idris?

Роман
16.06.2017
14:52:53
Как впечатления от Idris?
Мне тоже интересно

Dmitry
16.06.2017
15:17:29
Изучал Idris по этому прекрасному курсу после самостоятельного чтения документации: http://compsciclub.ru/courses/idrisprogramming/2017-spring/ Намного лучше всё в голове прояснилось. Ту самую книжку не читал, пока в планах. Решал задания в рамках этого курса. Они у каждого в закрытом репозитории. К сожалению, пока нет курса на степике такого же как с Haskell, было бы очень классно. В качестве экзаменационного проекта реализовал IntMap на зависимых типах на Idris. К сожалению, автор idris-containers не захотел мёржить мой PR, потому что алгоритм слишкой сложный для него( Но лично мне разобраться было очень интересно. Язык (именно язык, а не компилятор) оставил очень приятное ощущение. Наверное, мне нравится даже больше, чем Haskell во многих местах (часть из которых отмечена в выложенном ранее блог-посте). Разумеется, использование зависимых типов и всех этих доказательств может быть утомительным, потому что нужно ещё больше специфицировать в типах, нужно больше тратить на доказательство компилятору, больше думать об архитектуре. Но лично я люблю выжимать больше гарантий из компилятора) И для написаного разного кода пока ещё хватало ума... Наверное, больше всего в языке нравится ортогональность. Как Haskell является очень ортогональным языком, в котором фичи дружат друг с другом, так в Idris этого ещё больше, потому что из-за зависимых типов очень много конструкций уходит, всё дружит друг с другом, фичи более органично сочетаются. Это приятней по ощущениям. Касательно компилятора... Ну, он не очень :D Иногда бывают баги. Например, сравнивать версию 1.0 у языка Kotin и Idris по тому, насколько корректно работает, нельзя. Иногда проблемы с парсингом, иногда сообщения об ошибках бесплолезные и странные, компилятор может зависнуть, тоталити чекер до сих пор не всегда работает, скорость компиляции и выполнения оставляет желать лучшего. Конечно, для истинных (извращенцев) ценителей это не помеха. Всё-таки, язык молодой, и эти проблемы преодолеваемы. Особенно если больше людей будет им интересоваться. С коммьюнити вообще беда... Если есть какие-то проблемы -- гугл тебе не помощник =\ Приходится разбираться самому почти всегда (это следствие предыдущего пункта). Что уже говорить про тулинг... В общем, язык очень сыроватый, но приятный. Я бы хотел использовать его чаще. Но тут и Haskell использовать в продакшене бывает больновато, что уже говорить про Idris...

Евгений
16.06.2017
15:21:39
А где у него пакетная мусорка сейчас?

Dmitry
16.06.2017
15:26:55
В главном репозитории есть список библиотек: https://github.com/idris-lang/Idris-dev/wiki/Libraries

Евгений
16.06.2017
15:27:34
Ну такое :(

Dmitry
16.06.2017
15:28:23
Согласен(

Vasiliy
16.06.2017
15:32:34
меня больше всего напрягло отсутствие вывода типов, к которому сильно привык

у всех определений верхнего уровня должны быть указаны типы

Евгений
16.06.2017
15:35:23
у всех определений верхнего уровня должны быть указаны типы
Тот кто в хацкеле не для всех определений верхнего уровня указывает типы — тот редиска

Google
Евгений
16.06.2017
15:35:56
http://www.zelenjava-pikapolonica.si/slike/Zelenjava/redkvica.jpg

Vasiliy
16.06.2017
15:36:16
в конечном коде - полностью согласен

но во время разработки я наоборот не пишу типы, чтоб проще было маневрировать, так сказать

Евгений
16.06.2017
15:38:09
> Secure web framework > last commit Feb 3, 2014

?

Quet
16.06.2017
15:40:49
просто сразу написали так что больше и добавить-то нечего

и без ошибок само собой

Евгений
16.06.2017
15:42:39
Да оно небось не компилится

Evgeniy
16.06.2017
19:17:30
Things that Idris improves things over Haskell (Score: 100+) Link: http://j.mp/2rDtSUw

Vasiliy
16.06.2017
19:18:23
уже третий раз здесь эта ссылка

Alexander
16.06.2017
19:21:51
давайте ради интереса обсудим?

мне понравились пункты про Num и рекорды

и 50/50 do

и жестокий минус в сторону overloading

Vasiliy
16.06.2017
19:22:52
а почему минус?

мне наоборот понравилось

Alexander
16.06.2017
19:24:05
у меня в итоге в репле да и так ничерта не работает пока код не абсолютно верный

Vasiliy
16.06.2017
19:24:16
вот эти вот T.pack и BS.pack, LBS.pack ненужны

Alexander
16.06.2017
19:24:20
и нужно аннотации типов везде добавлять

Страница 303 из 1551