SDCast #98: в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs

Мечтали ли вы когда-нибудь о такой платформе, где можно легко вызывать функции и модули, написанные на одном языке прямо в программе, написанной на другом языке? Сказка, не правда ли? А вот и нет! Есть такой проект, GraalVM, одной из идей которого как раз и является полиглот интероп платформа. В этом выпуске у меня в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs, организатор VirtualJUG и митапов GDG Tartu. И в этом выпуске мы конечно же говорим про GraalVM.

GraalVM — высокоэффективная универсальная виртуальная машина для разных языков программирования, поддерживающая многие популярные языки: Java, Kotlin, Scala, JavaScript, Python, Ruby, R и даже С и С++ и им подобные. GraalVM стирает рамки между языками программирования и позволяет интероп прямо в рантайме,. Так же, интересной особенностью GraalVM является способность компилировать JVM bytecode в машинный код ahead-of-time, создавая standalone образы обычных Java-программ, которые не зависят от JVM.

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

Отдельно поговорили про компилятор Graal и ahead-of-time (AOT) компиляцию, плюсы и минусы такого подхода, ограничения и эффективность. Олег рассказал про специальную виртуальную машину SubstrateVM, чем она отличается от прочих JVM и какие дополнительные задачи решает.

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

Читать далее

SDCast #95: в гостях инженеры Excelsior JET

Встречайте 95-й выпуск SDCast’а, в котором мы говорим про мир Java и JVM. В этот раз у меня в гостях ребята из компании Excelsior, чей флагманский продукт – это Excelsior JET, реализация Java™ SE на основе статической компиляции. Поэтому в этом выпуске мы обсуждаем много технических аспектов реализации Java, как рантайма, так и компилятора, утилит мониторинга и производительности и многое другое.

Итак, в этом выпуске приняли участие:

  • Никита Липский, один из инициаторов проекта Excelsior JET, и на данный момент руководитель продуктовго отдела JET.
  • Павел Павлов, в проекте с 1998 года, отвечает за компиляторную часть проекта, архитектуру ядра JVM, обучает и курирует стажёров и студентов.
  • Иван Углянский, один из разработчиков рантайма: GC, загрука классов, многопоточность, профилирование и т.д.

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

Далее ребята рассказали про Excelsior JET:

  • Чем она отличается от других?
  • Какие есть особенности и фичи?
  • На чём написана?
  • Как выглядит архитектура системы в целом, какие есть модули, компоненты что и как взаимодействует
  • Runtime и компилятор, как они устроены, какие алгоритмы используют
  • Вопросы оптимизации производительности как компилятора, так и рантайма

В процессе дискуссии обсудили в целом JIT и AOT подходы, достоинства и недостатки каждого, в каких случаях выигрывает один вариант, а в каких другой. Вспомнили и про другие реализации JVM и интересные проекты в этой области, например набирающий популярность GraalVM.

Читать далее

SDCast #54: в гостях Олег Анастасьев, ведущий программист Одноклассников

Встречайте 54-й выпуск SDCast’а, который посвящен разработке высоконагруженных систем. У меня в гостях Олег Анастасьев, ведущий программист Одноклассников, спикер на конференциях по Java и Cassandra, эксперт в области распределенных и отказоустойчивых систем.

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

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

Читать далее

SDCast #53: в гостях Андрей Солнцев и Алексей Виноградов, разработчики Selenide

Встречайте 53-й выпуск подкаста! В этот раз речь пойдёт о тестировании. У меня в гостях Андрей Солнцев, автор фреймворка для тестирования Selenide, разработчик из codeborne и Алексей Виноградов, независимый консультант, модератор подкаста Radio-QA.

Андрей рассказал про то, как появился проект Selenide, чего не хватало на тот момент в Selenium и как всё начиналось. Рассказал о том, как он сам превратился из просто разработчика в разработчика-тестировщика :)

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

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

Ребята рассказали про то, как устроен проект Selenide изнутри: как идёт разработка, как устроено тестирование самого фреймворка для тестирования :), насколько велико сообщество вокруг проекта и другие смежные вопросы. Алексей так же рассказал о ближайших и дальнейших планах по развитию проекта.

Читать далее

SDCast #41: в гостях Андрей Бреслав, руководитель проекта Kotlin в компании JetBrains

sd-podcast-logo Рад представить вам 41-й выпуск подкаста! Этот эпизод посвящен языку Kotlin, у меня в гостях Андрей Бреслав, руководитель проекта Kotlin в компании JetBrains.

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

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

Так же Андрей рассказал, почему в качестве платформы была выбрана JVM, рассказал некоторые технические подробности реализации проекта. Подробно рассказал про interop с Java, о том, как можно начать использовать Kotlin в уже существующем проекте на Java сейчас, и как они у себя, в компании JetBrains уже начали это делать.

Не обошли мы сторой и социальную составляющую проекта. Код языка Kotlin выложен в open source на github. Андрей рассказал про сообщество, которое сформировалось вокруг проекта, и как они с ним взаимодействуют, обсуждают запросы на новый функционал, баг-репорты и все прочее.

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

Читать далее