Наши результаты и планы на 2016

• Михаил Панков • новости • поддержите на Patreon

Всем привет! В этой публикации я попробую описать состояние нашего сообщества и экосистемы, сформировавшейся вокруг него, а затем опишу области, которые, на мой взгляд, стоит развивать.

Обсудить эти планы можно в комментариях к публикации.

Но сначала я хочу сказать спасибо всем участникам нашего сообщества — за работу, за общение и за поддержку. Я рад, что не я один работаю над улучшением сообщества. У нас очень дружелюбный народ в чате. Мы выросли до 150 человек за пару месяцев. Продолжайте в том же духе — это много значит :)

Также прошу присылать Pull Request’ы с исправлениями и дополнениями этой публикации, если что-то не так.

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

Результаты

За 2015-й год мы достигли хороших результатов. С нуля переведена книга, создано сообщество, наш сайт, написано множество статей.

Вот некоторые цифры:

Объём проделанной работы огромен.

Дабы мы не забывали, зачем мы всё это делаем, я ещё раз пропишу наши цели. Мы хотим, чтобы программисты знали и использовали Rust, их начальники одобряли такой выбор, коллеги завидовали, а работодатели размещали вакансии с заветными словами «разработчик на Rust». Не много, не мало. По совместительству, мы делаем мир немножечко лучше.

Планов на будущее у нас ещё больше!

Сообщество

Общие задачи

Во всех наших проектах нужно написать руководство по внесению изменений (CONTRIBUTING.md). Как собрать проект, как проверить изменения, как сделать Pull Request, и как редактировать файлы прямо в браузере. Это необходимый минимум того, что нужно людям, которые хотят работать с нами.

Далее в процессе рецензирование изменений — а поэтому короткий документ нужен и про сервис Reviewable, который мы используем во всех проектах. Нужно описать как рецензировать, как работать с замечаниями чтобы это было быстро и удобно.

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

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

Книга

В книге 2 основных направления — полная синхронизация текущей версии с оригиналом и перевод новой книги. Помимо этого, есть инфраструктурная работа — например, переход на mdBook.

Также нужна система отслеживания изменений в оригинале, с тем чтобы было проще обновлять перевод. Эта задача — очень глобальная, и здесь нужно взаимодействовать с Rust Core Team. В этой и этой темах идёт обсуждение процесса. В них стоит вникнуть, чтобы хорошо интегрироваться с остальным сообществом.

mdBook

mdBook — новая программа вёрстки книги из Markdown-файлов. Она лучше существующего rustbook в нескольких аспектах, и на неё в какой-то момент перейдёт оригинал. Поэтому нам тоже нужно смотреть на эту часть инфраструктуры.

Здесь есть два особенно важных момента. Первый — нам нужна поддержка экспорта книги в форматах для читалок и для печати — т. е. в EPUB, MOBI, PDF. Сейчас мы используем Calibre, и с ним есть сложно решаемые проблемы (1, 2). В то же время, эта возможность довольно хорошо реализована в trpl-ebook. Ссылка ведёт на форк в нашей организации — я пробовал прогонять через trpl-ebook наш перевод и обнаружил несколько необходимых изменений. @killercup, автор trpl-ebook, справедливо отметил, что активная работа по версиям для читалок ведётся в самом mdBook, поэтому нам надо будет участвовать в этом проекте. Помимо этого, trpl-ebook не очень модульный и слабо подходит для внешнего использования — сейчас он рассчитывает, что всё наполнение книги лежит прямо в том же репозитории, а так же не полностью параметризован. Например, некоторые строки, зависящие от языка книги, зашиты прямо в код.

Второй важный момент — в mdBook планируют интегрировать переводы. Здесь тоже требуется наше участие.

Отмечу, что mdBook сам по себе — это программа на Rust. Она не запредельно сложная, но представляет из себя реальный проект — поэтому это хороший вариант для пробы своих сил в написании настоящего кода на Rust. Если вас пугает code review на английском — мы можем это решить через отправку изменений сначала в наш репозиторий. Тогда наше сообщество будет рецензировать ваш код, а дальше уже мы будем отправлять Pull Request’ы в исходный репозиторий.

