Юкихиро мацумото: Интервью Yukihiro Matsumoto для Evrone

Содержание

Интервью Yukihiro Matsumoto для Evrone

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

На RubyRussia 2019, DevRel Evrone Григорий Петров взял интервью у Юкихиро. Говорили и о Ruby — основополагающих моментах языка, и о том, каково это — разрабатывать языки. Мацумото поделился, как и над чем он работает и почему ему приятно бывать в России.

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

Работа над Ruby занимает все мое время. 50% я отдаю проектированию новой версии языка, оставшуюся половину работаю над развитием MRuby, легковесной версии интерпретатора. И я рад, что все 100% времени я имею дело с open-source.

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

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

Один из самых частых вопросов, которые я слышу, — про новый функционал. «Я пишу на языке X. Мацумото, внедрите, пожалуйста, вот эту фичу из моего языка X». В 99% случаях я отказываю. Это невыполнимо. У Ruby совсем другой дизайн и языковая политика. Так не работает, нельзя просто скопировать что-то из другого языка. Но, если говорить не о фичах, то время от времени мы подсматриваем достойные идеи в других языках программирования. В JavaScript, к примеру.

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

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

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

Блоки — мое наибольшее достижение при создании Ruby. Они не имеют аналогов. Блоки — это абстракция функций высшего порядка. Гораздо понятней, чем в любом другом языке. Такая простота имеет и положительные моменты, и некоторые ограничения.

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

Не знаю, влияет ли на структуру Ruby то, что я родился в Японии. Вероятно. В Ruby есть method chaining, он похож на то, как в японском соединяются предложения. Еще Япония — страна 1-го мира, где жителям не приходится тяжело трудиться сутками напролет. Это тоже часть нашей культуры, те возможности, которые страна открывает нам.

Open-source не продается и не приносит прибыли. Чтобы работать над Ruby, авторы языка либо ходят на «дневную» работу, либо рассчитывают на спонсорскую поддержку.

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

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

Как понять, что язык хороший? У него должен быть свой подход к формулированию мыслей. У Ruby — это высокая продуктивность и удовольствие при разработке. У другого языка подходом может стать эффективность. Или простота. Важно другое: если вы получаете удовольствие, формулируя мысли на Ryby, значит, это ваш язык.

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

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

 

Интервью Evrone с Юкихиро Мацумото, создателем Ruby

Вступление

Наш друг Юкихиро Мацумото, создатель языка программирования Ruby, смог присоединиться к нам для участия в интервью. Григорий Петров, DevRel компании Evrone, побеседовал с Юкихиро, чтобы получить из первых рук информацию о новых возможностях последнего крупного релиза Ruby. Юкихиро также поделился подробностями своего подхода к улучшению Ruby и дал нам представление о будущем языка.

Интервью

Григорий: Меня зовут Григорий Петров. Я нахожусь в офисе Evrone, чтобы взять интервью у Юкихиро Мацумото, автора языка программирования Ruby. Прошло всего несколько месяцев после выхода релиза Ruby 3.0 с его новыми крутыми возможностями.

Спасибо, что присоединился к нам и что выпустил Ruby 3.0. Это огромный релиз со множеством экспериментов, сложностей и новых возможностей, с обратной связью. Какое нововведение в Ruby 3.0 тебе больше всего нравится?

Юкихиро: Мне нравится сопоставление с образцом, включая правостороннее присваивание. В то же время я в восторге от Ruby-акторов (ractors) и статической типизации — думаю, что это изменит культуру программирования на Ruby к лучшему.

 

Григорий: Да, статическая типизация — это замечательно. Мне не терпится увидеть, как сработает идея добавления типов в стандартную библиотеку и фреймворки. Сопоставление с образцом — тоже здорово! Мне его не хватает в Python, и хорошо, что можно использовать это в Ruby.

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

Юкихиро: Да. Когда я начинал создавать Ruby, сообщество языка было небольшим. Так что в то время можно было отказаться от старой версии и сломать синтаксис языка. Но сообщество Ruby выросло, оно насчитывает миллионы программистов по всему миру, и даже малейшее изменение может что-то испортить.

В прошлый раз, когда мы сломали совместимость в Ruby 1.9, мы поняли, что это может надолго расколоть сообщество. После Ruby 1.9 я принял решение, что мы будем стараться ничего не ломать даже при выпуске мажорных версий. У других языков, таких как Python 3 или PHP 6, была аналогичная проблема, которая показала важность обратной совместимости.

Создатели языков хотят их развивать и улучшать, вносить в них изменения. Но плохо, если это делается в ущерб совместимости. Мы стараемся максимально её поддерживать.

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

 

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

Я помню, какие трагедии разыгрывались 10 или 15 лет назад при переходе Python с версии 2 на 3. Это длилось несколько лет, и основные разработчики даже не были уверены, следует ли им продолжать разработку Python 3 или просто вернуться к версии 2 и успокоиться. Что-то подобное происходило и с PHP. Я рад, что сейчас мы находимся на такой стадии разработки, когда можно предложить потрясающие фичи, не огорчая миллионы разработчиков.

Давай поговорим об фичах. Языки программирования заимствуют удачные решения друг у друга. В Ruby теперь есть сопоставление с образцом; деструктуризация хэшей уже была в Python и JavaScript, а теперь появилась и в Ruby. Возможно, в будущем Python или JavaScript позаимствуют у Ruby правостороннее присваивание. Какие у тебя планы на следующие версии? У тебя уже есть смелые идеи, что-то хочешь позаимствовать или обкатать?

Юкихиро: Хороший вопрос! Но мы долго были сосредоточены на Ruby 3, а с момента релиза прошел всего месяц, так что у меня пока не сформировались безумные идеи на будущее. Это могло бы быть улучшение ractor’ов и системы модулей для Ruby. Java и Python имеют модульную систему. Кроме того, может было бы полезно предоставить структурированную систему пакетов. У меня возникают некоторые мысли, но пока недостаточно конкретные, чтобы их обсуждать. Может, тебе придется подождать год или около того.

 

Григорий: Не проблема. Я пишу код 20 лет и с удовольствием буду писать еще лет 20.

Кстати, система управления пакетами Ruby может быть не такая полнофункциональная, как, например, в Java, но Ruby позволяет пользователям устанавливать и использовать несколько версий одной и той же зависимости. И это действительно здорово, потому что в Python, например, придётся довольствоваться только одной версией зависимости, что создает множество проблем. А Javascript, Node.js просто помещают версии в определенный каталог. Итак, Ruby отлично себя чувствует с текущей системой, но мы всегда будем ждать новых улучшений.

Юкихиро: Да, мы могли бы подготовить какие-то контейнеры, чтобы разные версии gem’ов могли находиться в разных контейнерах, или что-то в этом роде.

 

Григорий: У вас еще много времени, чтобы это протестировать. Появляется очень много новых языков программирования. Как ты это отслеживаешь? У тебя есть подписки на RSS или разработчики приходят и рассказывают о новых фичах?

Юкихиро: Больше всего на меня влияет Ruby Redmine. От сообщества поступает масса предложений, и они вдохновляют меня на разработку новых функций. Большинство предложений приходится отклонять, но эти мысли насчет улучшения языка подталкивают меня к новым идеям.

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

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

 

Григорий: Итак, если кто-то из наших читателей хочет предложить Юкихиро интересные идеи, он может сделать это с помощью Ruby Redmine. Что касается проблемы пандемии… как с твоей точки зрения повлиял на разработку и внедрение Ruby, а также на сообщество тот факт, что всё делается из дому, и все конференции проходят в онлайн?

Юкихиро: Повседневная разработка не очень изменилась. Я ведь живу далеко от Токио, встречи и общение наших разработчиков в основном проводились через интернет и до пандемии. Но то, что сейчас нет «настоящих» конференций — это плохо.

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

 

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

Юкихиро: Онлайн-конференции в форме презентаций по-прежнему полезны. Но в то же время на онлайн-конференции невозможно пообщаться с глазу на глаз, вместе поужинать и просто поболтать, и я очень скучаю по таким вещам. Ценность конференции в неформальном общении.

 

Григорий: Кстати, хочешь присоединиться к нашей онлайн-конференции RubyRussia, не выходя из дома?

Юкихиро: Конечно!

 

Григорий: Отлично, через несколько месяцев пришлю тебе приглашение.

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

И каковы плюсы и минусы такого подхода, когда вы даете сотням тысяч разработчиков что-то попробовать, а если не получается, забираете обратно?

Юкихиро: Когда сообщество Ruby было маленьким, и его не волновали изменения, был широкий простор для экспериментов. Если что-то не срабатывало, то это «что-то» просто удаляли, совместимость никого не волновала. Но те старые добрые времена миновали, теперь у нас огромное сообщество.

Цена изменений с каждым годом становится все выше и выше поэтому решения по изменению в дизайне Ruby нельзя отменять. Получается, проектировщикам нельзя ошибаться. Но я всего лишь человек и признаю, что делаю много ошибок.

К тому же, хотя сообщество Ruby велико, наша команда разработчиков Ruby недостаточно большая, чтобы предсказывать будущее.

Если бы в рамках сообщества разработчиков языка мы могли экспериментировать с идеями, которые я предлагаю, было бы хорошо. Но сообщество разработчиков языка недостаточно велико, чтобы опробовать все интересное перед релизом.

Поэтому при проведении экспериментов с фичами Ruby приходится идти на компромисс, учитывая текущий размер сообщества разработчиков Ruby. Большое сообщество рубистов не простит сделанных ошибок, но размер сообщества разработчиков языка не даёт нам провести все эксперименты внутри. Нам приходится просить всё сообщество опробовать новые изменения.

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

Так бывает с другими языками. В отличие от Ruby, сообщества Python и PHP достаточно велики, чтобы экспериментировать в среде разработчиков языков.

 

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

Юкихиро: Проектирование языка — это увлекательно. Одно очень большое преимущество языкового эксперимента — возможность пригласить сообщество пользователей помочь в разработке. Даже когда разработчиков самого языка станет достаточно много, мы сможем приглашать широкое сообщество Ruby для участия в некоторых языковых экспериментах.

 

