Прекрасное интервью! Пожалуйста, пригласите на следующие подкасты Евгения Борисова или Павла Финкельштейна
@pvlnsk12 ай бұрын
Можно и без или😅 классно будет обоих в разные выпуски пригласить
@kirillgavrilov968111 күн бұрын
Интересный выпуск! Послушал с огромным удовольствием
@alexhali60033 ай бұрын
Вооо, неужели интересный выпуск! Гораздо лучше, чем очередная охуительная история про переезд в очередную страну.
@litterjunk86322 ай бұрын
ну и тут не обошлось без гунявого блеяния про "какой я в искусстве"
@pvlnsk12 ай бұрын
Липский легенда родом из Новосибирска, спасибо, что позвали🔥 На одном дыхании слушал, хочется регулярно потреблять подробный контент. Нет ли у Никиты подкаста?
@МитяКараченцев3 ай бұрын
Как это reflection ничего не стоит при исполнении? А как же SecurityManager? Каждый вызов метода или обращение к полю идёт через него. И если выключить рефлексию на уровне JVM, то он будет выбрасывать исключение. Всё это требует ресурсов.
@enginetica3 ай бұрын
Тяжело было за раз осилить из-за длины. Но за несколько заходов осилил - было интересно.
@jolymourner40143 ай бұрын
Супер интересно, спасибо ❤❤❤
@anyman7773 ай бұрын
лампово. Гость позитивный👍
@АлександрКовалев-с2о5я2 ай бұрын
Спасибо большое за выпуск
@cleverscript2 ай бұрын
а компилятор что не входит в платформу? (четвертый элемент)
@noraltavir3 ай бұрын
История с переходом из Оберона на Джаву у меня была та же, только лет на 10 позже.
@rudolfsikorsky79003 ай бұрын
Интересно, что это была за советская база, которая в 85 году позволила на коленке сделать 32-разрядную машину. На ум приходит только модульная 588 серия. Если на ней запилили, то уважуха, работа вообще не из лёгких...
@dmitriy44153 ай бұрын
А теперь посмотрите тесты java и JavaScript на bun и удивитесь "медленности" жса. Современные движки жс создают точно такой же байт код.
@АдамСмит-ы7р3 ай бұрын
Плохо вяжется утверждение о том, что динамические языки принципиально медленные, с тем, что динамические среды исполнения могут спекулировать и выносить предположения за пределы горячего кода - казалось бы, можно перед горячим циклом убедиться, что на вход переданы, как и обычно в этот метод, числа, после чего дробить их с той же эффективностью, что и в любом другом языке, чем тот же V8 довольно успешно и занимается
@valerysmirnov95353 ай бұрын
Не понимаю в чем проблема с этим утверждением. Динамическим языкам надо выводить типы в рантайме, чтобы все быстро работало. Но есть особенность, что многие пишут мегаморфный код - тут уже ни один JIT не сможет вывести типа
@АдамСмит-ы7р3 ай бұрын
@@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@MaruiInfantry3 ай бұрын
Приходи на собес и доказывай чо хошь. ))))
@АдамСмит-ы7р3 ай бұрын
@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@valerysmirnov95353 ай бұрын
@@АдамСмит-ы7р мы дошли до того уровня развития процессоров, что в айтишке стало мейнстримом делать вещи самым неэффективным образом Если я могу сделать нормально - сделают нормально Кроме C и плюсов есть куча компилируемых языков с большим количеством статических гарантий
@ns-bj6nj3 ай бұрын
Наконец-то!
@ДмитрийКарпич3 ай бұрын
Не холливара ради, просто мнение - в современном ландшафте с контейнеризацией ИМХО JVM выглядит лишним звеном. Кажется, что прямая упаковка в контейнер какого-нибудь собранного под Linux гошного сервиса выглядит более оптимальной по ресурсам и принципу работы. Ну и может быть еще когда-нибудь допилят WASM edge-servers. Пока все они что я видел чистый proof of concept и не вывозят ни по какому параметру.
@qandak3 ай бұрын
WASM же никто не будет руками писать... так какая разница с чего будем компилить? Если прям совсем не кошерно в Java AOT - есть реализации, где можно .class байткод в WASM компилить, со Scala и Kotlin можно сразу. А JVM в контейнерах такой же лишниий, как Node.js или любой vm рантайм, если контейнеров по несколько десятков штук на условном хосте.
@ДмитрийКарпич3 ай бұрын
@@qandak Соглашусь, рантайм в контейнере тоже костыль. Гошечка - для попсы и раст для любителей - и то и другое нормально пишется и собирается в бинарник, который в скратч и кладем. Все! И да, WASM руками конечно не будут писать. И не особо важно из чего он будет компилится. Тут скорее удобно, что у нас по сути есть рантайм для него в составе самого сервера. Хотя, по чесноку это примерно как NJS для nginx - на этом можно написать логику, но зачем? ИМХО, может я его не так понимаю, легко заблудится в маркетинговой мишуре.
@alexeialexei79103 ай бұрын
Привет! Часто среди коллег слышу похожее мнение. Короткий ответ - JIT компилятор. Чуть более развернуто - умные дядьки, которые в индустрии очень давно, убеждены, что будущее за интерпретируемыми языками. Именно из-за того, что агрессивные оптимизации их рантаймов + анализ реального исполнения кода будут давать преимущество в перфомансе над компилируемыми в машинный код языками.
@ДмитрийКарпич3 ай бұрын
@@alexeialexei7910 Привет! Ну, возможно, однако в компилируемых так же есть сходные инструменты. Например PGO в гошечке. Да и микросервисный подход скорее всего будет давать практически сразу оптимальный код, а общая тенденция все же идти в эту сторону, насколько я понимаю. Но в целом интересно, я думал что в основном просто по привычке идут в этом стеке, типа "Уже столько всего написано, что глупо менять", что тоже валидный аргумент, в общем-то.
@litterjunk86322 ай бұрын
Это тебе, чувак, не приходилось контейнеры для 86/arm паковать.
@qwertymangames18002 ай бұрын
1:48:00 Нельзя просто транслировать императивный год Java в Scala и ждать от этого изменений. Он как был так и остался императивным кодом. Конечно тут Java выиграет, ведь это нативный код платформы JVM. На Scala нужно писать в функциональном стиле, чтобы были все плюсы функционального подхода. И сравнивать императивный код на Java нужно с ФУНКЦИОНАЛЬНЫМ кодом на Scala. Иначе это сравнение вообще не имеет смысла. Как обычно делаем бенчмарки лишь бы показать какая Java крутая. В зависимости от бенчмарка можно сделать лидером вообще любой язык. Один бенчмарк не показатель эффективности.
@ChannelCheesecakeАй бұрын
Функциональный код на Scala до нескольких раз медленнее, чем императивный код на Scala
@qwertymangames1800Ай бұрын
@@ChannelCheesecake даже императивный код на Scala медленнее кода на Java потому что в Scala всё иммутабельное. Scala сильна не скоростью, а стабильностью. В функциональной парадигме достаточно математически доказать эффективность кода и он не будет вызывать багов. А если нужна скорость пиши на чистом Си с Ассемблерными вставками. ООП тоже сильно затратная в плане ресурсов парадигма. Особенно когда код работает на виртуальной машине как JVM - это очень медленно
@ChannelCheesecakeАй бұрын
@@qwertymangames1800 ну в Scala не всё иммутабельное. На равне с val есть var, на равне с scala.collection.immutable есть scala.collection.mutable. Последние 3 года работаю на Scala и я лично смотрел байткод, в который язык может компилироваться. Императивная Scala в среднем по скорости как императивная Java, где-то медленнее за счет сильной системы типов (дополнительные чеки), где-то быстрее по этой же причине (компиляторные оптимизации). А про «математически доказать» посмеялся)) Scala, Haskell и т.д. вообще не об этом - эти языки дают дополнительные гарантии, выражая их через типы, вот Coq, Idris это другое дело
@winandfx3 ай бұрын
Никак не разберусь, почему через сутки работы спарк-приложение в yarn падает с java heap space. И честно говоря, мне уже хочется знать о jvm ничего.
@winandfx3 ай бұрын
Оказалось, всё дело в том, что кто-то добавил sys.addShutdownHook из-за чего объекты не собирались GC
@litterjunk86322 ай бұрын
Именно поэтому новых приложений сейчас на Java уже не начинают :) Только тянуть унаследованный кал.
@AstorioQanto2 ай бұрын
@@litterjunk8632а на чем начинают, в основном?
@litterjunk86322 ай бұрын
@@AstorioQanto node, go, kotlin для себя rust
@milordplus2 ай бұрын
Интересны две вещи: 1 - у леди нога не отекла? 2 - а что если бы джентльмены тоже так задрали ноги?
@egomateАй бұрын
интересно то, почему ютуб рекомендовал вам это видео, а не вот эти вопросы, которые вы озвучили :)
@acrapid784516 күн бұрын
Было бы в точности то же самое, что и в данном случае, а также в случае, если бы ног было 0 в поле зрения.
@mierce3 ай бұрын
мужик как будто на тех.собесе сидит
@AxelMcAlen3 ай бұрын
Гость люто волнуется. Тяжело слушать. Предупреждайте гостей чтобы готовились к выступлениям, чтобы не тряслись ручки, голос и повествование было связным. В остальном, спасибо за труд
@litterjunk86322 ай бұрын
Наше поколение вообще не умеет связно и внятно говорить. У нас не было риторики в школе, а интернет пришел слишком поздно, не успели сформироваться навыки. Тем более чувак сразу работать начал с институтских проектов, без реальных клиентов с которыми нужно коммуницировать, потом продалься в большие компании, где то же главный и единственный необходимый навык социализации - лизать зад начальству.
@dmitriybradul77192 ай бұрын
Думаю, это стиль общения гостя.
@pvlnsk12 ай бұрын
Слушал в аудиоформате без видео, ничего подобного не заметил.
@AxelMcAlen2 ай бұрын
@@pvlnsk1 это же прекрасно!
@pvlnsk12 ай бұрын
@@AxelMcAlen я к тому, что не думаю, что Никита волновался) В этой теме он настолько хорош, что не думаю, что ему требовалась подготовка, он по сути живёт этим)
@Teemofey3 ай бұрын
Как можно уйти из Huawei в JetBrains, что за бред.
@alexmatveev72463 ай бұрын
Вы пробовали работать в китайской компании и культуре? Я вот от коллег наслышан, что это очень специфический опыт.
@Teemofey3 ай бұрын
@@alexmatveev7246 И пробовал, и наслышан - всё ок. В то же время в нынешней JetBrains атмосфера абсолютно больная.
@MaruiInfantry3 ай бұрын
Надоело быть лидом 50 китайев и захотелось на пенсию в микро-команды из 3-4 синьёрс-онли и лидс-онли?
@mrkandreev3 ай бұрын
Из Huawei [Novosibirsk, Russia] в JetBrains [Limassol (Lemesos), Cyprus], если говорить точнее. То есть из Russia в Cyprus.