Alexander
на компах побыстрее разница больше
Alexander
у меня в 10 раз между си и haskell
Dmitry
т.е с тем же питоном какая история - всё, что вызывается в пресловутом pypy-шном примере, на самом деле написано на си
Dmitry
от питона там только »= , что называется
Dmitry
и все структуры, которые в итоге порождаются - они доступны из си
Alexander
Python 94.0% Objective-C 2.7% C 2.2% C++ 0.5% Assembly 0.3% HTML 0.2% Other 0.1%
Alexander
according to github
Alexander
а стоп
Dmitry
pypy это что-то типа jit / pre-jit ?
Alexander
нет, это неофициальный не обновляющийся с 2015
Dmitry
ввод-вывод и основные структуры типа строк - это си
Dmitry
как и в почти любом скриптовом языке
Alexander
ну щас тоже самое
Alexander
только си вырос до 5%
Aragaer
а pypy3k не пробовали?
Dmitry
Kir
Рпитоном оно компилиться в исполняемый файл вроде. А си в репе - это может код для взаимодействия с сишными расширениями. видел мнение что часто быстрее результат jit-ом у них поолучается, чем если юзать си-либу посредством ffi
Kir
а pypy3k не пробовали?
я - нет. Оно вроде в бете у них
Aragaer
помню читал когда-то про какие-то фокусы с llvm, когда llvm байткод сохраняется после компиляции для того, чтобы делать рантайм специализацию
Aragaer
pypy3k я использовал года два назад - для моих целей было достаточно
Aragaer
это я про разные вещи
Dmitry
тут, надо еще какой-то сделать wrap
Dmitry
задача - cpu / шина bound
Dmitry
вся её суть - в творческом заполнении буфера вывода
Dmitry
код на питоне не делает почти ничего, кроме вызова сишных же по сути функций IO библиотеки
Alexander
https://gist.github.com/zinid/1da345fcde47f5e6a799288f66ee3857 ocaml
Dmitry
код на хаскелл в основном написан на хаскелл, поэтому удивительно, что вообще
Alexander
жуйк удивляет
Alexander
кстати в него телеграм интерфейс вроде запилили, но у меня не работает
Dmitry
как только у нас начнется сложная логика со сложными структурами данных и, особенно, выделениями памяти - как в сервере, когда каждый шматок памяти на си ты должен куда-то приткнуть, а потом не забыть его подчистить
Dmitry
когда ты пишешь половину кривого сборщика мусора с одной строны, и половину лиспа - с другой стороны
Dmitry
вот тут то может и время начать в си просасывать по сравнению с топиком
Dmitry
и время разработки, и время выполнения, что характерно
Dmitry
короче, сохраняем спокойствие, пилим на хаскеле, узкие места добиваем в сишке. как обычно
Dmitry
по расту резюме пока нет.
Dmitry
что-то мне он кажется очень уж вербозным.
Dmitry
но в расте хороший тулинг, все хорошо с кросс-компиляцией и он лезет во всякие недоплатформы по размеру бинарника
Dmitry
по порогу входа он, по моему, сложнее хаскелла. но могу ошибаться.
Alexander
когда я на exercism делал задачки на расте было просто
Alexander
но это все hello world
Alexander
а серьезное что-то так и не писал
Dmitry
ну там если прищурится, всё примерно напоминает нормальный фунциональный язык - и ADT вроде. и PM, и тайпклассы
Dmitry
но наверняка ведь на практике всё окажется поддельным
Dmitry
и монад нет, поди. или есть?
Dmitry
ну т.е монады то есть
Dmitry
а вот синтаксиса нет
Dmitry
и начнется со всякими там Either / Maybe / Error у них как всегда
Dmitry
так ведь?
Dmitry
и Reader
Dmitry
плюс weird syntax
Dmitry
ну, тема с дарением/заимствованием/проигрыванием в карты норм,
Dmitry
но как-то не хочется это вручную разруливать и вообще думать об этом, хотелось бы, что кроме клинических случаев компилятор сам со всем этим разбирался
Danila Matveev
HKT нет (одна из причин что там стараются почти везде использовать static dispatch) в версии то ли 1.18, то ли 1.20 была еще проблема получить результат если имплементации интерфейса в ветках логики разные, хоть и указываешь один общий (не знаю пофиксили или нет) это что было в моем крайне ограниченном опыте
Dmitry
с другой стороны, конечно, х-л нуждается в каких-то вещах в четкой генеральной линии партии, выраженной в стандартной библиотеке и стандартных практиках. с обработкой ошибок той же. что бы в 90% случаев вообще об этом никогда не думать
Dmitry
переклюк ленивый/энергичный мне что-то не нравится вообще на уровне библиотек и пространства имён
Dmitry
тут напрашивается какая-то параметризация
Alexander
ты простыню мою видел вчера?
Кабачок
Duff device
Не он
Dmitry
не уверен, я вчера в ауте был. боялся даже сюда заглядывать, тут какой-то треш постился
Dmitry
огромными портянками на си
Anatoly
плюсы затестите https://gist.github.com/tenv/ef73c350a5fd17e385d09535369d7c6e
Alexander
ленивый / энергичный это про параметры или про строки?
Кабачок
Кажется я только что видел скриншот такой портянки
Dmitry
про плюсы - наивная версия детектед, вангую 6 секунд
Dmitry
щас запущу
Кабачок
У тебя ещё есть силы что-то запускать?
Dmitry
@tenvd 9 секунд
Dmitry
я скоро свою мясную нейросеть научу по виду этой программы время предсказывать
Aragaer
я предполагал, что будет ближе к 8
Kir
https://gist.github.com/zinid/1da345fcde47f5e6a799288f66ee3857 ocaml
А эту версию окамла бенчмаркали?
Dmitry
@aragaer ну заявил бы ставку - выиграл бы
Aragaer
первая наивная реализация на С была больше 8
Alexander
не знаю
Dmitry
норот, добавляйте версии в коменты плс
Dmitry
к посту
Dmitry
там же и весь основной код есть, можете сами забенчмаркать всегда
Dmitry
Error: Unbound value String.split_on_char