Григорий: Точно, или пользователей, которые хотят заниматься разработкой самого Ruby. Они смогут присоединиться к разработчиками языка и доказать, что готовы участвовать в экспериментах.

Юкихиро: Большинство пользователей Ruby даже не рассматривают возможность присоединиться к процессу проектирования, хотя это было бы полезно.

 

Григорий: У меня каверзный вопрос по поводу все ractor’ов и асинхронных fibers. Мне нравится асинхронность: как параллелизм, так и многозадачность. И сейчас в Ruby 3 у разработчиков есть широкий выбор. Для параллелизма можно использовать процессы или ractor’ы, а для многозадачности — потоки или асинхронные fiber’ы. Как обычному Ruby-разработчику правильно сделать выбор?

Юкихиро: Разработчикам веб-приложений не нужно заботиться об асинхронности, потому что серверы приложений, такие как Unicorn, Puma и Falcon, сами о ней позаботятся. Unicorn использует процессы, Puma — потоки, а Falcon — fiber’ы. Выбор сервера приложений напрямую влияет на выбор модели асинхронности. Может быть, в будущем у нас появится сервер приложений на основе ractor’ов.

Обычный разработчик экспериментирует с асинхронностью, исследуя узкие места производительности приложения. Если узким местом является ввод/вывод, разумно выбрать асинхронные fiber’ы. Они оптимизированы для мультиплексирования ввода-вывода. Так что выбирайте их, если ваша программа использует много операций ввода-вывода. А если вы хотите поэкспериментировать с многоядерностью и задачами с высокой нагрузкой на процессор, то лучше подойдут ractor’ы.

Это базовый выбор, потому что текущая реализация ractor’ов сопоставляет один ractor с одним потоком операционной системы. Вы пока что не сможете создать миллионы ractor’ов, потому что каждый из них потребляет несколько мегабайт памяти стека. Это очень много. А fiber’ы потребляют всего несколько килобайт памяти или даже меньше. Таким образом, с fiber’ами вам не нужно беспокоиться о расходе памяти, вы можете создать столько fiber’ов, сколько захотите. Это второй критерий выбора. Коичи Сасада (Sasada Koichi), который отвечает за ractor’ы, работает над их улучшением. Вероятно, в будущем ractor’ы не будут потреблять столько памяти.

Возможно, позже мы сможем использовать их так же, как горутины в Go. Но это дело будущего.

 

Григорий: Да, и это, похоже, светлое будущее.

Мне нравится, что авторы фреймворков придерживаются известной концепции «convention over configuration» и разработчики могут использовать модель асинхронности, уже выбранную и правильно организованную автором фреймворка. А после этого, если что-то работает медленно, разработчики могут копнуть глубже и переключиться на другую модель работы с асинхронностью. Хорошо, когда есть выбор.

Еще один вопрос по скорости.

Недавно я наткнулся на короткую статью Давида Хайнемейера Хансона (David Heinemeier Hansson), где встретилось интересное наблюдение: для всего парка его серверов, обеспечивающих работу Basecamp и почтового сервиса Hey.com, только 15% бюджета тратится на выполнение кода Ruby. Если даже ускорить Ruby в 10 раз, это ничего существенно не поменяет. Насколько важна чистая скорость для Ruby?

Юкихиро: Непростой вопрос. Для большинства веб-приложений Ruby и бизнес-логика не являются узким местом. Львиная доля времени приходится на работу с базами данных, сетевыми соединениями и работой с операционными системами. Shopify и GitHub используют Ruby, видимо, скорость не имеет большого значения. Количество их пользователей очень велико, а они работают без проблем. Если речь идёт о производительности труда программиста, то производительность языка — не самая большая проблема.

Я долго так считал, пока несколько лет назад не понял, что многие судят по микро-бенчмаркам.

Все эти числа Фибоначчи и микро-бенчмарки решения задачи N тел бесполезны, но являются чем-то вроде инстинкта программиста. Пару лет назад я просто перестал убеждать разработчиков действовать вопреки инстинктам и начал работать над улучшением быстродействия Ruby даже в области бенчей.

Компилятор JIT — одно из таких улучшений. Он пока что не повышает производительность приложений, использующих Rails, поскольку те тратят время на доступ к базе данных и к сети. Но JIT-компилятор повышает производительность микро-бенчмарков.

Мы улучшаем производительность Ruby во всех аспектах.

Несколько лет назад я сосредоточился на производительности микро-бенчмарков. Это немного глупо, но это связано с инстинктами веб-разработчиков.

 

Григорий: Точно, JIT помогает. В прошлый раз, когда я проверял искусственный микро-бенчмарк, простое включение JIT для Ruby ускорило его в десять раз. Это действительно работает.

Юкихиро: Да, мы не боремся с инстинктами.

 

Григорий: Последний технический вопрос касается функций, включенных в стандартную библиотеку. Есть два подхода. Первый — это то, чем знаменит Python. Огромная стандартная библиотека, включающая всё, например FTP-клиент, почтовый клиент и zip-архиватор. Начинающим разработчикам это нравится, потому что они могут посмотреть в руководства и получить всё без установки зависимостей. И это «всё» работает «из коробки».

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

Другой подход — базовая низкоуровневая стандартная библиотека и экосистема сторонних библиотек, которая процветает и предлагает конкурентоспособные решения для всего. Это прекрасно для конкуренции авторов и стимулирует инновации. Но новые разработчики не знают, что использовать. Так что тут своего рода противоречие. Что ты об этом думаешь?

Юкихиро: Для Ruby 1.8 использовался подход «толстой» стандартной библиотеки, но со временем некоторые библиотеки остались без поддержки. Мы изменили подход, разделив библиотеку на gem’ы.

Очень немногие использовали RubyGems с Ruby 1.9, но во времена Ruby 2.0 RubyGems был настроен для общего доступа. С появлением Ruby 2.0 сообщество RubyGems становилось все больше и больше, каждый использовал RubyGems. Если все используют gem’ы, нам не нужно добавлять все в поставку языка программирования. Так что мы постепенно разделили стандартную библиотеку на gem’ы, сделав дистрибутив легким и удобным для поддержки.

Ты помнишь, что наше сообщество разработчиков языка недостаточно велико, чтобы в нём были эксперты по всем вопросам. В основном, наши разработчики Ruby не являются веб-разработчиками. Мы не очень умеем поддерживать такие веб-технологии, как webrick, http-клиенты или даже обработку xml.

Было удачной идеей убрать эти неподдерживаемые части из стандартных дистрибутивов языка в gem’ы. Теперь другие разработчики могут создавать конкурентоспособные, лучше поддерживаемые gems. Естественная конкуренция — хорошая штука!

 

Григорий: Понятно. Из-за пандемии обучение и образование также были переведены в онлайн. За последние два года я просмотрел множество курсов, блогов и мест, где разработчики могут изучать Ruby. Появились новые сервисы, и мне особенно нравится Real Python для языка Python, и я надеюсь, что для Ruby будет создано что-то столь же крутое.

Что ты порекомендуешь начинающим разработчикам, изучающим Ruby, или опытным разработчикам, которые хотят освежить свои знания для Ruby 3? Какие книги, блоги или учебные платформы ты порекомендовал бы в 2021 году?

Юкихиро: Лучшие учебные материалы 2021 г. для начинающих программистов находятся на railstutorial.org и guides.rubyonrails.org. Создание веб-приложения — хороший урок программирования, это близко к реальному продукту. В наше время достаточно запустить Scaffolding и написать несколько строк кода на Ruby, чтобы получить простое веб-приложение. За считанные секунды вы можете это веб-приложение обновить и улучшить.

Короткий цикл разработки побуждает разработчиков узнавать больше. После того, как разработчик разберется в Rails и Ruby, он может изучать всё, что захочет: машинное обучение, встроенные системы. Для новичков веб-приложение является хорошей отправной точкой.

 

Григорий: Да, мы тоже пытаемся обучать веб-разработке, потому что её результатами люди пользуются каждый день. Так что они создают хорошо знакомые вещи. И мой последний вопрос. Недавно я видел, что Ruby получил в Японии множество наград, правительственные чиновники благодарили разработчиков и тому подобное. О таком отношении к другим языкам в других странах я не знаю.

Является ли эта признательность правительства и все мероприятия, проводимые правительством для Ruby, чем-то специфическим для Японии и японской культуры? Или в Ruby есть что-то особенное, или причина и в том и в другом?

Юкихиро: Сообщества разработчиков очень похожи как в Японии, так и за ее пределами, например, в России, США и Европе. Но считается, что Ruby родился в Японии, и некоторым людям в Японии, особенно в секторах местного самоуправления, хочется поощрить его.

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

 

Григорий: Потрясающе. Я надеюсь когда-нибудь побывать в Японии! Увидимся осенью 2021 года на Ruby Russia. Большое тебе спасибо. Я надеюсь, что наши вопросы и твои ответы помогут разработчикам стать лучше, писать хороший код и получать от этого удовольствие. Аригато.

Заключение

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

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

Биография Мацумото Юкихиро — Известные информатики

Человек создан для творчества, и я
всегда знал, что люблю создавать вещи. Увы, я обделен талантом художника или
музыканта. Но я могу писать программы.

©Мацумото Юкихиро

Юкихиро Мацумото (родился 14 апреля 1965) —японский разработчик свободного ПО, создатель языка программирования Ruby


Биография

В интервью «Japan Inc.» он говорил, что сам учился программировать ещё до окончания школы. Он закончил университет города Цукуба, где он занимался исследованиями языков программирования и компиляторов. С 2006 года возглавляет отдел исследований и разработок Network Applied Communication Laboratory, японский системный интегратор свободного ПО.

