Почему Go, не Rust
Прагматизм vs. идеализм.
#engineering
Перед стартом мы спорили: писать на Rust или Go. Решили Go. Год спустя — не пожалели.
Аргументы за Rust
- Memory safety без GC
- Performance ближе к C
- Modern type system
- Меньше runtime сюрпризов
Почему мы выбрали Go
- Команда быстрее в onboarding — Go проще для midlevel
- Cross-compilation —
GOOS=linux GOARCH=arm64 go buildработает out of the box - Стандартная библиотека богаче для серверного code
- Эcosystem TSDB/observability в основном Go (Prometheus, VictoriaMetrics, Grafana backend)
- GC pauses в практике не больно для наших workload
Где компромисс
Pure compute-heavy code (PromQL execution в VictoriaMetrics) — там Go в нюансе медленнее, но VM уже написан на Go и оптимизирован. Мы получаем плюсы.