Muita gente me criticou pq eu falei mal da tabela, que vêm de um estudo. Tem três pontos que eu quero levantar aqui: 1) O estudo é extremamente controverso e existem várias críticas a ele em outros estudos 2) O ponto central do vídeo é explicar que a linguagem não existe de forma isolada e sim num ecossistema. Muita gente conflita a definição formal de uma linguagem com a implementação dela. São coisas diferentes. Sim, atualmente não tem como escrever um código em Python e fazer ele ser tão rápido quanto Rust, esse ferramental não existe. Mas não tem como cravar a performance de Python em um número específico, dado que no meu exemplo eu mostrei uma variabilidade de mais de 10x na velocidade de execução só trocando de runtime. 3) na tabela mostra Javascript como tendo 4 de eficiência e typescript 21. Ou seja, Javascript gastaria 20% da energia que typescript. Não tem como levar isso a sério, só esse número descredibiliza completamente a tabela como um todo. Pra quem nunca mexeu com Typescript, o negócio é: seu Typescript vira Javascript antes de vc botar no server pra rodar.
e PERL é super rapido, muito estranho tá em ultimo, mas enfim. igual Java acima de Pascal e Fortran que é compilado e são super rapidos kkk.. totalmente sem noção mesmo.. e do Typescript nao pode ser esse abismo ai tb não.
fanboy de Python? blz? 1 - diferença de perfomance entre linguagens é um fato! 2 - diferença de perfomance entre bibliotecas da mesma linguagem tbm é um fato! mais essa tabela ai tbm n diz muita coisa, pois n diz os problemas que tentaram ser resolvidos e nem a configuração do ambiente ultilizado. no geral oque acho: C é rapido e usa pouca memoria, mas é complicado de dar manutençao. Java tbm é rapida, mais haja memoria ram. Node vem sendo melhor que Java para problemas com I/O.(sim, chamei Node de linguagem!) Python rapido de programar, mais todo mundo fala que é muito lento! escolha qual dessas atende melhelhor o seu problema e seja feliz!
Tem linguagem lenta sim. Quanto mais de alto nível a linguagem é mais vai ter overhead. O compilador faz um bom trabalho de otimização, mas mesmo assim ele não faz tudo. Uma linguagem mais próxima do hardware sempre tem menos overhead.
Exato, por isso temos assembly e python nas duas extremidades no contexto de performance.. quanto mais controle sobre instruções do processador, mais eficiência você consegue ter
boa. já tive um exercício na faculdade chamado "pq n usar python", aí a gente tinha q fazer um msm código simples O(n²) em c e em python, rodar os códigos e observar o abismo de tempo q tem de uma execução pra outra, ainda mais quando o C é compilado com -O3. a ideia por trás era discutir justamente o tema do vídeo.
Parece-me errado uma aula de faculdade ter um exercício nomeado "Porque não usar python" e comparar um algorítimo de complexidade O² rodando em C e Python, principalmente considerando que nenhuma linguagem de script como JS, python, PHP, Ruby seriam realisticamente usadas para resolver problemas de performance / desempenho. O único compilador atualmente que gera código de execução tão rápida quanto C é o rustc do Rust e ninguém usa rust ou c para 'codar' carrousel de banners em e-commerces, assim como ninguém usa Python e JS para solucionar problemas de desempenho ou aprimorar complexidade algorítmica de insert / sort / search .
Achei legal a explicação. Mas o tanto de gente que só pelos comentários sai com "ain, Python é rápido..", "ain mais a linguagem tem bibliotecas que....", as outras linguagens também tem. Existem aplicações e limitações, como toda linguagem, cada tampa com sua panela.
Parabéns pelo ótimo vídeo e explicação. A grande maioria das pessoas resolve aprender uma linguagem por conta dessas tabelas quando na verdade talvez elas nunca vão usar os recursos que elas admiram.
Depende do contexto, um exemplo do ponto de vista gráfico: C tem diversas libs gráficas, rust não tem, as que rust tem, rodam em cima da linguagem C, sendo assim, só poderíamos saber que Rust é tão performatica quanto C nesse campo, somente o dia em que Rust tivesse um lib gráfica toda em Rust...Vamos esperar então uma opengl nativa em Rust ou quem sabe um directX... Rust engatinha ainda para poder ser comparada a C ou até mesmo C++! Agora, Python é uma linguagem extremamente lenta, isso não resta dúvida, até php roda mais rápido que python!
As bibliotecas que realmente precisam de mais desempenho (de ciência de dados tensorflow, numpy, pytorch, scipy, ..) têm partes escritas em outras linguagens, C, C++, CUDA, .. para serem mais rápidas.
Não entendi o ponto do vídeo na matéria de compiladores a gente entende que a descrição da linguagem e a compilação ou interpretação estão diretamente ligadas, uma descrição de comportamento é literalmente inútil se vc nao tem como executar, ou seja a transcrição da liguagem pra byte code é a liguagem, vc pode ter diferentes compiladores que vao favorecer diferentes aspectos mas isso continua fazendo parte de um todo, e hj nao temos nada q faca python chegar perto do c, acho q uma critica valida seria que o estudo nao forneceu em qual ambiente cada teste foi rodado. E quando se fala de gastar mais energia estamos falando diretamente da quantidade de instruções usadas para fazer uma mesma atividade, se o interpretador padrao de uma lingugem insere mais instrucoes ele naturalmente vai gastar mais energia. Não existe separação de linguagem como algo abstrato pelo meno nao da forma como eu entendi do video
Parabéns seus conteúdos são muito muito bons, para ter noção já fiz alguns cursos de python e nunca tinha visto operador de XOR, até um de seus vídeos. Você tem conteúdo amigo tudo de bom
5 месяцев назад+1
Se for o mesmo código realizando a mesma tarefa em linguagens diferentes, a diferença de desempenho pode ser atribuída principalmente às características e eficiência da implementação da linguagem em si. Algumas linguagens são projetadas para otimizar certos tipos de operações ou têm características que facilitam a otimização do código, enquanto outras podem ter sobrecargas adicionais que afetam o desempenho. Por exemplo, linguagens de baixo nível, como C e C++, tendem a oferecer mais controle sobre o hardware e a alocação de recursos, o que pode resultar em código mais eficiente em termos de desempenho. Por outro lado, linguagens de alto nível, como Python ou Ruby, muitas vezes priorizam a legibilidade e a produtividade do desenvolvedor em detrimento do desempenho bruto. Além disso, diferentes linguagens podem ter diferentes implementações de compiladores ou interpretadores, o que pode afetar significativamente o desempenho do código. Por exemplo, uma linguagem como Python pode ser implementada por meio de diferentes interpretadores, como CPython, PyPy ou Jython, cada um com suas próprias características de desempenho. Portanto, mesmo que o código seja o mesmo em diferentes linguagens, ainda pode haver variações significativas de desempenho devido a diferenças nas características das linguagens e nas implementações de compiladores/interpretadores.
As pessoas precisam aceitar que suas linguagens são mais lentas que outras. Linguagens interpretadas essencialmente são mais lentas que as compiladas por uma questão de funcionamento, quer mais velocidade? Compile, quer mais ainda? anexe alguma lib otimizada feita em outra lang. Quer mais velocidade? Muito provavelmente vc ta usando a linguagem em propósito indevido ou alem do seu escopo. Alem disso, langs focadas em um propósito específico tendem a ser mais velozes, as de uso geral acabam tendo que lidar com mais features e acaba aumentando sua complexidade, afetando diretamente seu desempenho. N tratem linguagem como animal de estimação, cada uma é melhor em uma coisa que outra. N faz sentido usar C para inteligência artificial e analise de dados. Ou querer usar Python para codar drivers ou coisas que requerem uma atenção maior com o hardware.
falou tudo, sem contar que na planilha de energia, não é só tempo de processamento, memoria ram utilizada tambem foi em conta, muda muito de LP para LP
@@234trhbgfdert pois é man, e olha que nem sou mais da área a uns anos. Na minha opinião parece que tratam linguagem como comida favorita e para esse pessoal a lang se resume em "velocidade", parece que não lembram do propósito de uso e não consideram que tipo de problema tão precisando resolver, fora que parecem que nem pensam na questão de dar manutenção no código, parece que pensam em codar as coisas uma vez para nunca mais, por isso que os programadores que dão manutenção sofrem tendo que revisar código de terceiros e acha cada pérola.
@@sharewareX to falando de qualquer lang que forcem velocidade man, mas é comum msm fazerem isso no python justamente por ele ser lento. Quando forçam d+ é sinal que tem algo de errado, ou quer coisa demais ou tá usando a lang além do que dá.
Assim como explicado nesse video, tambem acredito que linguagem nao define performance, ja que linguagem nao passa de um especificacao (eu posso usar llvm e criar um compilador para python que gere um binario tao rapido quanto os binarios compilados a partir de codigo C/C++). Antes mesmo de assistir esse video, eu ja entendia dessa forma. Assim como tambem nao concordo, que usar C pra IA nao faz sentido. Veja bem, toda lib python para IA usa C/C++. A diferenca que o pessoal esta mais acostumado a usar python para essas coisas. O problema que hoje em dias as pessoas tem medo de implementar coisas do zero, e testarem solucoes diferentes para problemas existentes que ja foram resolvidos (talvez nao da melhor forma). Dito isso, continua achando python uma linguagem ruim. Mas ai e questao de gosto, e mesmo nao curtindo python, ainda ha casos de uso (pra mim, prototipagem rapida).
Muito boa a explicação, realmente se considerarmos apenas a execução, a linguagem não impactaria na performance. Mas a forma que cada linguagem compila/interpreta não impactaria? porque mesmo sem a otimização de código, vamos ter mudanças. E ainda podemos descer mais e pensarmos em coisas como GC para linguagens gerenciadas que impactam na performance e VMs tipo Java e Erlang que mudariam a forma como o sistema operacional trata a execução.
Acho que o mais importante a saber é isto: A eficiência (ou “velocidade”) de uma linguagem/runtime/fodase está diretamente relacionada ao nível de controle que o usuário tem sobre operações do processador. Por isso temos assembly e python nas duas extremidades no contexto de performance. Saber o básico de como um processador funciona (e um pouco de assembly) te permite visualizar mentalmente o que seu código está fazendo por baixo dos panos, principalmente em linguagens baixo nível
Nossa! Já cansei de discutir sobre isso na internet. Tem muita gente que não entende nada de benchmarks, só compara uns loops em Python com outras linguagens e depois sai propagando por aí que Python é lento. Eu cansei de tentar colocar uma razão na cabeça dessa gente...
Mas se eu fizer um código em python com as melhores otimizações, ele sempre vai rodar muito mais lento que C, Rust, C++ e etc otimizados, dito isso python é mais lento msm...
@@TheGabriel0705 Não é verdade isso q vc disse. Ele vai rodar *um pouco* mais lento, só isso. Fazendo as otimizações corretas, as diferenças não são grandes.
É por isso que gráficos e tabelas, sem contexto e informações intrínseca do modelo de ánalise, não servem para nada. Por exemplo, em Python, existem bibliotecas para computação intensiva que otimizam a complexidade assintótica (Big O), tornando-o consideravelmente mais eficiente. No entanto, se você implementar as mesmas otimizações em C, o desempenho será ainda melhor.
assim mano eu entendo seu ponto, porem ficou confuso o inicio, ainda mais quando as linguagens estavam sendo tratas como isoladas e não usando outras coisas, naquele twitte ele tava claramente tratando suas formas puras da linguagem, e sim no mundo real do trabalho raramente usaremos linguagme de alto nivel em sua forma padrão porem n invalida oque ele ta tentando passar
Só o fato do python ter OOP e recursos genéricos já adiciona alguns custos (característicos de se usar OOP ou tipagem dinâmica). Isso se soma ao fato de ser uma linguagem interpretada (Embora seja a característica principal, python tmb é compilado pra .exe se usar o pyinstaller que é a minha recomendação). Apesar quaisquer considerações, Python tem o seu valor enquanto uma linguagem bem geral e de uso simples. Entretanto, há de se reconhecer que áreas específicas (Computação Gráfica, Jogos) podem depender de um processamento bem rápido (onde o menor atraso pode prejudicar), demandando alternativas mais rápidas (como C, C++ ou Java, entre outras).
legal q teve q subir 10x o numero de elementos na array pro node ter a mesma performance de python com numba. Na real, python é uma decepção em performance. Js td mundo reclama, mas pra uma linguagem (runtime) q faz boxing unboxing TODA HORA, ela é absurdamente rápida. Se c# fizesse td com boxing unboxing perdia de lavada até do v8.
Sim, em nenhum momento existe qualquer justificativa de porque typescript é 5x pior que javascript. Tem que debuggar o CLGB e descobrir que é porque tem um erro de config no Typescript que fez o algoritmo de fannkuch-redux falhar. O estudo também é de antes de Bun 1.0. Não faz sentido cravar a performance de uma linguagem em um número específico
A tabela é estranha de fato, mas acho que é mais esclarecedor criar um programa que realiza um cálculo extenso (um bubble sort com milhares de valores vai) e fazer o teste em todas as linguagens. C vai ganhar sempre e Python vai sempre perder na maioria das comparações. Suas soluções podem ajudar o runtime, mas você não vai alcançar os patamares de C ou Java. Você precisa analisar a finalidade do seu projeto, a capacidade da equipe se tiver e como se pretende fazer a manutenção. O resto é alcançável ou descartável.
Mas o Runtime é diretamente correlacionado com a energia gasta pela máquina para executar o script? Pois o tempo de execução é apenas uma das variáveis utilizadas por ele pra gerar a tabela.
A principio imagino que sim, porque na teoria se demora mais significa que precisou fazer mais operações. Mas imagino que o buraco é mais embaixo se colocamos outras variáveis em jogo como o chipset. Ou por exemplo, dependendo do código pode ser mais rápido executar diretamente em uma placa de vídeo
Varios dos seus argumentos não são bem verdade. Por exemplo, no video vc não conseguiu desacoplar o python do interpretador. Vc compilou uma biblioteca com clang, mas carregou ela usando o interpretador nativo do python. Ou seja, o argumento de que python não é lento e sim o runtime não é bem verdade, pq o python depende exclusivamente do runtime. Logo dizer que o python é lento é uma forma indireta de falar sobre o interpretador. E eu nem vou comentar daquele código nojento em C que foi gerado sabe lá deus como; não tem como saber se ele tá bom de verdade, otimizado como deve, etc. Mesmo se aquela biblioteca for rápida, ela ainda tá com gargalo do interpretador do python. Lembrando também que nem sempre conversões dão certo e carregamento de bibliotecas nativas pro python tb. O seu segundo método, usando o JIT Numba, também faz uso do interpretador para funcionar. E JIT é muito mais lento do que compilação (visto Java e C# vs C/C++), até pq no próprio site do Numba ele diz que converte PARTES do código de python e numpy para código de maquina ( com compilação para código intermediario no processo, provavelmente). Existe uma outra questão q eu quase tava me esquecendo: python pressupõe gerenciamento automatico de memória. Isso categoriza a linguagem como mais lenta em relação a C/C++. Sim, a linguagem! Pq o interpretador sempre vai ter que dar suporte à essa feature da linguagem. O esforço pra defender python e não aprender a usar uma linguagem de verdade é grande hoje em dia.
Acho que poucas pessoas realmente se referem a linguagem pela definição formal de linguagem, geralmente falamos do ecossistema e mais quando tem algum interpretador diferente do padrão geralmente especificamos também. Quero acreditar que quando alguém fala que Python é lento ele sabe tudo isso e tá se referindo certo 😅
Mesmo que Python demore pra executar as coisas isso não dita o consumo de energia. Depende muito mais do hardware do que qualquer outra coisa. Mesmo que fosse o caso não é viavel vc usar linguagens de baixo nivel pra tudo. Vc pode estar sujeito a perdas mais vitais tipo sofrer um ataque de buffer overflow.
@GutoGalego Guto, é possível aplicar o mesmo pensamento em frameworks? Ex: No Python temos o Django, teria como deixar aplicações Django mais performáticas?
Parabéns por esclarecer este velho mito. Muita gente usa binários pré-compilados do Python sem saber: os módulos numpy e o scipy, por exemplo, contém código escrito em C, que é chamado para execução ao rodar o script. Por isso é tão usado em estatística e outras aplicações envolvendo cálculos complexos, com uma performance excelente.
sim, isso é oq eu sempre falo para algumas pessoas que dizem que python é lento, a maioria dessas pessoas, não compreendem sobre POO, etc, ou seja, o entendimento sobre as linguagens é superficial. isso em tese na maioria das vezes é culpa do aprendizado de apenas uma linguagem, no caso JS. até mesmo as pessoas que aprendam C, acabam não sabendo a utilização de 'despejo de memória'.
No contexto atual, as linguagens interpretadas serão sempre sensivelmente mais lentas. Entretanto, essa diferença tende a diminuir no futuro porque (1) as máquinas ficarão mais rápidas e a diferença nominal tenderá a diminuir; e (2) os runtimes se tornarão cada vez melhores (esperamos). Além disso, temos que ver que performance é apenas uma variável. O peso dela na equação vai depender da necessidade de performance. Pra sistemas que vivem mais de IO do que CPU, a performance isolada tem peso menor. Nas primeiras aulas de qualquer curso de Engenharia de Software a primeira coisa dita é que a Engenharia de Software surgiu pra resolver problemas de qualidade do software. Pois bem, linguagens de alto nível surgiram para abstrair o hardware e facilitar a manutenção do software. Essa deveria ser a primeira variável observada e não a performance. Não que a performance não seja importante, mas ela é vazia se não tiver contexto e necessidades bem definidas. Também tem o fato de que "A ser lento" tem nada a ver com "A ser mais lento que B". Se A atende a sua demanda de perfomance, que se dane B. A propósito, excelente vídeo. E você poderia até ter sido mais rápido ainda...bastava ver que JRuby é mais rápido que Ruby mesmo sendo a mesma linguagem. A tabela em si já mostra que não se trata de linguagens, mas de runtime, mesmo as pessoas não vendo isso.
Python é muito boa!!! Uso muito pra fazer algumas automações e alguns sistrmas de consulta em banco de dados para minhas aplicações devido sua infinidades de bibliotecas. E sim, é muito boa, vai atender 99% dos casos! Mass, dependendo da aplicação e sua complexidade, não vai ser tão "vantajosa".
Eu creio que foi uma falha de quem fez aquele ranking, considerar a maneira mais "comum" de executar cada linguagem e 99% das pessoas rodam python interpretado. Mas parabéns pelos esclarecimentos.
Pessoal fala muita besteira, não aceita o obvio, você citou Python com uns runtimes, seja real, ninguém usa isso em produção não, django, fastapi, numpy, pandas; bibliotecas e frameworks de mercado não usa esses runtimes, são falhos, betas, não testado, não confiáveis, pra quem é leigo, leva isso como verdade fácil. mas a linguagem ser mais lenta, não quer dizer que ela é ruim, a perda de velocidade foi agregada a ganho em diversos outros fatores. pessoal tem de entender que nenhuma linguagem serve pra tudo, é bom em tudo, Python não tem performance, igual C ser extremamente improdutivo para desenvolvimento web. Qual a dificuldade de entender isso?
Super discordo até pq no fim quando falando da linguagem falando da escrita até rodar ne. Alias tem linguagem com runtime diferentes e por isso são classificadas por eles mas daqui a pouco vem o Mojo e salva a Python. Então n precisa disso tudo ^^ e acho q hj Zig passo C já ne
depende do que for fazer, usa a fucki%% ferramenta certa
5 месяцев назад
Linguagem boa é a que resolve o problema de forma satisfatória perante às restrições... seja lá quais forem. O resto é conversa mile, papo de militante em favor de linguagem A ou B.
O vídeo em si é excelente mas o título é clickbait kkk no fim do video ele fala que não tem como um código Python ser mais rápido que Rust por mais que você otimize o runtime.
Hoje em dia. MOJO (se entregar o que promete) diz conseguir rodar Python mais rápido que Rust. Que é o ponto inteiro do vídeo, a linguagem é uma definição formal, a implementação que vai rodar é outra coisa. Sem fazer a distinção do que é lang e o que é runtime, a comparação fica rasa e sem sentido. A tabela por exemplo foi feita antes do Bun 1.0. Se a gente usar Bun os números de JS vão ser diferentes. A tabela também tem um erro em Typescript (por isso deu 5x pior que JS).
@@lucaseduardo2810 eu assisti e voce? pode responder nem ser falando meia verdade? Diferentes linguagens processam diferentemente e consomem diferentes quantidade de memoria, onde isso está errado?
Primeiro, concordo! Tem sim fatores diferentes a se levar em consideração, e no final o que mais importa é escrever um código bem otimizado. Contudo, acho que tem muito cruzadismo por cima do python. A linguagem existe porque ela fácil e conveniente, não precisa ser a melhor em performance também! Código o mais rápido o possível sempre vai ser nas linguagens compiladas de baixo nível, como C ou Rust
Muita gente me criticou pq eu falei mal da tabela, que vêm de um estudo. Tem três pontos que eu quero levantar aqui:
1) O estudo é extremamente controverso e existem várias críticas a ele em outros estudos
2) O ponto central do vídeo é explicar que a linguagem não existe de forma isolada e sim num ecossistema. Muita gente conflita a definição formal de uma linguagem com a implementação dela. São coisas diferentes. Sim, atualmente não tem como escrever um código em Python e fazer ele ser tão rápido quanto Rust, esse ferramental não existe. Mas não tem como cravar a performance de Python em um número específico, dado que no meu exemplo eu mostrei uma variabilidade de mais de 10x na velocidade de execução só trocando de runtime.
3) na tabela mostra Javascript como tendo 4 de eficiência e typescript 21. Ou seja, Javascript gastaria 20% da energia que typescript. Não tem como levar isso a sério, só esse número descredibiliza completamente a tabela como um todo.
Pra quem nunca mexeu com Typescript, o negócio é: seu Typescript vira Javascript antes de vc botar no server pra rodar.
e PERL é super rapido, muito estranho tá em ultimo, mas enfim. igual Java acima de Pascal e Fortran que é compilado e são super rapidos kkk.. totalmente sem noção mesmo.. e do Typescript nao pode ser esse abismo ai tb não.
fanboy de Python? blz?
1 - diferença de perfomance entre linguagens é um fato!
2 - diferença de perfomance entre bibliotecas da mesma linguagem tbm é um fato!
mais essa tabela ai tbm n diz muita coisa, pois n diz os problemas que tentaram ser resolvidos e nem a configuração do ambiente ultilizado.
no geral oque acho:
C é rapido e usa pouca memoria, mas é complicado de dar manutençao.
Java tbm é rapida, mais haja memoria ram.
Node vem sendo melhor que Java para problemas com I/O.(sim, chamei Node de linguagem!)
Python rapido de programar, mais todo mundo fala que é muito lento!
escolha qual dessas atende melhelhor o seu problema e seja feliz!
Tiago, "mais" e "mas" tem diferença. Ok?
Continue com a excelente qualidade dos seus videos e explicações. Parabéns Augusto!
pqp, apareceu um vídeo seu por acaso, abri ele por curiosidade, e agora to maratonando os videos. Que cara técnico da poha, mt brabo
Tem linguagem lenta sim. Quanto mais de alto nível a linguagem é mais vai ter overhead. O compilador faz um bom trabalho de otimização, mas mesmo assim ele não faz tudo. Uma linguagem mais próxima do hardware sempre tem menos overhead.
Exato, por isso temos assembly e python nas duas extremidades no contexto de performance.. quanto mais controle sobre instruções do processador, mais eficiência você consegue ter
Seu conteúdo é excelente!
Explicação simples e direta, parabéns!
Primeira vez que vejo um vídeo decente sobre isto. Há anos que tento explicar isto. Bom vídeo.
um dos melhores canais sobre programação que eu já vi, mto foda
boa. já tive um exercício na faculdade chamado "pq n usar python", aí a gente tinha q fazer um msm código simples O(n²) em c e em python, rodar os códigos e observar o abismo de tempo q tem de uma execução pra outra, ainda mais quando o C é compilado com -O3. a ideia por trás era discutir justamente o tema do vídeo.
Esse O(n³) é a complexidade computacional ?
@@lucaseduardo2810 isso. por exemplo:
for i:
for j:
sum += i + j
é O(n²)
@@luizfilipe7630 Eu simplesmente não tive essa aula porque o professor só apareceu 3 vezes. Ele só passou a introdução.
@@lucaseduardo2810 aí é foda kkkkkkk. mas ve umas vídeo aula q rapidinho vc entende a ideia, n é difícil n
Parece-me errado uma aula de faculdade ter um exercício nomeado "Porque não usar python" e comparar um algorítimo de complexidade O² rodando em C e Python, principalmente considerando que nenhuma linguagem de script como JS, python, PHP, Ruby seriam realisticamente usadas para resolver problemas de performance / desempenho. O único compilador atualmente que gera código de execução tão rápida quanto C é o rustc do Rust e ninguém usa rust ou c para 'codar' carrousel de banners em e-commerces, assim como ninguém usa Python e JS para solucionar problemas de desempenho ou aprimorar complexidade algorítmica de insert / sort / search .
Pô cara seus videos são excelentes, uma otima explicação, simple e objetiva! Parabéns
Esse canal é ouro!
Achei legal a explicação. Mas o tanto de gente que só pelos comentários sai com "ain, Python é rápido..", "ain mais a linguagem tem bibliotecas que....", as outras linguagens também tem. Existem aplicações e limitações, como toda linguagem, cada tampa com sua panela.
Parabéns pelo ótimo vídeo e explicação. A grande maioria das pessoas resolve aprender uma linguagem por conta dessas tabelas quando na verdade talvez elas nunca vão usar os recursos que elas admiram.
Cara, seu conteúdo é muito bom. Continue pra sempre.
Depende do contexto, um exemplo do ponto de vista gráfico:
C tem diversas libs gráficas, rust não tem, as que rust tem, rodam em cima da linguagem C, sendo assim, só poderíamos saber que Rust é tão performatica quanto C nesse campo, somente o dia em que Rust tivesse um lib gráfica toda em Rust...Vamos esperar então uma opengl nativa em Rust ou quem sabe um directX...
Rust engatinha ainda para poder ser comparada a C ou até mesmo C++!
Agora, Python é uma linguagem extremamente lenta, isso não resta dúvida, até php roda mais rápido que python!
Finalmente eu encontrei alguem que levantou essa bola!!
excelente
la ele
@@vSouzaEu hahahahaha
As bibliotecas que realmente precisam de mais desempenho (de ciência de dados tensorflow, numpy, pytorch, scipy, ..) têm partes escritas em outras linguagens, C, C++, CUDA, .. para serem mais rápidas.
Não entendi o ponto do vídeo na matéria de compiladores a gente entende que a descrição da linguagem e a compilação ou interpretação estão diretamente ligadas, uma descrição de comportamento é literalmente inútil se vc nao tem como executar, ou seja a transcrição da liguagem pra byte code é a liguagem, vc pode ter diferentes compiladores que vao favorecer diferentes aspectos mas isso continua fazendo parte de um todo, e hj nao temos nada q faca python chegar perto do c, acho q uma critica valida seria que o estudo nao forneceu em qual ambiente cada teste foi rodado.
E quando se fala de gastar mais energia estamos falando diretamente da quantidade de instruções usadas para fazer uma mesma atividade, se o interpretador padrao de uma lingugem insere mais instrucoes ele naturalmente vai gastar mais energia.
Não existe separação de linguagem como algo abstrato pelo meno nao da forma como eu entendi do video
O RUclips me indicou seu vídeo "do neida", e caramba, que conteúdo bom!
Parabéns seus conteúdos são muito muito bons, para ter noção já fiz alguns cursos de python e nunca tinha visto operador de XOR, até um de seus vídeos. Você tem conteúdo amigo tudo de bom
Se for o mesmo código realizando a mesma tarefa em linguagens diferentes, a diferença de desempenho pode ser atribuída principalmente às características e eficiência da implementação da linguagem em si. Algumas linguagens são projetadas para otimizar certos tipos de operações ou têm características que facilitam a otimização do código, enquanto outras podem ter sobrecargas adicionais que afetam o desempenho.
Por exemplo, linguagens de baixo nível, como C e C++, tendem a oferecer mais controle sobre o hardware e a alocação de recursos, o que pode resultar em código mais eficiente em termos de desempenho. Por outro lado, linguagens de alto nível, como Python ou Ruby, muitas vezes priorizam a legibilidade e a produtividade do desenvolvedor em detrimento do desempenho bruto.
Além disso, diferentes linguagens podem ter diferentes implementações de compiladores ou interpretadores, o que pode afetar significativamente o desempenho do código. Por exemplo, uma linguagem como Python pode ser implementada por meio de diferentes interpretadores, como CPython, PyPy ou Jython, cada um com suas próprias características de desempenho.
Portanto, mesmo que o código seja o mesmo em diferentes linguagens, ainda pode haver variações significativas de desempenho devido a diferenças nas características das linguagens e nas implementações de compiladores/interpretadores.
Conheci o canal recentemente, seus vídeos são muito bons. Sucesso 🙏
Seus vídeos são ótimos. Obrigado
As pessoas precisam aceitar que suas linguagens são mais lentas que outras. Linguagens interpretadas essencialmente são mais lentas que as compiladas por uma questão de funcionamento, quer mais velocidade? Compile, quer mais ainda? anexe alguma lib otimizada feita em outra lang. Quer mais velocidade? Muito provavelmente vc ta usando a linguagem em propósito indevido ou alem do seu escopo.
Alem disso, langs focadas em um propósito específico tendem a ser mais velozes, as de uso geral acabam tendo que lidar com mais features e acaba aumentando sua complexidade, afetando diretamente seu desempenho.
N tratem linguagem como animal de estimação, cada uma é melhor em uma coisa que outra.
N faz sentido usar C para inteligência artificial e analise de dados.
Ou querer usar Python para codar drivers ou coisas que requerem uma atenção maior com o hardware.
falou tudo, sem contar que na planilha de energia, não é só tempo de processamento, memoria ram utilizada tambem foi em conta, muda muito de LP para LP
@@234trhbgfdert pois é man, e olha que nem sou mais da área a uns anos. Na minha opinião parece que tratam linguagem como comida favorita e para esse pessoal a lang se resume em "velocidade", parece que não lembram do propósito de uso e não consideram que tipo de problema tão precisando resolver, fora que parecem que nem pensam na questão de dar manutenção no código, parece que pensam em codar as coisas uma vez para nunca mais, por isso que os programadores que dão manutenção sofrem tendo que revisar código de terceiros e acha cada pérola.
Da pra deixar Python mais rapida, mas eh tanta "cambiarra" que compensa mais usar outra linguagem mais apropriada
@@sharewareX to falando de qualquer lang que forcem velocidade man, mas é comum msm fazerem isso no python justamente por ele ser lento. Quando forçam d+ é sinal que tem algo de errado, ou quer coisa demais ou tá usando a lang além do que dá.
Assim como explicado nesse video, tambem acredito que linguagem nao define performance, ja que linguagem nao passa de um especificacao (eu posso usar llvm e criar um compilador para python que gere um binario tao rapido quanto os binarios compilados a partir de codigo C/C++). Antes mesmo de assistir esse video, eu ja entendia dessa forma. Assim como tambem nao concordo, que usar C pra IA nao faz sentido. Veja bem, toda lib python para IA usa C/C++. A diferenca que o pessoal esta mais acostumado a usar python para essas coisas. O problema que hoje em dias as pessoas tem medo de implementar coisas do zero, e testarem solucoes diferentes para problemas existentes que ja foram resolvidos (talvez nao da melhor forma). Dito isso, continua achando python uma linguagem ruim. Mas ai e questao de gosto, e mesmo nao curtindo python, ainda ha casos de uso (pra mim, prototipagem rapida).
Meu xará, estou amando acompanhar seu canal e a forma como vc entrega o conteúdo
Bom saber que o walter white jr aprendeu programação dps do final de breaking bad 🙏
Excelente a sua análise.
Nunca tinha me dado conta desse óbvio.
É claro que a rumtime influenciará na performance.
Muito boa a explicação, realmente se considerarmos apenas a execução, a linguagem não impactaria na performance.
Mas a forma que cada linguagem compila/interpreta não impactaria? porque mesmo sem a otimização de código, vamos ter mudanças.
E ainda podemos descer mais e pensarmos em coisas como GC para linguagens gerenciadas que impactam na performance e VMs tipo Java e Erlang que mudariam a forma como o sistema operacional trata a execução.
Sai dessa linguagem "LOGO" pra bebes e estuda linguagens reais... mesmo no teu computador muito forte, tu vai notar a diferença
Assembly em baremetal é a melhor performace.
legal essa dica do numba. vou dar uma olhada.
Muito bom, esclarecedor
Acho que o mais importante a saber é isto:
A eficiência (ou “velocidade”) de uma linguagem/runtime/fodase está diretamente relacionada ao nível de controle que o usuário tem sobre operações do processador. Por isso temos assembly e python nas duas extremidades no contexto de performance.
Saber o básico de como um processador funciona (e um pouco de assembly) te permite visualizar mentalmente o que seu código está fazendo por baixo dos panos, principalmente em linguagens baixo nível
Acredito que tenha sido feito com o runtime default, de resto concordo com você
Primeira vez que o algoritmo do yt me recomenda algo de qualidade 😊
Kkk isto mesmo garoto
Nossa! Já cansei de discutir sobre isso na internet. Tem muita gente que não entende nada de benchmarks, só compara uns loops em Python com outras linguagens e depois sai propagando por aí que Python é lento. Eu cansei de tentar colocar uma razão na cabeça dessa gente...
O interpretador do Python é lento msm
@@arturmg2068 kkkkkkkkkkkk
Mas se eu fizer um código em python com as melhores otimizações, ele sempre vai rodar muito mais lento que C, Rust, C++ e etc otimizados, dito isso python é mais lento msm...
Para de chorar e aceita a verdade kkkkk
@@TheGabriel0705 Não é verdade isso q vc disse. Ele vai rodar *um pouco* mais lento, só isso. Fazendo as otimizações corretas, as diferenças não são grandes.
Conteúdo Fenomenal!!
É por isso que gráficos e tabelas, sem contexto e informações intrínseca do modelo de ánalise, não servem para nada.
Por exemplo, em Python, existem bibliotecas para computação intensiva que otimizam a complexidade assintótica (Big O), tornando-o consideravelmente mais eficiente. No entanto, se você implementar as mesmas otimizações em C, o desempenho será ainda melhor.
exatamente amigo
assim mano eu entendo seu ponto, porem ficou confuso o inicio, ainda mais quando as linguagens estavam sendo tratas como isoladas e não usando outras coisas, naquele twitte ele tava claramente tratando suas formas puras da linguagem, e sim no mundo real do trabalho raramente usaremos linguagme de alto nivel em sua forma padrão porem n invalida oque ele ta tentando passar
mas aí que tá: é uma comparação capciosa. se vc tá fazendo essa comparação, colocando numa tabela, pelo menos coloca os cenários de cada linguagem...
que ótima explicação
Que canal incrível, véi. Não querendo desmerecer ele, mas oq a galera exalta do conteúdo do Rodrigo Branas devia exaltar de ti tbm
Conteúdo muito foda mano, parabéns, estou aprendendo muito continua assim
obs: parece que voce é dublado ou traduzido por IA kkkk
Cara, qual programa você faz as suas anotações nos vídeos ?
excalidraw
Otimo video
Que aula de backend pqp 🤝
Só o fato do python ter OOP e recursos genéricos já adiciona alguns custos (característicos de se usar OOP ou tipagem dinâmica). Isso se soma ao fato de ser uma linguagem interpretada (Embora seja a característica principal, python tmb é compilado pra .exe se usar o pyinstaller que é a minha recomendação). Apesar quaisquer considerações, Python tem o seu valor enquanto uma linguagem bem geral e de uso simples. Entretanto, há de se reconhecer que áreas específicas (Computação Gráfica, Jogos) podem depender de um processamento bem rápido (onde o menor atraso pode prejudicar), demandando alternativas mais rápidas (como C, C++ ou Java, entre outras).
Tira java disso, rapidez é só Assembly, C e C++
Muito bom!!
Eu vi esse post no linkedin, deu uma treta...
Conteudo foda mano, bom demaisss parabens
legal q teve q subir 10x o numero de elementos na array pro node ter a mesma performance de python com numba. Na real, python é uma decepção em performance. Js td mundo reclama, mas pra uma linguagem (runtime) q faz boxing unboxing TODA HORA, ela é absurdamente rápida. Se c# fizesse td com boxing unboxing perdia de lavada até do v8.
silêncio, augusto galego está canetando
qual foi o app usado pra fazer a apresentação man ? alguem conhece ? nativo do mac ?
A dúvida que fica, você leu a pesquisa ?
Sim, em nenhum momento existe qualquer justificativa de porque typescript é 5x pior que javascript. Tem que debuggar o CLGB e descobrir que é porque tem um erro de config no Typescript que fez o algoritmo de fannkuch-redux falhar. O estudo também é de antes de Bun 1.0.
Não faz sentido cravar a performance de uma linguagem em um número específico
A tabela é estranha de fato, mas acho que é mais esclarecedor criar um programa que realiza um cálculo extenso (um bubble sort com milhares de valores vai) e fazer o teste em todas as linguagens. C vai ganhar sempre e Python vai sempre perder na maioria das comparações. Suas soluções podem ajudar o runtime, mas você não vai alcançar os patamares de C ou Java. Você precisa analisar a finalidade do seu projeto, a capacidade da equipe se tiver e como se pretende fazer a manutenção. O resto é alcançável ou descartável.
Video foda
Por que choras Samuca (gente, é zueira)
Tem gente que julga algo pesado ou não poeruso de RAM.
A partir do momento que vc convertou pra C, não é mais Python, é C.
exatamente kkkk
Cara okay, mas esse malabarismo aí todinho?
Mas o Runtime é diretamente correlacionado com a energia gasta pela máquina para executar o script? Pois o tempo de execução é apenas uma das variáveis utilizadas por ele pra gerar a tabela.
A principio imagino que sim, porque na teoria se demora mais significa que precisou fazer mais operações. Mas imagino que o buraco é mais embaixo se colocamos outras variáveis em jogo como o chipset. Ou por exemplo, dependendo do código pode ser mais rápido executar diretamente em uma placa de vídeo
Varios dos seus argumentos não são bem verdade.
Por exemplo, no video vc não conseguiu desacoplar o python do interpretador. Vc compilou uma biblioteca com clang, mas carregou ela usando o interpretador nativo do python. Ou seja, o argumento de que python não é lento e sim o runtime não é bem verdade, pq o python depende exclusivamente do runtime. Logo dizer que o python é lento é uma forma indireta de falar sobre o interpretador. E eu nem vou comentar daquele código nojento em C que foi gerado sabe lá deus como; não tem como saber se ele tá bom de verdade, otimizado como deve, etc.
Mesmo se aquela biblioteca for rápida, ela ainda tá com gargalo do interpretador do python. Lembrando também que nem sempre conversões dão certo e carregamento de bibliotecas nativas pro python tb.
O seu segundo método, usando o JIT Numba, também faz uso do interpretador para funcionar. E JIT é muito mais lento do que compilação (visto Java e C# vs C/C++), até pq no próprio site do Numba ele diz que converte PARTES do código de python e numpy para código de maquina ( com compilação para código intermediario no processo, provavelmente).
Existe uma outra questão q eu quase tava me esquecendo: python pressupõe gerenciamento automatico de memória. Isso categoriza a linguagem como mais lenta em relação a C/C++. Sim, a linguagem! Pq o interpretador sempre vai ter que dar suporte à essa feature da linguagem.
O esforço pra defender python e não aprender a usar uma linguagem de verdade é grande hoje em dia.
PQP, mandou a Pill !
Olhe FORTH....
boa
mt foda
Vc podia ir até além e fazer um compilador bem simples, sem protocolo http etc. E ele seria até mais rápido
Acho que poucas pessoas realmente se referem a linguagem pela definição formal de linguagem, geralmente falamos do ecossistema e mais quando tem algum interpretador diferente do padrão geralmente especificamos também.
Quero acreditar que quando alguém fala que Python é lento ele sabe tudo isso e tá se referindo certo 😅
Mesmo que Python demore pra executar as coisas isso não dita o consumo de energia. Depende muito mais do hardware do que qualquer outra coisa. Mesmo que fosse o caso não é viavel vc usar linguagens de baixo nivel pra tudo. Vc pode estar sujeito a perdas mais vitais tipo sofrer um ataque de buffer overflow.
sabio
Mas e o c?
moço como que eu saio do printf 😭
@GutoGalego Guto, é possível aplicar o mesmo pensamento em frameworks? Ex: No Python temos o Django, teria como deixar aplicações Django mais performáticas?
Parabéns por esclarecer este velho mito. Muita gente usa binários pré-compilados do Python sem saber: os módulos numpy e o scipy, por exemplo, contém código escrito em C, que é chamado para execução ao rodar o script. Por isso é tão usado em estatística e outras aplicações envolvendo cálculos complexos, com uma performance excelente.
sim, isso é oq eu sempre falo para algumas pessoas que dizem que python é lento, a maioria dessas pessoas, não compreendem sobre POO, etc, ou seja, o entendimento sobre as linguagens é superficial.
isso em tese na maioria das vezes é culpa do aprendizado de apenas uma linguagem, no caso JS.
até mesmo as pessoas que aprendam C, acabam não sabendo a utilização de 'despejo de memória'.
No contexto atual, as linguagens interpretadas serão sempre sensivelmente mais lentas.
Entretanto, essa diferença tende a diminuir no futuro porque (1) as máquinas ficarão mais rápidas e a diferença nominal tenderá a diminuir; e (2) os runtimes se tornarão cada vez melhores (esperamos).
Além disso, temos que ver que performance é apenas uma variável. O peso dela na equação vai depender da necessidade de performance. Pra sistemas que vivem mais de IO do que CPU, a performance isolada tem peso menor.
Nas primeiras aulas de qualquer curso de Engenharia de Software a primeira coisa dita é que a Engenharia de Software surgiu pra resolver problemas de qualidade do software. Pois bem, linguagens de alto nível surgiram para abstrair o hardware e facilitar a manutenção do software. Essa deveria ser a primeira variável observada e não a performance. Não que a performance não seja importante, mas ela é vazia se não tiver contexto e necessidades bem definidas.
Também tem o fato de que "A ser lento" tem nada a ver com "A ser mais lento que B". Se A atende a sua demanda de perfomance, que se dane B.
A propósito, excelente vídeo. E você poderia até ter sido mais rápido ainda...bastava ver que JRuby é mais rápido que Ruby mesmo sendo a mesma linguagem. A tabela em si já mostra que não se trata de linguagens, mas de runtime, mesmo as pessoas não vendo isso.
Pq eu tenho certeza que vc está errado
Boa pergunta. Onde especificamente você acha que eu to errado?
@@GutoGalegopq vc se contra diz. Uma vez que o Runtime muitas vezes está ligado a linguagem.
É fundamental estudar estrutura de dados e arquitetura.
Se não. Tente fazer num arduíno ou raspeberry py. Também acho que ajuda
A performance que a turminha a buscar, está numa combinação de fatores.
Hm entendi, mas uma dúvida de leigo mesmo. Se com o numba fica tão rápido pq já n é implementado com ele como runtime?
Algumas abstrações que Python faz tem um preço, porém ser mais rápida n significa que é a melhor pro projeto
Finalmente um video que alguem explica isso direito, linguagem de programacao e apenas uma especificacao.
Python é muito boa!!! Uso muito pra fazer algumas automações e alguns sistrmas de consulta em banco de dados para minhas aplicações devido sua infinidades de bibliotecas. E sim, é muito boa, vai atender 99% dos casos! Mass, dependendo da aplicação e sua complexidade, não vai ser tão "vantajosa".
queria q tivessem botado zig
Eu creio que foi uma falha de quem fez aquele ranking, considerar a maneira mais "comum" de executar cada linguagem e 99% das pessoas rodam python interpretado. Mas parabéns pelos esclarecimentos.
Pessoal fala muita besteira, não aceita o obvio, você citou Python com uns runtimes, seja real, ninguém usa isso em produção não, django, fastapi, numpy, pandas; bibliotecas e frameworks de mercado não usa esses runtimes, são falhos, betas, não testado, não confiáveis, pra quem é leigo, leva isso como verdade fácil.
mas a linguagem ser mais lenta, não quer dizer que ela é ruim, a perda de velocidade foi agregada a ganho em diversos outros fatores.
pessoal tem de entender que nenhuma linguagem serve pra tudo, é bom em tudo, Python não tem performance, igual C ser extremamente improdutivo para desenvolvimento web.
Qual a dificuldade de entender isso?
Super discordo até pq no fim quando falando da linguagem falando da escrita até rodar ne. Alias tem linguagem com runtime diferentes e por isso são classificadas por eles mas daqui a pouco vem o Mojo e salva a Python. Então n precisa disso tudo ^^ e acho q hj Zig passo C já ne
depende do que for fazer, usa a fucki%% ferramenta certa
Linguagem boa é a que resolve o problema de forma satisfatória perante às restrições... seja lá quais forem. O resto é conversa mile, papo de militante em favor de linguagem A ou B.
O vídeo em si é excelente mas o título é clickbait kkk no fim do video ele fala que não tem como um código Python ser mais rápido que Rust por mais que você otimize o runtime.
Hoje em dia. MOJO (se entregar o que promete) diz conseguir rodar Python mais rápido que Rust. Que é o ponto inteiro do vídeo, a linguagem é uma definição formal, a implementação que vai rodar é outra coisa. Sem fazer a distinção do que é lang e o que é runtime, a comparação fica rasa e sem sentido.
A tabela por exemplo foi feita antes do Bun 1.0. Se a gente usar Bun os números de JS vão ser diferentes. A tabela também tem um erro em Typescript (por isso deu 5x pior que JS).
Quanta besteira, é igual falar não existe carro lento. O Python é lento mesmo, fazer o que, nao pode ter tudo, nem C tem tudo
Po man acho q vc n entendeu contexto do vid
Você assistiu o vídeo todo ?
@@lucaseduardo2810 eu assisti e voce? pode responder nem ser falando meia verdade? Diferentes linguagens processam diferentemente e consomem diferentes quantidade de memoria, onde isso está errado?
Talvez um melhor comparativo é dizer que nao existe linguagem lenta, nem português, inglês, mandarim...
Primeiro, concordo! Tem sim fatores diferentes a se levar em consideração, e no final o que mais importa é escrever um código bem otimizado.
Contudo, acho que tem muito cruzadismo por cima do python. A linguagem existe porque ela fácil e conveniente, não precisa ser a melhor em performance também! Código o mais rápido o possível sempre vai ser nas linguagens compiladas de baixo nível, como C ou Rust