Родился в 1965 в префектуре Осака, но в возрасте четырёх лет переехал в город Ёнаго префектуры Тоттори, поэтому часто представляется как уроженец Ёнаго. В настоящее время проживает в городе Мацуэ префектуры Симанэ. Юкихиро является членом Церкви Иисуса Христа Святых последних дней и занимается миссионерской деятельностью. Он женат и имеет четырёх детей.


 Ruby

 Юкихиро Мацумото  интересовался языками программирования, ещё будучи студентом, но идея о разработке нового языка появилась позже. Ruby начал разрабатываться 23 февраля 1993 года и вышел в свет в 1995 году.

Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствованы в Ruby: англ. pearl — «жемчужина», ruby — «рубин».

Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования. Из письма автора:

«Ruby родился 23 февраля 1993 года. В тот день я беседовал со своим коллегой о возможности существования объектно-ориентированногосценарного языка. Я знал Perl (Perl4, а не Perl5), но он мне не нравился — был в нём некий привкус игрушечного языка (да и поныне есть). А объектно-ориентированный интерпретируемый язык казался многообещающим. В то время я знал Python. Но он мне не нравился потому, что я не считал его настоящим объектно-ориентированным языком. Его OO свойства казались надстройкой над языком. Мне, как языковому маньяку и фанату объектно-ориентированного программирования с пятнадцатилетним стажем, очень, очень хотелось, чтобы был истинно объектно-ориентированный, простой в использовании язык. Я пытался найти такой язык, но его не было.

Тогда я решил его создать. Прошло несколько месяцев, прежде чем интерпретатор заработал. Я добавил в мой язык то, что мне хотелось —итераторы, обработку исключений, автоматическую сборку мусора. Затем я переорганизовал свойства Perl и реализовал их как библиотеку классов. В декабре 1995 года я опубликовал Ruby 0.95 в японских новостных группах. С тех пор появились сайты, списки рассылок. В списках рассылок идут жаркие обсуждения. Самый старый список сейчас содержит 14 789 писем.»

В Японии Ruby стал популярным с момента появления первой общедоступной версии в 1995 году, однако наличие документации только на японском языке сдерживало его дальнейшее распространение. Лишь в 1997 году появилось описание Ruby на английском языке, а в 1998 году открылся форум «ruby-talk». Это положило начало росту известности языка в остальном мире. Издано несколько книг на различных языках, в том числе на русском. Сейчас Ruby входит в большинство дистрибутивов ОС Linux, доступен пользователям других операционных систем.


13 июля 2011г, разработчик языка Ruby  Yukihiro Matsumoto, присоединился к облачному стартапу Heroku (подразделению Salesforce). «Я готовлюсь к ускорению разработки Ruby» — интервью о его присоединении к Heroku как главного архитектора.

Автор: Мацумото Юкихиро (Matz) — 1 книг.Главная страница.

КОММЕНТАРИИ 1196

Дедушки с гитарой
Владимир Васильевич Перемолотов

Начал читать книгу, так как тема близка(с детства увлекаюсь музыкой и играл в различных сам группах)… НО…Уважаемый автор, если вы привязываетесь к определенному году действия,то практически сразу приходит разочарование,что автор не совсем в теме. Гитар «Уралов» сдутых с японской ямахи не было в 72-м году,они появились на пару-тройку лет позже, впрочем как и педаль»Эффект-3″, которые вообще начали выпускаться на рубеже 80-х. Порадовало, что в пионерлагере в 72-м звучали известные хиты группы «ВОСКРЕСЕНЬЕ», которая вообще в 79-м была создана.ДАЛЬШЕ ЧИТАТЬ НЕ СТАЛ!

Сергей Пономарев   28-09-2021 в 20:04   #190071 Добрая сказка про футбол 1
Пантелей

Автор сей аннотации,ты,перхоть,которую звать никак,хотя бы год,в сознательном возрасте прожил в СССР,что бы писать про «совкодрочерство»? Ты хотя бы один раз,проснулся с утра,с осознанием в уверенности в сегодняшнем дне? Развал СССР,это трагедия. И не тебе судить.

Евгений   28-09-2021 в 16:57   #190070 All you need is love…
Кира Алиевна Измайлова

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

Но самое главное, не было войны, психоза, и маги стали более счастливыми. А ведь только одно действие от девочки, и все — мир перевернулся

Ольга   27-09-2021 в 14:33   #190069 Стакан воды
Морис Романович Слободской

Книга замечательная! Как прочтешь первые строки, сразу же попадаешь в мир Ильфа и Петрова. Хочется даже заглянуть на обложку: может всё-таки они написали?

Вячеслав   27-09-2021 в 02:56   #190067 Децема 2
Явь Мари

Эта история задевает внутри что-то то тонкое , не дает спать и заниматься делами. Просто отключает от жизни. Благодарю. Хочется узнать продолжение.

Анна.   22-09-2021 в 10:02   #190062 Искусство войны
Ирина Оловянная

Интересная фантастика с элементами фентези. Советую прочитать, очень интересно. Мне лично понравилось. Единственный минус — есть ошибки конкретно в этой версии на литмир, но это можно пережить.

Сэй   22-09-2021 в 01:57   #190059

ВСЕ КОММЕНТАРИИ

Создатель языка программирования Ruby — японский разработчик Юкихиро Мацумото рассказал в Twitter о своей любви к майонезу «Слобода», выпускаемому Группой Компаний «ЭФКО»

Известный японский разработчик свободного программного обеспечения и создатель языка программирования Ruby — Юкихиро Мацумото (также известный как Matz) опубликовал на свой страничке в Twitter фотографию майонеза «Слобода» Провансаль с жирностью 67 процентов.

В посте Мацумото поинтересовался загадочными цифрами 67% на упаковке. Следует отметить, что традиционный российский майонез Провансаль имеет жирность 67%, в то время как традиционные японские майонезы (соусы тамаго-но-моно) отличаются меньшей жирностью и калорийностью. В Японии их используют для заправки салатов и как ингредиент суши, сашими и роллов. Состав классического японского майонеза: яичные желтки, рисовый уксус, соевое масло, белая паста мисо, молотая кожура юзу, белый перец и соль.

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

В переписке с фолловерами Мацумото отметил, что соус ему очень понравился.

Это неудивительно, ведь продукция ТМ «Слобода» отличается исключительной натуральностью, не содержит консервантов, искусственных красителей, ароматизаторов, крахмала, ГМО. На сегодняшний день бренд «Слобода» является абсолютным рекордсменом по количеству наград Государственного Знака Качества, возглавляет рейтинг «Любимые бренды россиян» в категории «Майонез» и неоднократно становился победителем независимых российских и международных конкурсов.

Группа Компаний «ЭФКО», которая, помимо майонеза, выпускает под торговой маркой «Слобода» бутилированное растительное масло, кетчуп, соусы, молочные и кисломолочные продукты, экспортирует продукцию в более 20 стран мира. В том числе в Германию, Литву, США, Вьетнам и Китай. В планах компании – активное расширение географии продаж и выход на рынок Юго-Восточной Азии. Правда, пока продукция торговой марки «Слобода» не экспортируется в Страну восходящего солнца. Мацумото пояснил фолловерам, что купил майонез «Слобода» по время поездки в Россию.

Ruby — динамический язык программирования с открытым исходным кодом, созданный Юкихиро Мацумото в 1995 году. В 1997 году его описание перевели на английский язык, и на сегодняшний день, по данным индекса TIOBE, который измеряет рост популярности языков программирования, Ruby занимает 9 место по популярности среди общепризнанных языков программирования в мире.

 

Справка:

Группа Компаний «ЭФКО» — крупнейший вертикально-интегрированный холдинг на рынке масложировой продукции, входит в тройку крупнейших компаний агропромышленного комплекса страны и список 100 крупнейших частных компаний России по версии Forbes.

Компания также входит в число системообразующих предприятий пищевой промышленности и производителей продукции, влияющей на продовольственную безопасность РФ. «ЭФКО» лидирует на рынке пищевых ингредиентов, используемых в кондитерской, хлебопекарной и других отраслях пищевой промышленности, является одним из ведущих производителей майонеза, растительного масла, кетчупа, молочной и кисломолочной продукции, включая продукцию под такими широко известными брендами, как «Слобода» и Altero, а также крупным производителем компонентов кормов для сельскохозяйственных животных и птицы. Продукция компании экспортируется во многие страны мира, а производственные активы расположены в Белгородской, Воронежской, Свердловской и Московской областях, Краснодарском крае и Республике Казахстан. 

www.efko.ru

%d0%ae%d0%ba%d0%b8%d1%85%d0%b8%d1%80%d0%be%20%d0%9c%d0%b0%d1%86%d1%83%d0%bc%d0%be%d1%82%d0%be в японский

Я знала, как высоко Бог ценит человека и его тело, но даже это не останавливало меня. Дженнифер, 20 лет

でも,やめられませんでした」。 ―ジェニファー,20歳。

jw2019

Речь и обсуждение со слушателями, основанные на «Сторожевой башне» от 15 июля 2003 года, с. 20.

ものみの塔」誌,2003年7月15日号,20ページに基づく,話および聴衆との討議。「

jw2019

20 Оставлена родителями, но любима Богом

20 親に見捨てられたわたしを神は愛してくださった

jw2019

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

1980年代に資金を借りて金もうけをするのがどれほど容易か見て取ると,やくざは会社を作り,不動産と株の投機に走りました。

jw2019

Обычно проводят связь между этим древним городом и современной Газой (Газза, Азза), расположенной примерно в 80 км к З.-Ю.-З. от Иерусалима.

一般にその古代都市は,エルサレムの西南西約80キロの所にある現代のガザ(ガッゼー; アッザ)と結び付けられています。

jw2019

Гертруд Пётцингер (86 лет): «Меня приговорили к трем с половиной годам одиночного заключения.

ゲルトルート・ポエツィンガー(86):「わたしは3年半の独房禁固刑を宣告されました。

jw2019

20 Даже преследование или заключение в тюрьму не может закрыть уста преданных Свидетелей Иеговы.

20 迫害や投獄でさえ,献身的なエホバの証人の口を封じることはできません。

jw2019

б) Чему мы учимся из слов, записанных в Деяниях 4:18—20 и Деяниях 5:29?

ロ)使徒 4章18‐20節と5章29節の言葉から,どんなことを学べますか。

jw2019

«К одинадцати Апостолам» был причислен Матфий, чтобы служить с ними (Деяния 1:20, 24—26).

十一人の使徒と共に」奉仕するよう任命されたのはマッテヤでした。 ―使徒 1:20,24‐26。

jw2019

Роберт Коэмс, доцент Торонтского университета, обобщает их взгляды: «Рак легких — через 20 лет.

トロント大学の助教授ロバート・コアムスは,そうした女性たちの態度を一言にまとめて,「肺ガンは20年先の問題です。

jw2019

Большинство местных органов при планировании развития на следующие 5, 10, 15, 20 лет начинают с предпосылки, что можно ожидать больше энергии, больше автомобилей, больше домов, больше рабочих мест, больше роста и т.д.

私たちの行政の大部分は腰を下ろして 地域の10年、15年、20年先のことを計画する時 まだ未来にエネルギーが残っていて もっと多くの車や家があり 多くの仕事や経済成長を 仮定しています

ted2019

Будьте щедрыми и заботьтесь о благополучии других (Деяния 20:35).

寛大に与え,他の人が幸せになるように努める。 ―使徒 20:35。

jw2019

Через 4 года предполагаемая капитализация достигнет 80 миллиардов долларов.

今後 4 年間で 800 億ドルを超えると推定されています

ted2019

Исследователи провели эксперимент с учащимися колледжа — юношами и девушками. В течение 20 минут одна группа играла в жестокие видеоигры, а другая — в обычные.

研究者は,男子や女子の生徒を無作為に選び,一方のグループには暴力的なゲームを,他方には暴力とは無関係なゲームを,それぞれ20分させた。

jw2019

20:24). Павел был готов пожертвовать всем, в том числе жизнью, чтобы успешно завершить забег.

使徒 20:24)競走を走り抜くために,パウロはすべてを,命さえも犠牲にすることをいとわなかったのです。

jw2019

Он дал моей дочери воспоминания о чудесных событиях, свидетельствующих о Его любви к ней, а мы с женой обрели более крепкое свидетельство о том, что «чего ни попросите у Отца во имя Моё, что праведно, веруя, что получите, вот, сие будет дано вам» (3 Нефий 18:20).

御父が娘を愛しておられる証として,彼女にそれらの奇跡的な出来事という思い出を与えられ,妻とわたしは,「与えられると信じて,わたしの名によって父に求めるものは,正当であれば,見よ,何でもあなたがたに与えられる」(3ニーファイ18:20)という証をさらに強くすることができました。

LDS

Стоимость его оценивается суммой от 2 до 20 миллионов долларов.

その賠償額は、ある見積もりでは200万ドルから2000万ドルの間だった。

LASER-wikipedia2

Вторая идея, стоящая внимания, это то, что 20 век — это век больших вещей: больших зданий и больших сумм денег.

2つ目の疑問視するに 値する考えは20世紀的な考え マス建築は 大きくすべき ということです 大きい建造物 多額の資金です

ted2019

Можно вводить только по одному диапазону для каждого выражения (например 64.18.0.0/20, как показано на рисунке ниже).

また、1 つの表現につき 1 つの範囲のみを入力できます(たとえば、下の画像では 64.18.0.0/20)。

support.google

Воскресение Иисуса — заключительный довод Иоанна в пользу того, что Иисус на самом деле Христос (20:1—21:25)

イエスこそまさしくキリストであるというヨハネの証は,イエスの復活の証拠をもって結ばれる(20:1–21:25)

jw2019

Эти приятные молодые люди через 20 лет могут стать тобой.

この 二人 は 20 年 後 の 君 か も

OpenSubtitles2018.v3

Давид, всем сердцем веря, что Иегова проявит милосердие к тем, кто раскаивается, сказал: «Ты, Господи, благ и милосерд» (Псалом 85:5).

詩編 32:5; 103:3)ダビデは,悔い改めた者にエホバが快く憐れみを差し伸べられることに全き信仰を抱いて,『エホバよ,あなたは善良で,進んで許してくださいます』と言いました。 ―詩編 86:5。

jw2019

Сегодня он фонтанирует в среднем через каждые 80 минут.

最近,その間隔は平均約80分です。

jw2019

Мы отвечали за территорию, которая простиралась от демилитаризованной зоны между Северным и Южным Вьетнамом до Дананга и еще 80 километров на юг.

私たちが担当したのは,南北両ベトナムの間の非武装地帯からダナン市の南80キロほどに及ぶ地域でした。

jw2019

К этому стремился, безусловно, и апостол Павел (Деян. 20:24).

使徒 20:24)あなたも良いたよりの奉仕者として,同じ目標を持っておられるのではないでしょうか。

jw2019

Мацумото, Юкихиро


Юкихиро Мацумото — японский разработчик свободного ПО, создатель языка программирования Ruby.
В интервью «Japan Inc.» он говорил, что сам учился программировать ещё до окончания школы. Он окончил университет города Цукуба, где он занимался исследованиями языков программирования и компиляторов. С 2006 года возглавляет отдел исследований и разработок Network Applied Communication Laboratory, японский системный интегратор свободного ПО.


1. Биография
Родился в 1965 году в префектуре Осака, но в возрасте четырёх лет переехал в город Ёнаго префектуры Тоттори, поэтому часто представляется как уроженец Ёнаго. В настоящее время проживает в городе Мацуэ префектуры Симане. Юкихиро является членом Церкви Иисуса Христа Святых последних дней и занимается миссионерской деятельностью. Он женат и имеет четырёх детей.


2. Деятельность Ruby
Мацумото выпустил первую версию Ruby 21 декабря 1995 и впоследствии продолжил разработку эталонной реализации языка, названной Ruby MRI.
mruby
В апреле 2012 Мацумото представил новый открытый проект по развитию языка программирования Ruby под названием mruby. В ходе разработки планируется реализовать минимальную программную базу и собственную виртуальную машину, что позволит встраивать код, написанный на языке Ruby, в другие приложения.
streem
В декабре 2014 года Мацумото открыл свою работу над новым сценарным языком под названием streem. Это язык с параллельными вычислениями, основанный на модели программирования, аналогичной командной оболочке Unix, с влияниями Ruby, Erlang и других функциональных языков программирования.

Дата публикации:


05-16-2020

Дата последнего обновления:


05-16-2020

Создатель

Ruby Юкихиро Мацумото о проблемах обновления языка программирования — новый стек

Недавняя презентация Юкихиро Мацумото, создателя и главного дизайнера языка программирования Ruby, а также главного архитектора Ruby в компании Heroku, предлагающей облачную платформу как услугу, дала наглядный пример той вдумчивой заботы, с которой Мацумото руководит своей работой. Сообщество Ruby. 30-минутная презентация, представленная на конференции NoRuko «виртуальная конференция Ruby», также дала представление о новых захватывающих разработках, которые не за горами для этого языка.

«Последние четыре или пять лет я говорил о будущем Ruby 3, — сказал Мацумото своим слушателям, — очень долго. Может быть, вам надоело слышать от меня о Ruby 3, — смиренно пошутил он, перечисляя другие конференции, на которых он обсуждал ту же тему. «Но в этом году — в этом году это реально», — сказал он, подтвердив, что Ruby 3, наконец, будет выпущен этим Рождеством, 25 декабря (как часть продолжающейся традиции выпуска обновлений языка Ruby в Рождество).

«Если все в порядке.Если не случится чего-то очень, очень плохого, мы выпустим Ruby 3 в декабре этого года ».

Дилемма дизайнера

Сотни зрителей смотрели прямую трансляцию «Рубина 3 и не только» Мацумото со всего мира — от Индии до Индонезии и от Бразилии до Берлина — оставляя десятки восторженных комментариев в окне чата мероприятия. Они собрались, чтобы посмотреть, как человек, который последние четверть века руководил разработкой Ruby, сиял перед полкой с книгами.В прошлом «Мац» сказал, что Ruby 3 будет доступен «накануне Олимпийских игр в Токио», но, поскольку Олимпийские игры были отложены до 2021 года, некоторые основные разработчики задавались вопросом, следует ли отложить Ruby 3 на год.

«Но после некоторых обсуждений мы решили выпустить Ruby 3 в этом году, потому что как сообщество с открытым исходным кодом мы должны двигаться вперед. Мы должны двигаться дальше. Сообщество открытого исходного кода в целом не может перестать развиваться. Иначе погибнет… »

Затем Мацумото резко описал дилемму, стоящую перед разработчиками языков.«Всем нравится новое — поэтому как программист, как инженер, я люблю новое. Я также увлекаюсь языками, поэтому мне нравится изучать новые языки программирования, такие как Elixir, Rust, Go и т. Д. Они очень захватывающие ». Но это также, кажется, создает своего рода давление для перемен. «Руби довольно старая, — продолжил Мацумото. «Он был выпущен в 1995 году». Позже он добавляет: «Мы простые смертные. Мы сделали ошибки. Поэтому мы, языковые дизайнеры, хотим исправить ошибки прошлого ».

Но в то же время «никто не хочет боли.«Поскольку все веб-приложения уже используют существующие версии Ruby, всегда существует опасность вынудить разработчиков выполнить сложное обновление, и« Никто не хочет боли. В этом смысле Ruby должен быть стабильным. Это какое-то противоречие, правда? »

«Итак, языковой дизайн, языковой план — очень трудно преодолеть такое противоречие. Такое противоречие исходит из нашего сердца ».

Он привел примеры других языков программирования, которые сталкиваются с подобными дилеммами, включая Python, PHP и ECMAScript, отметив, сколько лет потребовалось их сообществам, чтобы принять изменения.С Python 3 сообществу потребовалось более десяти лет, чтобы продвинуться дальше, а PHP 6 «даже был отменен. Они просто отказались от серьезных изменений перед выпуском — поэтому они начали PHP 7 с PHP 5. EMCAScript 4 также был отменен ».

