SDCast #104: по следам конференции PHPRussia’19

Товарищи! Представляю вам несколько коротких интервью, записанных на конференции PHPRussia’19, которая прошла 17 мая в Москве. В начале я немного рассказал в целом про конференцию, организацию, доклады и докладчиков. А далее идут 2 интервью:

* Первое интервью с Антоном Шабовтой про асинхронный PHP, многозадачность и долгоживучесть PHP-процессов.
* Второе интервью с Антоном Моревым про Rest API и GraphQL, плюсы и минусы подходов, области и задачи применения.

Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (http://patreon.com/KSDaemon), а так же ретвитом, постом и просто рассказом друзьям!

SDCast #103: в гостях Никита Попов

Ходит шутка, что как устроен PHP полностью знают только Никита Попов и Дмитрий Стогов. Так вот Никита в этом выпуске у меня в гостях! Последние несколько лет Никита активно участвует в развитии языка PHP, является автором многих интересных RFC, часть из которых уже внедрена в текущие версии PHP, и автором нескольких низкоуровневых библиотек, которые используются многими проектами.

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

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

Отдельно обсудили тему появления JIT в PHP. Что это даст PHP, какие плюсы несёт, какова сложность внедрения и трудозатраты на реализацию.

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

В завершение выпуска Никита рассказал про свой предстоящий доклад на PHPRussia ’19.

Читать далее

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.

Читать далее