«Проект Rust хорош настолько, насколько это возможно, а его сообщество ещё лучше», — пишет о мультипарадигмальном компилируемом языке программирования, разработанном компанией Mozilla, вице-президент мобильного подразделения Adobe Мэт Эсэй (Matt Asay).
Некоторые open source-сообщества, кажется, вдохновляются цитатой из «Ада» Данте: «Оставь надежду, всяк сюда входящий».
Несмотря на то, что использовать и привносить свой вклад в открытый исходный код критически важно, довольно трудно с воодушевлением присоединиться к «сообществу», в котором каждый тянет одеяло на себя. Тем не менее, именно так многие open source-проекты и работают.
Но это не касается сообщества Rust. Начавшийся как амбициозный побочный проект сотрудника компании Mozilla, язык программирования Rust обещает совместить возможности контроля низкоуровневых языков с гибкостью высокоуровневых языков. Или, как пишет Сердар Егулалп (Serdar Yegulalp), «наибольшие планы Mozilla в отношении Rust, исходя из рекламы этого языка как средства достижения скорости без ущерба для безопасности, по-видимому, включают не только нативные приложения вроде веб-браузера, но также и целые операционные системы».
Это, конечно, очень здорово, но также требует от разработчиков и огромных усилий при обучении. И во многих open source-проектах это способ супергиков издеваться над более слабыми программистами, заинтересованными в участии.
К счастью, возможно, самым впечатляющим аспектом Rust является приветливость сообщества, которое вполне может стать «не таким уж секретным оружием» этого языка.
Будущее строится на Rust
Новые приложения всё чаще требуют новых подходов к разработке. Это одна из причин, по которым язык программирования Go от Google оказался весьма успешным. Это же может стать причиной и радужного будущего для Rust. Аналитик RedMonk Стивен О’Грейди (Stephen O’Grady) обращает внимание: «Случайные наблюдения, которые я производил некоторое время, говорят о пробуждении интереса разработчиков из разных областей».
Отчасти это из-за безопасности. Как полагает Дэвид Херман (David Herman), ведущий разработчик Mozilla, «Rust может предложить нечто уникальное, чего не предлагал ни один язык раньше: это та степень безопасности, которую языки типа С и С++ никогда не имели... В них есть вещи, которые делают системное программирование пугающим и которых нет в Rust».
Само по себе это не было бы столь захватывающим, несмотря даже на важную роль безопасности. Но потенциально наибольшее преимущество Rust вытекает из его способности предоставить такой же контроль, как у системного языка, и, кроме того, лёгкость и непринуждённость языка высокого уровня.
Как объясняет Херман, «Rust имеет много функций и удобств, которые делают его практически высокоуровневым языком, несмотря даже на то, что вы делаете такие вещи, как, например, ручное управление памятью, которое можно сделать на С++. Но Rust имеет и множество абстракций, которые не дадут застрять лишь на управлении памятью».
Словом, «низкоуровневый контроль и высокоуровневая безопасность». Это мощное сочетание, которое обещает дать разработчикам гораздо больше контроля над производительностью без бремени обучения С/С++ и без риска ошибок.
Уютное сообщество
Хотя подзаголовок звучит просто, процесс обучения и приобретения опыта в Rust таковым не является.
На Reddit есть отличный комментарий, в котором на вопрос «Rust слишком сложен?» дается ответ: да, довольно сложен. Но одним из факторов, смягчающих сложность, которая присуща изучению любого нового языка, особенно Rust, является сообщество, призванное помогать новобранцам.
Один из комментаторов (JArcane) делится подробностями:
«Программируя на Rust, я все ещё чувствуют себя глупым. Я все еще думаю «Ой, дурак, ты же должен это знать». Я еще стесняюсь того, что не знаю чего-то или не могу додуматься до этого сам. Когда я читаю книги, общий их тон звучит так: «Да, это сложновато, но не волнуйтесь, если у вас не вышло с первого раза. Со временем у вас получится». Когда я спрашиваю о чём-то на канале, я получаю быстрые и полезные ответы, причём зачастую более широкие, чем были сами вопросы: что, как и почему. И это словно подтверждение тому, что каждый такой вопрос –– это возможность научить, ожидаемый случай, а вовсе не повод для перепалки в надежде, что позже поможет кто-то другой».
Как говорят, «основной посыл в литературе, сообщениях компилятора, на канале IRC звучит так: «Мы понимаем».
Вот это да.
Это очень существенно отличается от сообщества Linux, где, например, Линус Торвальдс может поприветствовать участника словами «Ты несёшь полную чушь».
Или от писем Говарда Чу, ведущего архитектора OpenLDAP: «Если вы напишете в этой рассылке и ваше сообщение будет сочтено офтопиком или окажется недостаточно исследованным, то вы будете выруганы, осмеяны и унижены. Это касается и глупых вопросов».
Может быть, это и адекватная реакция, позволяющая потенциальным участникам обсуждения нарастить более толстую кожу. Но разве ей так уж нужно быть пуленепробиваемой?
В случае с Rust вам не придётся выбирать между изучением нового захватывающего проекта и собственным достоинством. Я говорил с несколькими членами сообщества Rust, а также с некоторыми сторонними наблюдателями, и каждый из них подтвердил существенный момент: сообщество Rust старается изо всех сил, чтобы помочь другим добиться успеха.
Именно поэтому в число причин светлого будущего Rust, помимо всех технических достоинств, амбициозных обещаний и возможных перспектив, входит и его сообщество, которое приветливо относится к новичкам и помогает им. Чтобы они остались, конечно, но также и чтобы вносили свой вклад. Это тот проект, за которым стоит следить, и то сообщество, которому стоит подражать.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.