Люди могут покинуть сообщество, если не будут внесены изменения, — пояснил Мацумото. «Они перестают использовать Ruby только потому, что им скучно». Но он также обеспокоен тем, что они могут покинуть сообщество, если обновление до более поздних версий повлечет за собой слишком много проблем, что заставит их решить: «Может быть, наш следующий проект будет написан, скажем, на Rust, Go или на чем-то еще…»

«Итак, как я уже сказал, проектировать язык сложно, но мы все равно должны двигаться вперед, чтобы создавать будущее.”

Делая Рубин великим

Затем он изложил свой план по сохранению совместимости при «ускорении Ruby и повышении производительности программистов на Ruby». Он определил три четкие и конкретные цели, которые характеризуют предстоящий выпуск Ruby 3: быть быстрым, параллельным и правильным.

Чтобы сделать Ruby быстрее, команда разработчиков начнет с улучшения его своевременного компилятора (который генерирует собственный код). Что касается параллелизма, они будут избегать решений на других языках, чтобы попробовать одно из них.В то время как в Node.js добавлены обещания завершения асинхронных операций, а в ECSMAScript 7 добавлены механизмы управления с ключевыми словами async и await , Ruby 3 вместо этого реализует свои долгожданные «волокна» асинхронного ввода-вывода как лучший способ управлять асинхронными потоками. «Поскольку переключение контекста между волокнами происходит быстро, мы можем улучшить производительность».

Еще одна причина, по которой они ожидают, что он повысит производительность: он разрабатывается создателем сервера приложений Falcon на Ruby (который Мацумото описывает как «блестяще быстрый.») Но это не единственный способ повысить производительность. Они также реализуют «Ractors» («участники Ruby») — аналогично тому, как JavaScript предлагает фоновые сценарии «web worker». «Каждый анализатор может работать параллельно», — объясняет Мацумото, пользуясь преимуществами параллельной обработки, которая теперь возможна в современных многоядерных системах.

И третья цель более правильного Ruby будет заключаться в ранней проверке ошибок благодаря профилировщику типов, который будет генерировать подписи Ruby (по аналогии Мацумото с описывающим типы d.ts в TypeScript). Ruby 3 будет поставляться с сигнатурами типов для своих основных библиотек, доступными как для проверки типов, так и для улучшения будущих IDE.

Но у него будут свои ограничения. «Мы не стремимся к полноте или надежности систем типов, потому что, как вы знаете, Ruby — это Ruby», — пояснил Мацумото. «Ruby в основном динамически типизирован… Это означает, что, несмотря на то, что у нас есть некоторые постепенные типы, мы не можем выполнять какие-либо проверки типов звука, поэтому мы просто сдаемся. … Мы не собираемся добавлять объявление типа в синтаксис.”

Три новых функции

Но в Ruby 3 ожидаются изменения синтаксиса. «Мы делаем Ruby еще лучше», — сказал Мацумото, рекламируя три новые функции. Первый — это замысловатый синтаксис сопоставления с образцом, «поэтому вам не нужно разбирать массивы и хэши. Вместо этого можно писать выкройки… это очень удобно и удобно ».

Вторая новая функция позволяет присваивать значения переменной справа от знака равенства. Он назвал «неестественным» для наших глаз — и наших IDE — всегда противостоять выражениям, начинающимся с имени переменной, даже когда оно будет присвоено результирующему значению гораздо более длинного фрагмента кода.«Если вместо этого мы сможем выполнить задание справа… Это естественно… Мы не рекомендуем это везде. Вам не нужно заменять каждое назначение назначением с правой стороны, но в некоторых случаях это очень удобно ».

И третья новая функция, появившаяся в Ruby 3, — это параметры нумерованных блоков, «поэтому вам не нужно беспокоиться об именовании временных параметров локального блока».

Но следующий слайд Мацумото гласил: «И дальше…»

Он начал с того, что сказал «стабильность имеет значение», поэтому он не прогнозирует каких-либо серьезных изменений синтаксиса после Ruby 3.Вместо этого они сосредоточатся на работе над улучшением существующих инструментов поддержки Ruby, таких как Solargraph для протокола языкового сервера, Sorbet для статической проверки типов и Rubocop для линтера кода. «Эти инструменты доказали, что более совершенные инструменты улучшают взаимодействие с пользователем. Так что мы должны двигаться дальше. Я думаю, что нам нужно больше инструментов, а затем нам нужно улучшить эти инструменты ». Мацумото также хочет видеть более совершенные средства проверки типов и инструменты форматирования или, может быть, более совершенные средства настройки производительности и отладки. И у него также есть некоторые другие идеи о том, как сделать Ruby быстрее — например, второй облегченный JIT-компилятор, расположенный над виртуальной машиной — возможно, MIR или DynASM.

Меньший рубин

Но Мацумото закончил свой разговор о том, что лежит за пределами Ruby 3, тем, что он назвал «Еще одна идея. Это просто безумная идея. Но я думаю о меньшем подмножестве Ruby, которое проще, а затем строже и, надеюсь, быстрее или проще оптимизировать ».

Он будет обратно совместимым, то есть подмножеством Ruby, которое может работать во всех существующих, текущих версиях Ruby (хотя не каждая версия Ruby может быть запущена в Smaller Ruby). И объясняя свое обоснование, Мацумото поднимает слайд, на котором написано: «Рубин меньшего размера может работать быстрее (надеюсь).Он смеется, читая его вслух, затем добавляет: «Это просто идея. Пока не знаю. Мы должны поддерживать совместимость … Но если мы останемся в таком подмножестве Ruby … это будет негибким, но намного проще оптимизировать … »

Чтобы подчеркнуть суть дела, он помещает слайд с надписью «Это просто идея».

«Но у меня есть много этих безумных идей, и мы пытаемся экспериментировать с ними, одну за другой, чтобы сделать Ruby великим. ”


WebReduce

The New Stack является 100% дочерней компанией Insight Partners.Владелец TNS Insight Partners является инвестором следующих компаний: Shelf, MADE, Real.

О Ruby

Хотите знать, почему Ruby так популярен? Поклонники называют это красивым, хитрым
язык. И все же говорят, что это удобно и практично. Что дает?

Идеалы создателя Ruby

Ruby — это язык тщательного баланса. Его создатель Юкихиро «Мац».
Мацумото, смешал части своих любимых языков (Perl, Smalltalk,
Eiffel, Ada и Lisp), чтобы сформировать новый язык, уравновешивающий функциональные возможности
программирование с императивным программированием.

Он часто говорил, что «пытается сделать Ruby естественным, а не простым»,
таким образом, который отражает жизнь.

Основываясь на этом, он добавляет:

Ruby прост на вид, но очень сложен внутри, как и
наше человеческое тело 1 .

О росте Руби

С момента своего публичного выпуска в 1995 году Ruby привлек преданных программистов
по всему миру. В 2006 году Ruby получил массовое признание. С активным пользователем
группы, сформированные в крупных городах мира, и конференции, связанные с Ruby
заполнен под завязку.

Ruby-Talk, основной список рассылки для
обсуждение языка Ruby, поднялось в среднем до 200 сообщений
в день в 2006 году. В последние годы он снизился, поскольку размер
сообщество перенесло обсуждение из одного центрального списка во множество меньших
группы.

Ruby входит в десятку лучших по большинству индексов, измеряющих
рост и популярность языков программирования во всем мире
(например, индекс TIOBE). Большая часть роста связана с
популярность программного обеспечения, написанного на Ruby, особенно
Веб-фреймворк Ruby on Rails.

Ruby также полностью бесплатен. Не только бесплатно, но и
также можно бесплатно использовать, копировать, изменять и распространять.

Видеть все как объект

Изначально Мац смотрел на другие языки, чтобы найти идеальный синтаксис.
Вспоминая свои поиски, он сказал: «Мне нужен язык сценариев, который
более мощный, чем Perl, и более объектно-ориентированный, чем
Python 2 ».

В Ruby все является объектом. Каждый бит информации и кода может
получить свои собственные свойства и действия.Объектно-ориентированное программирование
вызывает свойства по имени переменные экземпляра и действия известны
как методы . Чисто объектно-ориентированный подход Ruby чаще всего
демонстрируется фрагментом кода, который применяет действие к числу.

  5. раз {print "Мы * любим * Ruby - это возмутительно!" }  

Во многих языках числа и другие примитивные типы не являются объектами.
Ruby следует за влиянием языка Smalltalk, предоставляя методы
и переменные экземпляра для всех его типов.Это облегчает использование
Ruby, поскольку правила, применяемые к объектам, применяются ко всему Ruby.

Гибкость Рубина

Ruby считается гибким языком, поскольку он позволяет пользователям свободно
переделать его части. Существенные части Ruby можно удалить или переопределить по адресу
буду. Существующие части могут быть добавлены. Ruby старается не ограничивать
кодер.

Например, сложение выполняется с помощью оператора плюс ( + ). Но если
вы бы предпочли использовать читаемое слово плюс , вы могли бы добавить такой метод
в встроенный в Ruby класс Numeric .

  класс Числовой
  def плюс (x)
    я. + (x)
  конец
конец

у = 5. плюс 6
# y теперь равно 11  

Операторы Ruby являются синтаксическим сахаром для методов. Вы можете переопределить их
также.

Блоки: действительно выразительный элемент

Блок

Ruby также рассматривается как источник большой гибкости. А
программист может прикрепить закрытие к любому методу, описав, как это
метод должен действовать. Закрытие называется блоком и стало одним из
самые популярные функции для новичков в Ruby из других императивов
такие языки, как PHP или Visual Basic.

Blocks вдохновлены функциональными языками. Мац сказал: «На Ruby
закрытия, я хотел уважать культуру Lisp 3 ».

  search_engines =
  % w [Google Yahoo MSN] .map do | engine |
    "http: // www." + engine.downcase + ".com"
  конец  

В приведенном выше коде блок описан внутри do ... end
построить. Метод map применяет блок к предоставленному списку
слова. Многие другие методы в Ruby оставляют дыру, чтобы программист мог написать
свой собственный блок, чтобы заполнить детали того, что должен делать этот метод.

Рубин и миксин

