Как стать автором
Обновить

Комментарии 6

Что-то нигде не написано, сколько эта феерия занимает во flash, ram, и какой имеет оверхед во время выполнения, а жаль.

простая мигалка <1 килобайта во флеше, считанные байты в ram, оверхед околонулевой. RX14 написала что изучала асм который получается от сгенерированных svd.cr байндингов и он вполне оптимален, я асм не смотрел но в любом случае это не хуже чем то что у меня получается на Си.
Кристалл это далеко не руби - там нет виртуальной машины (забегая вперед - там и виртуальных вызовов нет, они эмулируются свитчем), типы данных по сути напрямую отображаются на типы Си/LLVM.

А можно узнать, зачем? Или речь исключительно о тех случаях, когда нет требований реального времени, а потому GC допустим?

Прикол в том что GC в данном случае нет. Кристалл без стандартной библиотеки - по сути Си с более приятным синтаксисом (на мой вкус), контролем типов и метапрограммированием.

Хороший вопрос. Rust намного более популярен и соответственно подводных камней там меньше, он такой же низкоуровневый и его стдлиба не требует сборщика мусора.

Но Rust мне не нравится своей сложностью. Читал статьи "чтобы в расте передать указатель на объект надо... лайфтаймы... мы просто забили и везде передаем индексы в массиве вместо указателей", сам тоже столкнулся с аналогичным когда пробовал Advent of Code на Rust. Crystal в этом смысле никаких ограничений не накладывает - хочешь использовать голые указатели и стрелять себе в ногу - пожалуйста, хочешь побезопаснее - напиши обертку побезопаснее. Этот подход меня устраивает намного больше.

Правда на Rust, наверное, можно просто добавить unsafe в каждый второй метод и тоже спокойно работать с указателями. Тогда остается вторая причина - вкусовщина. На код Rust мне неприятно смотреть, апострофы в каждой строчке, спецсимволов столько же сколько букв, а синтаксис руби - наоборот сделан чтоб читаться почти как английский текст, даже скобки у функций можно опускать. Но да - это вкусовщина, если привыкнуть то писать можно на чем угодно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории