Go имеет value типы, поэтому писать без аллокаций там проще простого.
Гм. А как мне быть, если мне нужно работать с некой последовательностью данных, длина которых неизвестна в рантайме? Передавать ссылку указатель на массив не получится, а слайс всегда выделяет память.
При всей моей любви к Rust: это не так. Сообщения от компилятора, конечно, сильно помогают, но писать код всё же надо самому. Вот где действительно то, что можно назвать compiler-driven development — так это в Idris
GC вполне предсказуем если ты понимаешь как он работает и какие паттерны усложняют его работу.
Угу, все возможные GC, с которыми приложение может работать. И со всеми возможными настройками.
На том же Go можно при желании писать код, который практически не будет вызывать аллокаций в рантайме и всё равно это будет проще чем раст или плюсы. Со сравнимой производительностью.
А можно привести пример? Обычно Go без аллокаций выглядит как мешанина из unsafe.Pointer, в которой за деревьями сложно разглядеть лес.
Попыток сделать графический язык программирования было немало. Всякий раз реализация упирается в то, что сколько-нибудь серьёзные программы не умещаются на экране и потому совершенно теряют в наглядности (не говоря уже о отсутствии нормального тулинга).
Конкретно это в Telegram вполне есть.
А что, вы на слух ощущаете разницу между lossless и, скажем, MP3? Правда интересно.
Гм. А как мне быть, если мне нужно работать с некой последовательностью данных, длина которых неизвестна в рантайме? Передавать
ссылкууказатель на массив не получится, а слайс всегда выделяет память.А вообще-то неплохая идея.
При всей моей любви к Rust: это не так. Сообщения от компилятора, конечно, сильно помогают, но писать код всё же надо самому. Вот где действительно то, что можно назвать compiler-driven development — так это в Idris
Угу, все возможные GC, с которыми приложение может работать. И со всеми возможными настройками.
А можно привести пример? Обычно Go без аллокаций выглядит как мешанина из
unsafe.Pointer, в которой за деревьями сложно разглядеть лес.