Executando verificação de segurança...
13

Como anda o mercado/ecossistema Python?

Trabalho com Java e gosto do Java, mas ando buscando aprender uma nova linguagem multiplataforma que não seja tão do hype, que fuja da JVM que eu conheço e seja leve

Comecei a estudar Go pelo hype, mas não curti. Parece C, achei uma lang muito poderosa, mas não sei se o cenário para web como é difundido realmente é a melhor aplicação pra linguagem.

Fiz POC em Kotlin, é um Java mais enxuto, tem as vantagens do ecossistema (JVM), não curti o null safety, no geral achei uma lang boa, mas quero algo fora da JVM

PHP já usei na faculdade, gostava muito, mas roda apenas na web e todo ano o pessoal diz que vai morrer

Curto muito a sintaxe typescript, mas aquele modelo assíncrino do eventLoop do NodeJS não me agrada

Voltaram a falar mais do Ruby esses tempos, falam bem da sintaxe, multiplataforma, tem o rails, mas não sei se vale

Python é bem mais versártil, sintaxe simples, é usada na academia em área de pesquisa, é usado na web (Django, Flask, etc), pode ser usado pra script. O que vejo reclamarem é somente da lentidão, comparada à outras linguagens em benchmarks

Tô nessa dúvida aí de qual escolher pra me aprofundar, caso eu estude Pythonzão da massa. Como anda o ecossistema/mercado dessa linguagem atualmente? No que ela tá sendo usada principalmente?

Carregando publicação patrocinada...
10

Sobre como anda a linguagem, eu tenho um amigo que trabalhava com blockchain, mais precisamente Ethereum, e eu perguntei pra ele o que o bitcoin tinha de melhor em relação ao Ether pra ser tão mais caro, e a resposta dele resume muito bem o mercado tech: "nada, o bitcoin só é mais popular". O mesmo vale pro Python em muitos casos onde ele não é tão utilizado.
Por exemplo, uma das maiores varejistas online do Brasil usa sua stack de backend em Python (usando o FastAPI, que em alguns benchmarks chega a se equiparar em velocidade com framework web em Go). É uma linguagem muito boa pra web sim, JS é melhor? Não sei, só posso afirmar que JS é mais popular.

Eu trabalho com Dados e na área de dados Python é realmente soberano (mais uma vez: é o melhor? Não sei, mas é o mais popular).
Sobre ser lento, é claro que se você rodar um "for" que printa "hello world" na tela 100 mil vezes, a implementação em C ou Java vai rodar mais rápido, mas ninguém é contratado pra ficar printando texto na tela 100 mil vezes. A velocidade depende muito mais de como você faz do que a linguagem, fazer bem feito numa linguagem "lenta" vai ter mais performance do que mal feito numa linguagem rápida (já consei de ver isso acontecer).

Também vejo muito python na área acadêmica por ser algo amigável e ter um bom ecossistema pra fazer contas (graças a comunidade de dados), mas não raro também vejo gente rodando Julia (que tem muito mais performance e consome menos recurso, mas não é popular) e alguns dinossauros dando dinheiro pro Matlab.

E como não poderia faltar, o que não falta é gente metendo pau na linguagem (em sua maioria, javeiros) falando que a linguagem é ruim, porque é simples (já ouvi muito isso), ou que não é performatica e o código que ele demorou 2 semanas a mais do que eu pra fazer rodou 0.4 segundos mais rápido. Então você não vai fugir dos "bairristas", mas programador de verdade não costuma perder tempo falando mal de linguagem.

Claro que ela não é a melhor opção pra tudo, nada nunca vai ser, mas eu gosto e resolve bem os problemas que eu preciso resolver no meu dia a dia (academicamente e no trabalho).

Mas o ecossistema e a comunidade são muito boas e você encontra lib pra tudo (até pras coisas que o python não é muito bom como mobile e jogos).

Em suma, é uma linguagem boa, não é perfeita. Apesar de ser versátil e resolver bem muitos problemas (como web, principalmente com o FastAPI) 90% das vagas são pra área de dados. E a simplicidade é uma mão na roda para explorar bases de dados e prototipagem.

p.s. tenho visto uma crescente do python na área de finanças (mesmo com a hegemonia do Excel) e também na área da engenharia (provavelmente herdado do pessoal que vem da academia)

1

Boa tarde, @garaujo !
Uma pergunta hoje você trabalha com dados no setor privado ? se sim poderia me falar a stack de ferramentas que você está utilzando hoje.
Estou fazendo um estágio onde eu mexo bastante com analise service e pentaho mais gostaria de focar em ter algumas ferramentas que o pessoal utiliza mais no mercado em geral.. Para Etl por exemplo faço geralmente no sql e no pentaho-Spoon, calculos ou o que tiver uma massa grande de dados geralmente utilzamos analise service pra analises e visualização estamos com solução no pentaho server e power bi.

3

Eu to respondendo pelo celular e não consigo ver bem a sua pergunta enquanto respondo, então se eu deixar de responder algo, me avise.

