Григорий Петров (Evrone), Почему Python и Ruby медленные?

Ғылым және технология

Почему Python и Ruby медленные?
Всего двадцать лет назад мир был простой и понятный. Python, Ruby и PHP были «скриптовыми», «интерпретируемыми» языками. А C++ и Java «компилируемыми, поэтому в сотни раз быстрее». А сейчас, в 2022 году, «задача четырех тел» решается на C++ всего лишь в два раза быстрее, чем на JavaScript. Но все так же в сотни раз быстрее, чем на Python или Ruby. Звучит несправедливо, и есть много хороших докладов, отвечающих на вопрос «что делать» и как обмазать все PyPy, Numba и Cython.
Я же расскажу о том, «кто виноват»: про компиляторы, байткод, ceval.c, виртуальные машины, JIT, нативные расширения и всё то, из-за чего мы слышим аргумент «Python и Ruby медленные» даже в тех случаях, когда это не так.

Пікірлер: 59

  • @maxdzyubak
    @maxdzyubak10 ай бұрын

    Дядь Гриша - лучший 😁🔥🔥

  • @alekseydaviden355
    @alekseydaviden355Ай бұрын

    Хорошая лекция! Докладчик молодец! Живо, интересно и доходчиво объясняет, манера подачи информации приятна!

  • @neolord50pro77
    @neolord50pro778 ай бұрын

    Так увлекла лекция, что только на середине заметил ковёр. Думал мне показалось сначала 😂

  • @ZlobniyTapoG

    @ZlobniyTapoG

    4 ай бұрын

    Так увлекла, что даже не услышал докладчика про то, что он впервые выступает на фоне ковра, лол.

  • @user-kq8nk5vj5r
    @user-kq8nk5vj5r10 ай бұрын

    Ковёр збс))

  • @user-tq5si1pj8j
    @user-tq5si1pj8j4 ай бұрын

    Ковёр красивый и это самое главное

  • @VaeV1ct1s
    @VaeV1ct1s11 ай бұрын

    Можно ссылку на интервью Гвидо?

  • @xm4dn355x

    @xm4dn355x

    10 ай бұрын

    Если я правильно помню, то вроде в этом интервью там говорилось про JIT-компиляцию) если Вы об этом) kzread.info/dash/bejne/X3iK28ydp5faaaw.html

  • @dmitriyobidin6049
    @dmitriyobidin60498 ай бұрын

    Всё красиво, но вот с Руби у меня всегда есть один вопрос. Зашел посмотреть на вакансии Еврона. Фулстек Руби + Реакт - 270к Мидл Реакт - 300к Го разраб - 380к Пайтон - 450к Почему Рубисты так проседают по ЗП? Если они деливерят так много value и так быстро? При этом им надо еще и фронт покрывать... Почему тогда не пойти просто обычным мидл реактером за бОльшие деньги? Или питонистом чуть ли не на х2 и без фронтенда...

  • @SuperRob1968

    @SuperRob1968

    7 ай бұрын

    А сейчас вообще нет

  • @user-lo1pf5yg8q

    @user-lo1pf5yg8q

    6 ай бұрын

    Проблема в том что руби - язык стартапов, если вы смотрите зп в РФ, где по некоторым причинам стартап культура не развита :) - рубисты будут проседать по ЗП. Если посмотреть долину, то там будет все подругому)

  • @dmitriyobidin6049

    @dmitriyobidin6049

    6 ай бұрын

    @@user-lo1pf5yg8q Так я же именно про еврон, они вот пиарят свою руби практику, говорят что рубисты пилят бизнес фичи и приносят бабки, а не просто пишут горы кода. Но почему-то даже у них рубисты получают ниже остальных. Так тогда вопрос, а зачем мне изучать руби и пилить фичи для бизнеса с повышенной эффективностью, если этот бизнес не хочет платить за эту повышенную эффективность.

  • @euor800
    @euor8008 ай бұрын

    Питон - такой же интерпретатор, как, скажем, Basic, но встроеный в браузер и, поэтому, может гонять скрипт как на локальном компе, так и исполнять библиотеки на сервере (на облаке). Когда скрипт Питона бежит локально - он медленнее компилированного бинарного кода, напр. на С. А скорость серверных библиотек замедляется вэб траффиком, хотя скорость их исполнения очень велика (напр. TensorFlow от Google)

  • @user-lz5wk4zx3l

    @user-lz5wk4zx3l

    8 ай бұрын

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

  • @user-xf4pb7pt7n

    @user-xf4pb7pt7n

    4 ай бұрын

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

  • @anatoly-k
    @anatoly-k Жыл бұрын

    что значит C# угас, на чём основано?

  • @user-gi4qu9do2v

    @user-gi4qu9do2v

    11 ай бұрын

    C# взлетел после угасания в пандемию и стал лучшей альтернативой джавы на новых проектах + микромягие форсили его под azure. Это хороший (я, как дотнетчик, считаю лучший) язык, если нужно писать много бизнесвого кода, но поддрежка сообщества у него очень слабая, поэтому стартапы делать риковано. Допустим, понадобится какая-то технология, которую не написали майкрософт - бэк для колаборативного редатора например. На с# нет готовых решений, а на js их много и они еще интегрированы с фронтовыми библиотеками. Получается, что на ноде\питоне из-за хайпа очень много полезных вещей, сделанных сообществом и это сильно упрощает жизнь и снимает риски с бизнеса. Иногда приходится заводить сервис на другом языке исключительно из-за того, что на нем есть технологий, которой нет на дотнете

  • @Edvard-Aliev

    @Edvard-Aliev

    9 ай бұрын

    @@user-gi4qu9do2vтак и живем!

  • @phat80

    @phat80

    9 ай бұрын

    @@user-gi4qu9do2vА самим написать слабо? Почему у всех привычка использовать только готовое? Берите пример с 1Сников 😂 Они пишут свои велосипеды постоянно, хотя их уже сотня-другая чужих.

  • @yuriytheone

    @yuriytheone

    9 ай бұрын

    Кому нужно говно C# если есть компилируемы C++?

  • @Edvard-Aliev

    @Edvard-Aliev

    9 ай бұрын

    @@yuriytheone под веб плюсы не топ

  • @user-rj4zb2co7l
    @user-rj4zb2co7l8 сағат бұрын

    Как так вышло что SpiderMonkey (Mozilla Firefox) оказался быстрее и безопасней V8?

  • @ixtirochiavlodlar
    @ixtirochiavlodlar11 ай бұрын

    Интересное Рубашка

  • @jjaard
    @jjaard8 ай бұрын

    +100 за ковёр 😂

  • @qazaqbalasy916
    @qazaqbalasy9168 ай бұрын

    Чуваки, это же советский ковер

  • @user-jj5mi1yl6p
    @user-jj5mi1yl6p Жыл бұрын

    Риторика о цене создания нового кода и цене выполнения кода не учитывает цену поддержки кода. Поддерживать код интерпретируемого языка с динамической типизацией значительно тяжелее чем код компилируемого языка со строгой статической типизацией.

  • @rugleb

    @rugleb

    10 ай бұрын

    Почему это?

  • @phat80

    @phat80

    9 ай бұрын

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

  • @artemiy_uo

    @artemiy_uo

    9 ай бұрын

    Прописывай типы где нужно на руби и рационе. Пиши тесты.

  • @vadimburavlev4773

    @vadimburavlev4773

    9 күн бұрын

    @@phat80 например, в js медленнее будет только в 1 запуск, далее VM проведет оптимизацию и поймет какие нужны типы и все будет работать быстро

  • @user-jj5mi1yl6p
    @user-jj5mi1yl6p Жыл бұрын

    Риторика о скорости JS немного насмерть разбиваются о факт того, что Go победил серверный JS уже много лет назад.

  • @yuriytheone

    @yuriytheone

    9 ай бұрын

    В твоих влажных фантазиях...😂😂😂

  • @sakuraburst9657

    @sakuraburst9657

    8 ай бұрын

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

  • @nadzhafox

    @nadzhafox

    8 ай бұрын

    "факт победы" это нокаутом или техническая?

  • @user-qt4fp6vx3f

    @user-qt4fp6vx3f

    8 ай бұрын

    Вижу кучу вакансий типа требуется переписать с РНР на го и с Пуитона на ГО. Чтобы было наоборот не видел

  • @mirvin11
    @mirvin119 ай бұрын

    Это вот у js простая семантика? Ну и бред

  • @xeleos

    @xeleos

    8 ай бұрын

    других языков не видел что ли? js проще всех

  • @ledest
    @ledest8 ай бұрын

    "Прикольно и с юмором о говнокодерстве для говнокодеров (чтоб они перестали комплексовать от осознания того, что они говнокодеры)".

  • @user-mo7ge4cw3x
    @user-mo7ge4cw3x9 ай бұрын

    Откуда у автора такая странная инфа про работу ядер процессора? И даже если бы это было правдой, все языки находятся в одинаковом положении и это никак не относится к медленности одних языков и скорости других.

  • @Edvard-Aliev

    @Edvard-Aliev

    9 ай бұрын

    Чего? 😂😂😂 не пиши больше такого в интернете, сгоришь со стыда под сраку лет если найдёшь в недрах интернета этот пост

  • @user-mo7ge4cw3x

    @user-mo7ge4cw3x

    9 ай бұрын

    @@Edvard-Aliev приятель, если ты не понял даже про что я написал, за что мне должно быть стыдно? Опиши глубины своего понимания моего поста и может быть действительно станет стыдно.

  • @Edvard-Aliev

    @Edvard-Aliev

    9 ай бұрын

    @@user-mo7ge4cw3x 17 лет в ИТ, столько всего уже сожрал что даже не хочу обсуждать заезженные темы, извини.

  • @user-dj1hk6m8k
    @user-dj1hk6m8k9 ай бұрын

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

  • @user-mo7ge4cw3x
    @user-mo7ge4cw3x9 ай бұрын

    Гриша, хватит оправдывать бездарных разработчиков языков, они медленные, потому что разрабочики языков никогда не интересовала скорость их работы. А когда их популярность поставила вопрос об этом, легаси код из которого они слеплены внутри уже не дает возможности их переделать, не начиная всю разарботку с нуля. И уж если рассматривать удобные для разработки языки программирования возьмем Лисп, а именно SBCL, который является на порядок более высокоуровневым чем те же питон и руби, и который имеет встроенный компилятор и работает со скоростью Си.

  • @SabFo_

    @SabFo_

    9 ай бұрын

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

  • @SabFo_

    @SabFo_

    9 ай бұрын

    По-вашему в Фейсбуке и Майкрософте питоном занимаются бездарные разработчики?)

  • @user-mo7ge4cw3x

    @user-mo7ge4cw3x

    9 ай бұрын

    @@SabFo_ нет. он не функциональный, он мультипарадигменный. наличие инструкций setq или (set! в схеме) делает его императивным, соответственно, компилятор должен обрабатывать эти ситуации, и уже нельзя оптимизировать код лиспа как код чисто функциональных языков. Скорости лиспу добавляет компилятор, по иронии судьбы носящий название python, ну теперь уже немного другой, но первый был именно с таким названием.

  • @user-mo7ge4cw3x

    @user-mo7ge4cw3x

    9 ай бұрын

    @@SabFo_ вы про что говорите, что они там в микрософте и в фейсбуке с питоном делают? Питон бездарен в рамках своей парадигмы: А давайте совместим синтаксис с форматированием. что у него еще есть отличное от других языков? да ничего. Ребята из больших компаний может что то и делают НА питоне, но что они делают для разработки самого питона? Они разрабатывают компилятор питона? нет. А именно это позволит кардинально ускорить код на питоне. Гвидо ван Россум этого сделать не может. Он разработал дизайн, внешний вид питона, язык верхнего уровня, он симпатичен(для новичков), но вглубь начинаются сложности, о чем и говорит Григорий(в других выступлениях). Это работа среднего уровня проектировщика, ну ладно, хорошего. Но не талантливого. Для лиспа первые компиляторы появились только в начале 90х годов, наверное спустя тридцать лет с разработки его дизайна. И их разработка была сделана действительно одарёнными разработчиками. Для питона таких разработчиков НЕТ, поэтому он и медленный.

  • @daggerok
    @daggerok9 ай бұрын

    Блевать хочется от слов гошечка и тд

  • @borismor1

    @borismor1

    8 ай бұрын

    Так гоферы сами так и говорят)

  • @Petyaumniy
    @Petyaumniy9 ай бұрын

    Жовто-блакитный значек с питоном оскорбляет чувства верующих в СВО!

  • @SabFo_

    @SabFo_

    9 ай бұрын

    Это классическое лого питона, оно всегда было в таких цветах. А вы раз так против Украины, то чего на украинском пишите про цвета?

  • @Sergei-di9en

    @Sergei-di9en

    8 ай бұрын

    @@SabFo_ а вы за Россию? поэтому на русском пишите? (д.бил)

  • @Petyaumniy

    @Petyaumniy

    8 ай бұрын

    @@SabFo_ Это ничего не отменяет. Так же как самая эффективная пропаганда говорит только правду (черепикает единичную подходящую правду из гор неподходящей). Так же и существовавший до этого значек занял нужное место в кадре. :) Это я пошутил так, если вы не поняли. Украинский добавляет шутке дополнительных красок.

  • @SabFo_

    @SabFo_

    8 ай бұрын

    @@Sergei-di9en потому что видео на русском и зрители на русском пишут комменты к нему, если ты не заметил. Если б видео и комменты были на англе, то и я бы писал на нём. Поэтому твоя аналогия говно, провокация не удалась, иди учись.

  • @Sergei-di9en

    @Sergei-di9en

    8 ай бұрын

    @@SabFo_ Он на украинском написал. Ноль интеллекта у поросят

  • @yuriytheone
    @yuriytheone9 ай бұрын

    Медленные, потому что интерпретируемые?

Келесі