К тому же есть на что ориентироваться в реализации — код trpl-ebook (это, кстати, тоже программа на Rust) весьма мал и прост. Можно брать его код, понимать что он делает, и реализовывать аналогичную функциональность в mdBook. Поэтому ещё раз подчеркну — эта область отлично подходит для практического участия в open source проекте, да ещё и на нашем любимом языке.

Другие книги

Есть несколько других книг про Rust на английском — «Rustonomicon» о небезопасном Rust, «The Little Book of Rust Macros» о макросах, и «Rust by Example» — прагматичная книга, обучающая языку на примерах. У последней, кстати, есть незаконченный перевод на русский. Эта область со временем тоже потребует нашего внимания, но сначала нам совершенно точно стоит решить инфраструктурные вопросы.

Сайт

В развитии сайта есть задачи для DevOps и фронтенд-разработчиков. Нам нужно прикрутить систему сообщения об опечатках (возможно, Orphus), типографику, категории, теги, и поиск. Сайт работает на Jekyll и Twitter Bootstrap, легко собирается локально, и разворачивается автоматически после принятия Pull Request’а. Поэтому если хотите попрактиковаться в веб-разработке — можно заняться этим. Здесь задачи более открытые и требующие большей инициативы, но мы готовы помогать желающим заняться этим.

Помимо разработки, есть задачи по наполнению сайта статьями. Нам нужны руководства по лучшим практикам ведения проекта, настройке Continuous Integration, кросс-компиляции, менеджеру проектов Cargo. Нам нужен раздел ссылок и каталог проектов — подобный тому, который можно найти в конце этой публикации.

Хочу напомнить, что у нас есть полностью функциональный форум на платформе Discourse — если вы любите асинхронное общение или у вас большой вопрос, пишите сюда. Здесь информацию легче искать и она более доступна для тех, кто сталкивается с похожими проблемами.


В заключение этой части, если вы или ваши знакомые хотят поучаствовать в активно развивающемся проекте, их есть у нас — много и на любой вкус. Мы рады принять изменения от любых разработчиков, поэтому не стесняйтесь задавать вопросы, предлагать идеи, и, конечно, присылать Pull Request’ы. Это отличный способ получить ценный опыт, заработать репутацию в open source сообществе, и повод добавить строчку в резюме.

Встреча

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

Экосистема

Также хочу рассказать об очень важной части нашего сообщества — об экосистеме. Мы не только разговариваем о Rust, мы пишем код на Rust. @listochkin развернул серверный компонент на Rust. Я экспериментально применяю Rust на своей основной работе. И, конечно, участники нашего сообщества являются авторами библиотек. Некоторые из них — де-факто стандартные; у них тысячи загрузок. Приведу неполный список (в алфавитном порядке):

По-моему, неплохо для нашего небольшого, но сплочённого сообщества — особенно учитывая, что с выпуска 1.0 не прошло и года.

Вы можете задавать авторам вопросы или поучаствовать в этих проектах — без языкового барьера. Просто приходите к нам в чат.

Хочу также выделить один крупный проект приложения на Rust, которое явно будет полезно самим разработчикам — редактор sublimate от @defuz. Проект довольно амбициозен — реализация аналога Sublime Text 3 на Rust и с полностью открытым кодом. Разработка идёт хорошими темпами, и это ещё один шанс поучаствовать в реальном проекте и получить опыт программирования на языке, востребованность которого будет экспоненциально расти в ближайшие годы.

Разнообразные материалы

Упомяну также известные мне доклады и статьи о Rust — чтобы было на что опираться, рассказывая коллегам и начальникам о нашем замечательном языке.


На этом, пожалуй, всё. Рассказывайте о нас знакомым, убеждайте коллег, что Rust стоит изучения, поведайте начальнику, что с Rust сервера не упадут в продакшене. Успехов и до новых встреч!