Я всегда восхищался высокопроизводительным кодом и тем, как заставить вещи работать очень-очень быстро, например, точно настроенный движок, так что «язык системного программирования, который работает невероятно быстро, предотвращает почти все сбои и устраняет гонки данных», безусловно, стоил изучения.

Мое путешествие началось с того, что меня вдохновил доклад на конференции о WebAssembly и о том, что сборка мусора еще не поддерживалась. Это означало, что все, что я считал само собой разумеющимся, было отнесено к гражданам второго сорта в этом развивающемся мире. После изучения нескольких блогов и статей, вплоть до активного поиска отрицательного мнения, чтобы убедиться, что я не отправляю себя в погоню за дикими гусями, я решил попробовать и выяснить это для себя.

Мое первое визуальное впечатление — логотип выглядит как что-то, что принадлежит крафтовому пиву или какой-то конвенции винтажных байкеров. Глядя на него, я чувствую запах моторного масла. Может быть, маркетологи знают свою целевую аудиторию?

Не желая судить о книге по обложке, я приступил к работе. Настроиться было очень легко. Я установил Rustup и Vscode rust extension и начал с нескольких очень простых примеров из официальной Rust book. Что касается документации, то она очень хорошо составлена. Я имею в виду действительно хорошо.

Это был первый раз, когда я пробовал что-то кроме JavaScript в vscode, и то, что intellisense внезапно снова стал полезным, вселило в меня надежду. Это было почти на одном уровне с моим опытом работы с Visual Studio и ReSharper. Мне еще предстоит попробовать TypeScript должным образом, но это было очень хорошее начало.

Я дошел до концепции заимствования и владения и того, что это компромисс Rust между сборкой мусора и отсутствием необходимости выделять память вручную. По мере того, как книга разбивала каждую концепцию на самые простые термины, я начал искать более содержательный пример и хотел увидеть что-то более существенное. Я временно отказался от книги и отправился на GitHub искать более продвинутые примеры.

После недолгих поисков я нашел Amethyst, управляемый данными игровой движок, написанный на Rust. Просматривая код, я понял, что мне предстоит крутая кривая обучения, но, тем не менее, он скомпилировался, и я мог вносить простые изменения, и жизнь была хорошей. Мне определенно нужно попытаться заставить что-то работать самостоятельно с нуля, чтобы лучше понять нюансы Rust.

Стану ли я фанатиком и попытаюсь убедить людей использовать это везде? Наверное, еще нет. Мне нужно было бы изучить сторону WebAssembly, а затем найти существенный вариант использования, в котором все другие возможные варианты использования были бы исчерпаны в первую очередь. Это также потребует значительной поддержки со стороны других. Отсутствие других на борту - это не начало. До сих пор мои ответы сводились к фразе «это язык для любителей», с чем я не могу спорить, не прозвучав фанатично.

Мое мнение до сих пор, и я могу ошибаться, состоит в том, что, хотя в сообществе есть много полезных людей, кажутся некоторые смутно культовые элементы, и хотя это разнообразие мнений не обязательно плохо, быть ослепленным фантазиями об элитарности — это плохо. не мой желаемый результат. Я не сдаюсь. Я уже чувствую себя уполномоченным, зная что-то, чего я не знал в это время на прошлой неделе.