Sim, eu trabalho no setor privado. Vou dar um relato da minha vivência, ou seja, não tome o que eu vou falar como verdade absoluta, mas apenas como um relato do que eu vivi.

Eu trabalho no esquema de consultoria no momento então eu uso a stack que o cliente quer usar rs

Sobre ETL, conheço o pentaho, só usei ele em 2 freelas que eu fiz, mas nunca vi ele sendo usado em nenhuma empresa que eu trabalhei/prestei consultoria. Nesse assunto eu sempre vi as pessoas codando mesmo seja Python (pandas para quantidades pequenas e médias de dados e pyspark para quantidades grandes) ou SQL e executando isso em algum orquestrador como o Apache Airflow, Kubeflow (com o pipelines) ou o Pipeline do Databricks (não lembro o nome). Já vi até rodando o python direto na linha de comando sem nada por trás, dependendo da natureza do problema resolve bem e deixa mais simples. Tem ferramentas como o kedro, dagster e mage.ai que eu só testei em localhost até o momento, mas são bem legais.

Análises, exploração e criação de modelos usando Jupyter notebook/lab. Depois de criado, reescrever em formato coerente em arquivos .py pra serem executados automaticamente. (Sim! Saber codar com qualidade em arquivos .py e ter noção de engenharia de software são muito importantes, mesmo que muita gente se faça de maluco e ignore)

Apesar de nao ser algo que uso com frequência, eu gosto do Power BI, acho uma ótima ferramenta de visualização (não se deixe enganar pelas ferramentas que tem lá, não use Power BI para fazer ETL). Só fico meio chateado de não ter a versão desktop para Linux, mas é ótimo para visualizar resultados, ainda mais se você tem um modelo que funciona em Batch. Em contrapartida, tem o Streamlit que eu gosto e uso muito, porque tem uma construção mais rápida e permite que você faça requisições ao modelo a qualquer momento para novas predições (o que é bom para modelos que não estão rodando em Batch)

Tem também algumas outras ferramentas bem usadas para outros fins, mas tentei me ater ao que você perguntou.

Espero ter ajudado :)

P.s. se tiver mais alguma dúvida, é só falar

1

Bacana, Obrigado pela resposta vou separar alguns pontos que você disse pra dar uma focada mais nisso. Vai na linha com o que estou colocando no meu cronograma de estudos..

1

Boa! valeu a resposta! Eu vejo muito isso de fazer as coisas orientadas ao que é mais famoso, embora em alguns caso nem seja a melhor opção.

O Python achei interessante pela simplicidade (há quem reclame msm) e pela versatilidade

Área de dados ele é bem forte e agora que o Excel também permite (ou vai permitir, em lançamento futuro, não tenho certeza ainda) usar Python dentro da ferramenta, a tendência é se consolidar bem mais ainda

1

E como não poderia faltar, o que não falta é gente metendo pau na linguagem (em sua maioria, javeiros) falando que a linguagem é ruim, porque é simples (já ouvi muito isso), ou que não é performatica e o código que ele demorou 2 semanas a mais do que eu pra fazer rodou 0.4 segundos mais rápido. Então você não vai fugir dos "bairristas", mas programador de verdade não costuma perder tempo falando mal de linguagem.

Pura verdade. O pior é ver gente experiente falando mal achando que sabe tudo sobre todos os assuntos e não sabe nada a fundo, muito menos sobre a grandiosidade da comunidade, ecossistema e qualidade das bibliotecas Python. Nem se dão o trabalho de pesquisarem o que tá rolando de novidade. Parecem papagaio repetindo as mesmas frases "ah o GIL, o GIL, o GIL" hahah

Na maioria das áreas em que é usado, em 99,99% dos casos, Python dá conta muito bem em performance. Quando chegar ao ponto próximo de não dar conta, a infraestrutura é que escala, não a linguagem. Ainda assim, quando precisar melhorar a linguagem, dá para fazer melhorias (como o Facebook(PHP) e Instagram(Python) fizeram, mas até chegar nesse ponto vc está milionário para pagar engenheiros fazerem o que precisar) ou colocar outras linguagens em pontos críticos.

Venho vendo várias bibliotecas Python usando Rust na parte pesada dando a liberdade de codar em Python bem mais rápido no que precisar em todo o resto, como sempre aconteceu, só que antes era mais com Python usando C/C++.

Só para citar algumas com performances fantásticas: ConnectorX (trazer dados do BD para Dataframes), Polars (Dataframes como da Pandas), Granian / Robyn / socketify (web apps HTTP, WSGI, ASGI, Websockets), msgspec (serialização e validação JSON, MessagePack, YAML e TOML), ruff (análise e formatação de código), asyncpg (cliente PostgreSQL).

Botar uma ideia em prática rápido e ter manutenção mais fácil, como Python faz, tem um porquê e se vc não fizer isso tem um preço. Se fosse só performance, todos estariam fazendo tudo em Rust ou até Assembly.