В отличие от многих объектно-ориентированных языков Ruby поддерживает одиночное наследование.
только, специально . Но Ruby знает концепцию модулей (называемых
Категории в Objective-C). Модули — это коллекции методов.

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

  класс MyArray
  включить Enumerable
end  

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

Внешний вид Руби

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

  • var может быть локальной переменной.
  • @var — переменная экземпляра.
  • $ var — глобальная переменная.

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

Помимо основ

Ruby обладает множеством других функций, среди которых следующие:

  • Ruby имеет функции обработки исключений, такие как Java или Python, чтобы
    легко обрабатывать ошибки.

  • Ruby предлагает настоящий сборщик мусора с функцией отметки и очистки для всего Ruby.
    объекты. Нет необходимости поддерживать счетчик ссылок в библиотеках расширений.
    Как говорит Мац: «Это лучше для вашего здоровья».

  • Написание расширений C в Ruby проще, чем в Perl или Python, с
    очень элегантный API для вызова Ruby из C. Это включает вызовы для
    встраивание Ruby в программное обеспечение для использования в качестве языка сценариев. SWIG
    интерфейс также доступен.

  • Ruby может загружать библиотеки расширений динамически, если это позволяет ОС.

  • Ruby поддерживает независимую от ОС многопоточность. Таким образом, для всех платформ на
    который запускает Ruby, у вас также есть многопоточность, независимо от того,
    поддерживает это или нет, даже на MS-DOS!

  • Ruby очень портативен: он разработан в основном на GNU / Linux, но
    работает со многими типами UNIX, macOS, Windows, DOS, BeOS, OS / 2 и т. д.

Другие реализации Ruby

Ruby как язык имеет несколько различных реализаций.На этой странице обсуждалась эталонная реализация в
сообщество, которое часто называют MRI («Рубиновый интерпретатор Маца»)
или CRuby (поскольку он написан на C), но есть и другие.
Они часто бывают полезны в определенных ситуациях, обеспечивают дополнительную
интеграция с другими языками или средами или имеет специальные функции
что МРТ не делает.

Вот список:

  • JRuby — это Ruby поверх JVM (виртуальная машина Java), использующий
    Оптимизирующие JIT-компиляторы JVM, сборщики мусора, параллельные
    потоки, экосистема инструментов и обширная коллекция библиотек.
  • Рубиниус — это «Рубин, написанный на Рубине». Построен на основе LLVM,
    Rubinius обладает изящной виртуальной машиной, которую используют другие языки.
    построена тоже поверх.
  • TruffleRuby — высокопроизводительная реализация Ruby поверх
    GraalVM.
  • mruby — это облегченная реализация языка Ruby.
    которые можно связать и встроить в приложение.
    Его разработкой руководит создатель Ruby Юкихиро «Мац» Мацумото.
  • IronRuby — это реализация, «тесно интегрированная с.СЕТЬ
    Фреймворк».
  • MagLev — это «быстрая, стабильная реализация Ruby с интегрированной
    постоянство объектов и распределенный общий кеш ».
  • Cardinal — это «компилятор Ruby для виртуальной машины Parrot»
    (Perl 6).

Для более полного списка см. Awesome Rubies.

Список литературы

1 Мац, выступая в списке рассылки Ruby-Talk, 12 мая,
2000.

2 Мац, в интервью с создателем Ruby, ноябрь 2010 г., стр.
29 числа 2001 г.

3 Matz, в блоках и замыканиях на Ruby, 22 декабря,
2003.

Юкихиро Мацумото, интервью для компании Evrone (на английском языке)

Введение

Мы очень рады, что наш хороший друг Юкихиро Мацумото, создатель языка программирования Ruby, смог присоединиться к нам в качестве спикера на RubyRussia 2019 во второй раз, ранее выступая три года назад на RubyRussia 2016.

За время, пока мы проводим конференцию — а теперь уже более десяти лет — Ruby претерпела большую эволюцию, и Evrone росла и развивалась вместе с ней.

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

Интервью

Григорий: Это ваш второй визит в Россию, первый в 2016 году, и с тех пор количество посетителей RubyRussia увеличилось вдвое. Большое спасибо за ваш разговор, мне он очень понравился, и теперь я знаю ответы на несколько вопросов, которые собирался вам задать!

Я видел, что люди не просто задают вам вопросы, но также просят сфотографироваться с вами и даже просят автографы — вы звезда! Нам, разработчикам, безусловно, нравится этот язык и то, что вы делаете для сообщества, но есть ли такие люди во всем мире или это что-то специфическое для России?

Юкихиро: Люди просят фотографировать везде: в каждой стране и на каждой конференции люди хотят сфотографироваться со мной.Но я думаю, что это первый раз, когда у меня спрашивают автограф!

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

Юкихиро: Самый популярный вопрос: «Я из сообщества языков X; не могли бы вы представить функцию языка X на Ruby?» Или что-то в этом роде. И мой обычный ответ на эти запросы: «Нет, я бы не стал этого делать», потому что у нас другой дизайн языка и другая политика языковой разработки.

Мы не можем просто взять некоторые функции из языка X и перенести их в Ruby, хотя в некоторых случаях мы, конечно, заимствуем идеи из других языков, таких как Python, JavaScript и Elixir. Этот вопрос задают снова и снова, но получить на него положительный ответ очень редко.

Григорий: Как здорово, что ты умеешь говорить «нет»; Я считаю, что технологии, «разработанные сообществом», не всегда дают наилучшие результаты. Существует так много разных языков и технологий, что мы действительно можем изучить лучшие практики и реализовать только те вещи, которые подходят.

Недавно мы наблюдали волну добавления постепенного набора текста в языки с динамической типизацией, такие как JavaScript, Python и PHP. Что вы думаете об аннотациях типов и постепенном вводе текста? Почему они так популярны? И каковы ваши общие идеи и планы относительно проверки типов в Ruby 3 и последующих версиях?

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

В отличие от языков с динамической типизацией, мы должны писать тесты, чтобы избежать несоответствия типов в нашем коде. По мере роста программного обеспечения растет и объем тестов (и нагрузка по их написанию), и это действительно способствовало росту популярности статической и постепенной типизации в последнее время.

В то же время, однако, объявление статического типа является избыточным, и с таким языком, как Ruby, мы хотим получить преимущество проверки статического типа без избыточности ручного объявления типов.

Как сообщество Ruby и как язык Ruby, мы пытаемся удовлетворить обе потребности одновременно: мы собираемся иметь файл информации о типе отдельно от программы Ruby — сама программа Ruby не содержит никакой информации статического типа. Вместо этого отдельный файл информации о типе, который мы называем «файл подписи Ruby», содержит информацию о типе библиотеки, Gems и ваших программ.

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

В будущем Ruby вы сможете проверять типы статически, в некоторой степени, но в очень ограниченной степени. У вас будет традиционное поведение Ruby, которое проверяет типы во время выполнения.С помощью «средства проверки типов первого уровня» можно найти от 40 до 80% ошибок типов, используя информацию о типах, доступную в исходном коде. «Средство проверки типов второго уровня» может генерировать дополнительную информацию о типах на основе анализа самого кода. С помощью этих инструментов будущие версии Ruby могут предоставлять проверки статических типов без необходимости явных аннотаций типов в вашем коде.

Григорий: Во время выступления на конференции вы об этом упомянули, и это вполне логичная идея. Я разработчик C / C ++, поэтому статическая типизация для меня естественна, и я всегда рассматривал типы как способ заявить о своих намерениях, чтобы помочь языку и инструментам находить возможные ошибки в будущем.

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

Здорово, что вы проводите эксперименты, тестируете идеи. Какое будущее вы видите для Руби? Как вы управляете языком?

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

Григорий: Нам, разработчикам, нравится маркировать и классифицировать вещи. Мол, это спортивный автомобиль, а не семейный. Мы также обозначаем языки программирования: JavaScript — это «веб-язык», C — «системный язык низкого уровня», C # — «для собственных приложений Windows UI».Как вы склонны классифицировать Ruby?

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

Григорий: В Python у нас нет многострочных анонимных вызываемых объектов из-за проблем с реализацией. Приятно слышать, что для Ruby вы и основные разработчики изо всех сил стараетесь облегчить жизнь разработчикам, несмотря на технологические проблемы реализации.

Если мы говорим о проблемах… Представьте, что у вас есть возможность отправиться в прошлое и дать только один совет самому младшему, примерно в то время, когда вы начали разработку языка Ruby.Что бы вы посоветовали себе?

Юкихиро: Не бери много других языков сценариев. Ваш язык программирования будет лучшим языком программирования общего назначения. Функции, введенные только для того, чтобы сделать Ruby более сопоставимым со скриптовыми языками, в будущем станут своего рода дополнением — в основном бесполезным, пока не выйдут из строя — поэтому лучше не зацикливаться на них слишком много.

Григорий: В прошлом существовала огромная разница между «скриптовыми» и «скомпилированными» языками программирования.В настоящее время мир изменился: между виртуальными машинами, байт-кодом и JIT-компиляторами грань между ними довольно размыта.

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

Юкихиро: Если бы мне пришлось выбрать что-то одно, я бы назвал блоки. Блок Ruby — это довольно уникальная и весьма полезная абстракция функции высокого порядка.Это намного проще, чем на других языках. Ограниченно, но удобно.

Grigory: Случайно, но больше всего в Ruby мне нравятся блоки. В своих беседах и интервью я говорю, что Ruby — это DSL, синтаксический сахар и блоки. Блоки отличные.

Yukihiro: В таких языках, как Swift, если последний аргумент является функцией, вы можете заключить его в фигурные скобки для чего-то вроде блока Ruby. Есть предложение добавить аналогичную функцию в JavaScript.Я очень горжусь этим.

Grigory: Да, JavaScript может эмулировать блоки, передавая функцию жирной стрелки в качестве последнего аргумента, потому что (начиная с ES6) он имеет синтаксис жирной стрелки для многострочных функций. Блоки отличные. Между тем, есть ли в дизайне или эволюции Ruby что-то, что вам не нравится? Что бы вы назвали самой большой ошибкой конструкции, которую следует исправить или которая уже исправлена?

