Эксперименты с Rust

В кои-то веки у меня появилось время для свободного поиска и три недели я с наслаждением занимаюсь изучением самых интересных для себя тем: blockchain/crypto, Go, Rust.

Дней 10 у меня ушло на блокчейн и криптовалюты. Знакомые попросили сделать ревью кода клиента одной из криптовалют. Получил огромное эстетическое наслаждение – не от кода (код слабенький), а от набора вложенных идей и алгоритмов, таких как фильтр Блума, например.

Могу теперь сказать, что хорошее понимание о блокчейне – это must-have для архитектора/технологического гуру, независимо от области специализации. Не важно, что там с бизнес стороны, а технологически – это красиво.

Потом несколько дней посвятил углублению понимания Go. В целом понимал и раньше, тем более что это OOP язык, но не CLOP (CLass Oriented Programming). Беда с КЛОПовыми языками (типа C++/Java) в том, что чем больше в лес, тем больше завал (дровишки все дороже). Go предлагает вполне рабочую концепцию, и вообще язык изящен. Странно, что изящный язык вышел из Гугла, может, они там не совсем пропащие. Кстати, есть bitcoin клиент, написанный на Go. Думаю, что это гораздо лучшая основа для экспериментов с криптой, чем исходный С++ код.

Вообще Go напоминает изящную девочку, но увы, неизвестно в кого она вырастет :)

Все же последнее время экспериментирую с Rust. Rust – это серьезно, это действительно прорыв:
• Memory safe без сборки мусора, основанный на понятиях владения/заимствования
• Тоже не CLOP, и интересное OOP решение, тесно связанное с generic. С++ templates вызывают у меня устойчивый рвотный рефлекс, а вот в Rust сделано неплохо
• Ну и LLVM, что уже становится стандартом де-факто

Если сравнить с Go, то Rust грубо вырублен топором (однако мужик). Мое ощущение, что вырублено все правильно, но пока грубовато.

Впрочем, в том, что на мой взгляд является главным: в разработке компонент и сборочном программировании что в Go, что в Rust принципиального продвижения нет, хотя Rust уже гораздо лучше для этого, чем остальные.

Экспериментирую с тем, как делать компоненты и собирать программы из компонент, запрограммированных на Rust. Возможно придется немного модифицировать компилятор и/или язык.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *