С высоты-2

Jul 08, 2019 17:25


В предыдущем посте я разочаровывался в Clojure, а точнее в тех задачах, которые хочу на ней решать. С языком-то все нормально, он ровно то, за что себя выдает. Просто до какого-то момента и для каких-то задач на это удобно закрывать глаза, ну а мне уже не удобно.

Ну и что я сделал. Я пошел учить Rust. Не, ну интересно же, как компьютеры сегодня ( Read more... )

Leave a comment

Comments 119

ext_1315491 July 9 2019, 05:39:35 UTC
Никита, ну у тебя же весь кложуровский проект в “Boxed math warning”, как же так?
И “Reflection warning” тоже имеются.

Также непонятно, с какими параметрами java это всё запускалось, и, кажется, всё запускалось через lein без aot, что тоже может иметь отношение к производительности.

И если уж выделять именно overhead, то надо было брать JVM язык для сравнения, тем более что ты уже пишешь на котлине.

Reply

tonsky July 9 2019, 08:20:08 UTC
> Никита, ну у тебя же весь кложуровский проект в “Boxed math warning”, как же так?

Ну это же Clojure, пойди ее убеди примитивы между функциями передать. На Java можно было бы, на Clojure почти невозможно в любой не-игрушечной программе

> И “Reflection warning” тоже имеются.

Хде?

> через lein без aot, что тоже может иметь отношение к производительности

ну-ка, просвяти меня, какое отношение aot имеет к производительности?

> И если уж выделять именно overhead, то надо было брать JVM язык для сравнения, тем более что ты уже пишешь на котлине.

Ты наверное неправильно понял. Мы взяли что взяли и сравнили что было. Было бы круто сравнить все возможные языки между собой? Конечно. Но у нас есть то что есть. Хочешь чего-то другого - пожалуйста, код открыт

Reply

tonsky July 9 2019, 13:37:02 UTC
> И “Reflection warning” тоже имеются.

блин, опять меня подвел repl. (set! *warn-on-reflection* true) не работает, надо через lein ставить. Имеются, в общем. Но не принципиальные - время не уменьшается

Reply

ext_1315491 July 9 2019, 17:48:51 UTC
в файлах с `(set! *warn-on-reflection* true)` как раз всё нормально
но оно не во всех файлах включено

Reply


urod July 9 2019, 07:44:08 UTC
Если верить старому исследованию 2000 года, на Питоне пишется в 4 раза веселее, чем на С++.

Reply


anonymous July 11 2019, 07:05:30 UTC
В 17 раз? Это ещё ничего. Я вот решил освоить Clojure, повторил питоновский код и то, что по словам автора, работает на питоне 10 секунд, у меня на Clojure работает 48 часов. Это в 17000 раз медленнее! Ну да, это алгебра, матрицы и всё вот это. Но я использую MXNet, правда через Scala, но похоже проблема в JVM. Посмотрел Flame Graph, у меня 70% времени GC работает. Если кто подскажет, как правильно на кложе ваять подобный код - буду премного благодарен. https://github.com/deem0n/deep-book-clojure

Reply

anonymous July 13 2019, 10:32:50 UTC
>алгебра, матрицы и всё вот это
https://github.com/uncomplicate/neanderthal
https://dragan.rocks
?

Reply


masterden July 13 2019, 08:23:34 UTC
D не хочешь попробовать? ;)

Reply


anonymous July 13 2019, 10:08:44 UTC
>Впечатляет, да ( ... )

Reply


Leave a comment

Up