Юкихиро: У меня есть. Глобальные переменные: они были полезны для «скриптового языка», но теперь они больше похожи на приложение.Я также сожалею о добавлении потоков в язык, у нас должна была быть лучшая абстракция параллелизма. Другая моя ошибка дизайна — некоторые объекты, которые можно без нужды изменять. Например, есть возможность изменить часовой пояс для существующего объекта времени вместо создания нового. Я сожалею об этом.

Григорий: Да, изменчивость — штука непростая, и она может легко привести к ошибкам в исходном коде.

Переходя от технических деталей Ruby, как вы организуете свою работу над языком? Как выглядит твой рабочий день?

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

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

Grigory: Я проверил ваш профиль на GitHub и увидел множество коммитов, в том числе во время вашего полета в Россию. В последнее время много говорится о «выгорании» разработчиков. У тебя есть свободное время? Есть хобби? Что вы делаете для своего благополучия, чтобы не перегореть?

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

Grigory: Многим Ruby-разработчикам из России нравится Япония как страна и нравится японская культура.Они смотрят аниме, читают мангу, а некоторые посещают Японию. Как уроженец Японии и разработчик программного обеспечения, какие места и впечатления вы можете порекомендовать коллегам-разработчикам, которые посещают Японию?

Юкихиро: Япония — очень разнообразная страна. Вы можете посетить такие мегаполисы, как Токио, где все выглядит футуристично. У нас много поп-культуры, такой как манга и аниме. В то же время у нас есть горы, леса и исторические места, такие как старые святыни и храмы. У нас есть красивые цветки сакуры и листья.Это зависит от вашего вкуса и предпочтений, вы можете наслаждаться многими вещами: едой, природой, техникой. Рекомендую вам насладиться разнообразием страны!

Григорий: Есть ли что-то в японской культуре и истории, что влияет на Руби?

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

Григорий: И последний, каверзный вопрос. Люди часто хотят знать, каково это видеть мир глазами другого человека — знать, что они думают и что чувствуют.Есть ли в работе автора языка какие-то аспекты, которые со стороны не очевидны?

Юкихиро: Одно в том, что… Несмотря на то, что думают другие, создание языка на самом деле не является сложной задачей. Студенты, специализирующиеся в области информатики, посещают занятия по реализации языка, и почти каждый выпускник может написать свой собственный язык программирования. Технически это не так уж и сложно.

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

Языки программирования, такие как Ruby, Python, JavaScript и т. Д., Помогают развивать ум, позволяя превращать идеи во что-то осязаемое и полезное. Это основная цель языка программирования.

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

Григорий: Спасибо! Это были Григорий Петров и Юкихиро Мацумото на RubyRussia 2019! Аригато!

Юкихиро: Аригато!

Видеоинтервью с Юкихиро Мацумото:

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

Юкихиро Мацумото Биография, возраст, рост, жена, состояние, семья

Возраст, биография и вики

Юкихиро Мацумото родился 14 апреля 1965 года в Осаке, Япония, японский ученый-компьютерщик (родился в 1965 году).Познакомьтесь с биографией Юкихиро Мацумото, его возрастом, ростом, физическими данными, свиданиями / делами, семьей и карьерой. Узнайте, насколько Он богат в этом году и на что тратит деньги? Также узнайте, как Он заработал большую часть чистой прибыли в возрасте 55 лет?

Популярное как НЕТ
Род занятий Информатик, программист, автор
Возраст 56 лет
Знак Зодиака Овен
Родился 14 апреля 1965
День рождения 14 апреля
Место рождения Осака, Япония
Национальность Японский

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

Юкихиро Мацумото Рост, вес и размеры

В 56 лет рост Юкихиро Мацумото сейчас недоступен. Мы сообщим Юкихиро Мацумото рост, вес, размеры тела, цвет глаз, цвет волос, размер обуви и платья как можно скорее.

Физическое состояние
Высота Нет в наличии
Вес Нет в наличии
Размеры тела Нет в наличии
Цвет глаз Нет в наличии
Цвет волос Нет в наличии

Знакомства и статус отношений

В настоящее время не женат.Он ни с кем не встречается. У нас мало информации о его прошлых отношениях и каких-либо предыдущих помолвках. По нашим данным, детей у него нет.

Семья
Родители Нет в наличии
Жена Нет в наличии
Родной брат Нет в наличии
Дети 4

Юкихиро Мацумото Собственный капитал

Его собственный капитал значительно вырос в 2020-2021 годах.Итак, сколько стоит Юкихиро Мацумото в возрасте 56 лет? Источником дохода Юкихиро Мацумото является в основном успех. Он из японца. Мы оценили чистую стоимость, деньги, зарплату, доход и активы Юкихиро Мацумото.

Собственный капитал в 2021 году 1 миллион — 5 миллионов долларов
Заработная плата в 2020 году На рассмотрении
Собственный капитал в 2019 году В ожидании
Заработная плата в 2019 году На рассмотрении
Дом Нет в наличии
Легковые автомобили Нет в наличии
Источник дохода

Социальная сеть Юкихиро Мацумото

Хронология

В декабре 2014 года Мацумото открыл исходный код своей работы над новым языком сценариев под названием streem, параллельным языком, основанным на модели программирования, подобной оболочке, с влиянием Ruby, Erlang и других языков функционального программирования.

В апреле 2012 года Мацумото открыл исходный код своей работы над новой реализацией Ruby под названием mruby. Это минимальная реализация, основанная на его виртуальной машине под названием ritevm, и предназначена для того, чтобы позволить разработчикам программного обеспечения встраивать Ruby в другие программы, сохраняя при этом небольшой объем памяти и оптимизируя производительность.

С 2011 года Мацумото является главным архитектором Ruby в Heroku, онлайн-облачной платформе как услуге в Сан-Франциско. Он является научным сотрудником Технологического института Ракутен, научно-исследовательской организации Rakuten Inc.С июня 2014 года он был назначен техническим советником компании VASILY, Inc.

Мацумото выпустил первую версию языка программирования Ruby 21 декабря 1995 года. Он по-прежнему руководит разработкой эталонной реализации языка MRI (для Ruby Interpreter Матца).

Юкихиро Мацумото (яп. つ も と ゆ き ひ ろ, Мацумото Юкихиро, родился 14 апреля 1965 г.), также известный как Матц, — японский ученый-компьютерщик и программист, наиболее известный как главный разработчик языка программирования Ruby и его эталонной реализации, Ruby Interpreter Матца ( МРТ).Его поведение вызвало в сообществе Ruby девиз: «Матц хорош, и поэтому мы хорошие», обычно сокращенно MINASWAN.

Пантеон

  • Визуализации
  • Рейтинги
    • Люди
    • Места
    • Профессии
  • Профили
    • Люди
    • Места
    • Страны
    • Профессия
    • Данные
      • Разрешения
      • Скачать
      • API
    • Ежегодник
    • Домашняя страница
    • Визуализации
    • Рейтинги
    • Профили
      • Люди Места
      • 9018
      • Люди Места
      • 9018 Страны
      • Eras
    • О
    • Данные
      • Разрешения
      • API
    • Ежегодник
    • API
    • Поиск
    • Оставить отзыв
    • Цитата об использовании
    • 9019ksi

      Antee.

      Вместо этого вы можете попробовать новый поиск или эти страницы:
      • Isaac Newton

        Physicist

        United Kingdom

        Rank 6

      • Walt Disney

        Producer

        United States

        Роджер Федерер

        Теннисист

        Швейцария

        Ранг 124

      • Гонщик

        Ранг профессии 16

        665 человек

        Sports Domain

      • Agnez Mo

        Agnez Moctor

      • Лаози

        Философ

        Китай

        Рейтинг 157

      • Винсент Ван Гог

        Художник

        Нидерланды

        Рейтинг 20

      • Дизайнер моды 907

      • Васко да Gama

        Explorer

        Португалия

        Ранг 99

      • Знаменитость

        Профессия 40

        142 Физические лица

        Общественная фигура

      • Ранг Мари Кюри
      • 03

      • Исследуйте
        • Визуализации
        • Рейтинги
      • Профили
        • Люди
        • Места
        • Страны
        • Профессии
        • Профессии / Страны
        • Eras

        9018 9018 9018 Политика конфиденциальности службы

    • Данные
      • Разрешения
      • Скачать
      • API
    • Приложения
      • Ежегодник
    • Юкихиро Мацумото, ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ТОЙОХАСИ

      Принадлежность Архитектурно-строительный факультет
      Название Доцент
      Области исследований Строительное проектирование
      Степень Доктор.инженерии
      Академические общества Архитектурный институт Японии / Японское общество инженеров-строителей / Японское общество стальных конструкций / Японское общество композитных материалов / Японская ассоциация сейсмостойких инженеров / Японское общество инженеров-механиков / International
      Эл. Почта y-matsum @ ace
      Добавьте «.tut.ac.jp» в конец адреса выше.
      Веб-сайт лаборатории URL http: // sel.ace.tut.ac.jp/y-matsum
      URL-адрес информации об исследователе (карта исследования) Информация об исследователе

      Исследования

      Методология расчета сейсмостойкости и продольного изгиба оболочек и пространственных конструкций
      Структурное проектирование конструкций из стеклопластика
      Армирование и усиление стальных элементов с использованием углепластика
      Мониторинг состояния конструкций с использованием датчика с волоконной решеткой Брэгга

      Тема 1 : Устойчивость и сейсмические характеристики оболочки и пространственных конструкций
      Обзор

      Однослойная решетчатая цилиндрическая оболочка

      При проектировании пространственных рам в форме оболочки, расположенных в сейсмической зоне, очень важно уделять значительное внимание динамическим характеристикам и характеристикам продольного изгиба.Однако для однослойных решетчатых цилиндрических крышных конструкций было недостаточно прояснить их динамические характеристики во время землетрясения и оценить несущую способность. Кроме того, хорошо известно, что металлические оболочки и решетчатые каркасные конструкции в виде раковин имеют характеристики продольного изгиба, которые очень чувствительны к начальным геометрическим дефектам. Наши исследовательские интересы заключаются в следующем.
      1) продольный изгиб тонкостенных цилиндров
      2) продольный изгиб решетчатых оболочечных конструкций
      3) сейсмический отклик оболочек и пространственных конструкций

      Избранные публикации и работы

      Нхут Фан Вьет, Юкио Китано и Юкихиро Мацумото: Экспериментальные исследования эффектов усиления углепластика для тонкостенных резервуаров для хранения при динамических нагрузках, Прикладные науки , Том 10, выпуск 7, 22 страницы, 2020.4. [https://doi.org/10.3390/app10072521]
      Нхут Вьет ФАН, Юкихиро МАЦУМОТО, Такахиро МАЦУИ, Хитоши НАКАМУРА: Эффекты усиления окружных слоев углепластика для тонкостенных стальных цилиндров при осевом сжатии, Японское общество стальных конструкций. , Производство стальных конструкций , No 26, Том 103, стр 15-29, 2019.9.
      Кришна Кумар Бхетвал, Сейши Ямада, Юкихиро Мацумото и Джеймс Дж. А. Кролл : Нелинейное упругое изгибание армированных стальных баллонов при осевом сжатии , Журнал гражданского строительства и архитектуры , Том 6, No.8 , стр. 933-943,2012,8

      Ключевые слова

      Сейсмический отклик / коробление / оболочка / решетчатая оболочка

      Тема 2 : Фундаментальное исследование материалов из стеклопластика для строительных и гражданских конструкций
      Обзор

      Болтовое соединение, состоящее из стеклопластика и стальной косынки.
      Материал FRP

      обладает хорошими характеристиками, такими как легкий вес, высокая прочность и высокая коррозионная стойкость. Легкая конструкция имеет ряд преимуществ перед сейсмической нагрузкой и рациональным способом строительства.Наши исследовательские интересы заключаются в следующем.
      1) Механические характеристики болтового и клеевого соединения для FRP
      2) Влияние армирования с использованием углепластика
      3) Метод расчета конструкций из FRP
      4) Долговременные характеристики материала FRP

      Избранные публикации и работы

      Fengky Satria Yoresta, Ryotaro Maruta, Genki Mieda, Yukihiro Matsumoto: Метод упрочнения несвязанного углепластика для контроля продольного изгиба стальных элементов, Строительные и строительные материалы , Том 241, 14 страниц, 2020.4. [https://doi.org/10.1016/j.conbuildmat.2020.118050]
      Генки Миеда, Хитоши Накамура, Такахиро Мацуи, Ютака Очи, Юкихиро Мацумото: Механическое поведение углепластика на стальной поверхности, отформованной и скрепленной методом вакуумного переноса смолы Технология литья под давлением, С.Н. Прикладные науки , Том 1, Выпуск 6, 2019. 5. [https://doi.org/10.1007/s42452-019-0603-4]

      Ключевые слова

      FRP / Мосты / Пространственные конструкции / Болтовое соединение / Клеевое соединение

      Theme3 : Контроль состояния конструкций с помощью датчика с оптоволоконной решеткой Брэгга
      Обзор

      Система SHM с использованием акселерометра FBG в Toyohashi Tech.

      Мониторинг состояния конструкций (SHM) разработан для обнаружения ухудшения механических характеристик конструкции.
      Мы выполняем мониторинг вибрации, используя недавно разработанные датчики с волоконной решеткой Брэгга (FBG). Наши исследовательские интересы заключаются в следующем.
      1) SHM с использованием акселерометров FBG для зданий
      2) SHM с использованием датчиков FBG для стальных мостов
      3) SHM с использованием датчика FBG для клеевого слоя

      Избранные публикации и работы

      Михаил Сидоров, Фан Вьет Нхут, Юкихиро Мацумото и Рен Омура: Прецизионная беспроводная система мониторинга состояния конструкций на основе LoRa для болтовых соединений в среде умного города, IEEE Access , Том 7, стр.179235-179251, 2019.12. [https://doi.org/10.1109/ACCESS.2019.2958835]
      Ю. Мизуно, С. Хагивара, Х. Ли, Ю. Очи, Т. Мацуи, Ю. Мацумото, Ю. Танака, Х. Накамура и К. Накамура: Инфракрасная термометрия для обнаружения обрыва оптических волокон, встроенных в конструкции, Applied Physics Express (APEX), vol. 12, вып. 6 августа 2019 г. [https://doi.org/10.7567/1882-0786/ab1e92]
      Юкихиро МАЦУМОТО, Акихико ЙОСИВА, Такуя МАЦУМОТО и Чихару ОРИКАСА: Мониторинг повреждений с помощью волоконных датчиков Брэгга для клеевых соединений, SMAR 2015 Antalya Proceedings (ISBN 2015 Antalya Proceedings) -3-

      4-65-2) (SMAR 2015) (Анталия, Турция), 2015.9

      Ключевые слова

      Датчик FBG / Мониторинг состояния конструкций

      Название класса

      Бакалавриат
      (B1011004b) Линейная алгебра 1
      (B10110020) Инженерно-научная лаборатория
      (B1013009a) Физическая лаборатория
      (B15510170) Механика конструкций 1
      (B15510070) Механика конструкций 2
      (B15620110)

      Магистерская программа
      (M25620040) Проектирование стальных конструкций

      Юкихиро мацумото — Academic Kids

      Юкихиро мацумото — Academic Kids

      От академических детей

      В Википедии нет статьи с таким точным названием.


      • Если вы создавали эту страницу за последние несколько минут, а она еще не появилась, она может не отображаться из-за задержки в обновлении базы данных. Попробуйте очистить ( http://academickids.com/encyclopedia/index.php?title=Yukihiro_matsumoto&action=purge ), в противном случае подождите и повторите попытку позже, прежде чем пытаться воссоздать страницу.
      • Если вы ранее создавали статью под этим заголовком, она могла быть удалена. Просматривайте кандидатов на скорейшее удаление по возможным причинам.
      Навигация

      Академическое детское меню

      • Искусство и культура
        • Искусство ( http://www.academickids.com/encyclopedia/index.php/Art )
        • Архитектура ( http://www.academickids.com/encyclopedia/index.php/Architecture )
        • культур ( http://www.academickids.com/encyclopedia/index.php/Cultures )
        • Музыка ( http: // www.academickids.com/encyclopedia/index.php/Music )
        • Музыкальные инструменты ( http://academickids.com/encyclopedia/index.php/List_of_musical_instruments )
      • Биографии ( http://www.academickids.com/encyclopedia/index.php/Biographies )
      • Клипарт ( http://www.academickids.com/encyclopedia/index.php/Clipart )
      • География ( http://www.academickids.com/encyclopedia/index.php / География )
        • страны мира ( http://www.academickids.com/encyclopedia/index.php/Countries )
        • Карты ( http://www.academickids.com/encyclopedia/index.php/Maps )
        • Флаги ( http://www.academickids.com/encyclopedia/index.php/Flags )
        • континента ( http://www.academickids.com/encyclopedia/index.php/Continents )
      • История ( http: // www.academickids.com/encyclopedia/index.php/History )
        • Древние цивилизации ( http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations )
        • Industrial Revolution ( http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution )
        • Средневековье ( http://www.academickids.com/encyclopedia/index.php/Middle_Ages )
        • Prehistory ( http://www.academickids.com/encyclopedia/index.php / Предыстория )
        • Ренессанс ( http://www.academickids.com/encyclopedia/index.php/Renaissance )
        • Хронология ( http://www.academickids.com/encyclopedia/index.php/Timelines )
        • США ( http://www.academickids.com/encyclopedia/index.php/United_States )
        • войны ( http://www.academickids.com/encyclopedia/index.php/Wars )
        • Всемирная история ( http: // www.academickids.com/encyclopedia/index.php/History_of_the_world )
      • Человеческое тело ( http://www.academickids.com/encyclopedia/index.php/Human_Body )
      • Математика ( http://www.academickids.com/encyclopedia/index.php/Mat Mathematics )
      • Ссылка ( http://www.academickids.com/encyclopedia/index.php/Reference )
      • Наука ( http://www.academickids.com/encyclopedia/index.php / Science )
        • Животные ( http://www.academickids.com/encyclopedia/index.php/Animals )
        • Aviation ( http://www.academickids.com/encyclopedia/index.php/Aviation )
        • Динозавры ( http://www.academickids.com/encyclopedia/index.php/Dinosaurs )
        • Земля ( http://www.academickids.com/encyclopedia/index.php/Earth )
        • Изобретения ( http://www.academickids.com/encyclopedia/index.php / Изобретения )
        • Physical Science ( http://www.academickids.com/encyclopedia/index.php/Physical_Science )
        • Растения ( http://www.academickids.com/encyclopedia/index.php/Plants )
        • Ученые ( http://www.academickids.com/encyclopedia/index.php/Scientists )
      • Социальные исследования ( http://www.academickids.com/encyclopedia/index.php/Social_Studies )
        • Антропология ( http: // www.academickids.com/encyclopedia/index.php/Anthropology )
        • Экономика ( http://www.academickids.com/encyclopedia/index.php/Economics )
        • Правительство ( http://www.academickids.com/encyclopedia/index.php/Government )
        • Религия ( http://www.academickids.com/encyclopedia/index.php/Religion )
        • Праздники ( http://www.academickids.com/encyclopedia/index.php/Holidays )
      • Космос и астрономия
        • Солнечная система ( http: // www.academickids.com/encyclopedia/index.php/Solar_System )
        • планет ( http://www.academickids.com/encyclopedia/index.php/Planets )
      • Спорт ( http://www.academickids.com/encyclopedia/index.php/Sports )
      • Хронология ( http://www.academickids.com/encyclopedia/index.php/Timelines )
      • Погода

      • ( http://www.academickids.com/encyclopedia/index.php/Weather )
      • Штаты США ( http: // www.academickids.com/encyclopedia/index.php/US_States )

      Информация

        Домашняя страница

      • ( http://academickids.com/encyclopedia/index.php )
      • Свяжитесь с нами ( http://www.

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

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