Size: a a a

Сrystal Lang — русскоговорящее сообщество

2021 September 16

YS

Yura Sokolov in Сrystal Lang — русскоговорящее сообщество
Я в основном использую Crystal, чтобы быстро что-то посчитать и не писать на C/C++/Go.
При этом качества оптимизатора Go мне бы хватило. И скорость компиляции Go меня устраивает. Но Crystal приятнее как язык.
И тут с Crystal у меня дилема: либо быстро скомпилить --debug , и мириться с тупняком выполнения, либо долго ждать --release сборки, но работать быстро будет.
источник

YS

Yura Sokolov in Сrystal Lang — русскоговорящее сообщество
А, извиняюсь, тесты? С одной стороны, конечно лучше их на debug гонять. Но бывает код, который на debug будет выполняться долго.
А главное, опять-таки берём Go: у него нет разных режимов компиляции. Однако это не мешает ни тесту, ни проду.
источник

АК

Андрей Коновод... in Сrystal Lang — русскоговорящее сообщество
ну в релизе в чистом виде llvm тормозит, надо бы поисследовать какие там проходы оптимизации самые медленные.
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
да для release генерится один огромный llvm ir файл, который отдается llvm оптимизатору, и эта операция и занимает 95% времени, и выполняется однопоточно
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
и кристал не может реюзать скомпиленные функции в release
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
изза отсутсвия жесткой типизации
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Что такое жесткая типизация?
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
когда тебя в каждом месте заставляют указывать типы переменных
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
как это сделано в го и других языках
источник

D

Dmitry in Сrystal Lang — русскоговорящее сообщество
я думал речь будет про слабую и сильную
источник

G

Grabli66 in Сrystal Lang — русскоговорящее сообщество
Я люблю типизацию пожоще.
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
да за что ее любить? добавляет только кучу рукописной работы и больше текста на экране = сложнее понять его
источник

DS

Damir Sharipov in Сrystal Lang — русскоговорящее сообщество
😂👍
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
не спорю иногда типы в описании метода полезны, чтобы понять что он принимает, но это далеко не все методы, есть куча мелких методов где это будет излишне
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Компилятор знает все типы. Если в функцию подается аргумент одного типа, а в другом месте другого, то он сгенерирует две версии этой функции и подставит вызов нужной
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
угу, но именно изза этого кристал и не может реюзать llvm оптимизированные куски для генерации методов
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
и просчитывает все с нуля
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Получается во всех языках с дженериками не может быть инкременталки?
источник

HH

Hz Hz in Сrystal Lang — русскоговорящее сообщество
может быть теоретически, но реализация явно сложнее
источник

G

Gabben in Сrystal Lang — русскоговорящее сообщество
Но они же уже реализованы на практике 🤔
источник