{"id":14274,"url":"\/distributions\/14274\/click?bit=1&hash=fadd1ae2f2e07e0dfe00a9cff0f1f56eecf48fb8ab0df0b0bfa4004b70b3f9e6","title":"\u0427\u0435\u043c \u043c\u0443\u0440\u0430\u0432\u044c\u0438\u043d\u044b\u0435 \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"6fbf3884-3bcf-55d2-978b-295966d75ee2"}

Прямые авиарельсы

Создатель Ruby Юкихиро Мацумото — о том, как японский язык влияет на Ruby и почему играть с кошкой важнее работы на корпорацию.

Мы в компании Evrone уже более 10 лет проводим конференцию RubyRussia — одно из главных событий для рубистов в России и мире. В 2016 году мы решились и позвали на конференцию Юкихиро Мацумото, создателя языка Ruby. Для нас тогда казалось невероятным, что он вообще нам ответит. Представьте, что российский клуб владельцев «Теслы» вдруг зовет на конференцию Илона Маска. А он не только приезжает, но и тратит на это свой крохотный официальный отпуск. А после приезжает снова.

На конференции RubyRussia 2019 наш DevRel Григорий Петров обсудил с Мацумото ключевые вопросы языка, попросил рассказать о том, как он поживает, над чем работает. И конечно о том, почему ему нравится приезжать в Россию.

Вот главное из интервью Юкихиро:

Юкихиро Мацумото на RubyRussia 2019

Я фултайм-разработчик Ruby. Половину своего рабочего времени я работаю над дизайном следующей версии Ruby. Остальное время — тружусь над альтернативной реализацией MRuby. К счастью, все рабочее время я провожу с опенсорсом.

У меня нет давления со стороны клиентов, у меня нет боссов, я сам ставлю себе задачи. Все это позволяет мне работать без стресса.

У меня нет дедлайнов, кроме даты следующего релиза Ruby. Эта свобода позволяет мне чувствовать себя расслабленным. Также я стараюсь проводить время не за компьютером, уделять внимание своим близким, семье. Я помогаю местной церкви, гуляю с собакой и играю со своей кошкой.

Меня очень часто спрашивают: «Я использую язык X. Почему бы вам не добавить функцию из языка X в Ruby?». В большинстве случаев я отвечаю, что это невозможно. У нас разный языковой дизайн и разная языковая политика. Мы не можем просто взять некоторые функции из языка X и добавить в Ruby. Но иногда мы все же заимствуем хорошие идеи из других языков, таких как Python, JS или Elixir.

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

Я бы назвал Ruby продуктивным языком программирования. Продуктивность — одна из главных целей, основных задач Ruby. Он разрабатывался для людей, а не машин.

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

Если бы меня попросили назвать свой самый большой вклад в разработку языка, я бы сказал, что это блоки. Блоки в Ruby уникальны, это полезная абстракция функции высшего порядка. Они намного проще, чем в других языках. Это дает как ограничения, так и удобства использования. В то же время, есть и ошибки. Начнем с глобальных переменных. Они были полезны для скриптового языка, но теперь выглядят, как рудимент. Я также сожалею, что добавил потоки в явном виде — нам нужна более удобная абстракция для concurrency. Еще одна моя ошибка в дизайне — отсутствие иммутабельности у некоторых объектов. Например, сейчас можно поменять time zone для объекта времени. Вместо того, чтобы просто создать новый иммутабельный объект. Это то, о чем я сожалею.

Многим кажется, что «японскость» создателя языка влияет на Ruby. Например, в японском языке предложения склеиваются друг с другом. Точно так же, как работает method chaining в Ruby. Может быть, это и есть влияние японского языка.

Япония — богатая страна и у нас нет необходимости в постоянной тяжелой работе. Это тоже влияние Японии и возможностей, которые она дает.

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

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

Языки программирования, такие как Ruby, Python или JavaScript — они помогают нашему разуму формулировать мысли. Это главная задача языков программирования.

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

Ну а вообще, удивительно видеть, как разработчиков все чаще представляют настоящими рок-звездами. В России это особенно заметно. Я много путешествую и выступаю по миру, но только в России меня так часто фотографировали и так часто брали у меня автограф.

Читайте также полное интервью с Юкихиро Мацумото на английском, с ответами на технические вопросы (или смотрите видео-версию интервью).

0
6 комментариев
Написать комментарий...
Yury Gurzhiy

А вообще интересно с кем бы вы хотели почитать интервью? Есть доступ к телу практически всех кто является первоисточником! На какие вопросы бы хотелось получить ответы :)

Ответить
Развернуть ветку
Bulat Ziganshin

анатолий орлов - опыт использования Go: есть ли жизнь без шаблонов и исключений?

Ответить
Развернуть ветку
Sergey Korol

Дэн Абрамов.

Ответить
Развернуть ветку
pit chernoff

илон муск

Ответить
Развернуть ветку
Maria Deltsova

Cейчас, только Теслу из сервиса свою пригоню)))

Ответить
Развернуть ветку
Ware Wow

у Суркова например

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда