Introdução
Se você já trabalhou com Python por mais de cinco minutos, provavelmente já viveu esse ritual: criar um ambiente virtual com venv, instalar pacotes com pip, descobrir que precisa do pip-tools para gerar um lockfile, usar pyenv para trocar de versão do Python, considerar o Poetry mas desistir da complexidade, e eventualmente aceitar que o gerenciamento de dependências em Python é um exercício de paciência.
O ecossistema Python sempre foi assim — poderoso, mas fragmentado. Cada ferramenta resolve um pedaço do problema. Nenhuma resolve tudo. E o desenvolvedor fica no meio, colando peças como um quebra-cabeça infinito.
Isso mudou. Em fevereiro de 2024, a Astral — a mesma empresa por trás do Ruff, o linter Python mais rápido do mundo — lançou o UV: um gerenciador de pacotes, ambientes virtuais e versões do Python escrito em Rust, até 100 vezes mais rápido que o pip. E ele não veio para ser mais uma peça do quebra-cabeça. Ele veio para ser o quebra-cabeça inteiro.
Neste artigo, vamos explorar:
- A história do Python — quem criou, quando, e quem mantém hoje
- Por que Python ganhou tanta notoriedade nos últimos anos
- O problema de fragmentação que o UV resolve
- O que é o UV, quem criou, e como usá-lo na prática
- E a pergunta que não cala: em aplicações complexas, com padrões arquiteturais e modularidade, Python compete com C#?
Se você já usa Python ou está avaliando se deve usá-lo, este artigo é para você.
Python: Uma Breve História
Origens
O Python foi criado por Guido van Rossum, um programador holandês que trabalhava no CWI (Centrum Wiskunde & Informatica) em Amsterdã. O desenvolvimento começou no final de 1989, e a primeira versão pública — Python 0.9.0 — foi lançada em fevereiro de 1991.
O nome não tem nada a ver com cobras. Guido era fã do grupo de comédia britânico Monty Python, e queria um nome curto, misterioso e levemente irreverente. Funcionou.
Filosofia
Desde o início, Python foi projetado com uma filosofia clara: legibilidade acima de tudo. Onde outras linguagens usam chaves {} e ponto-e-vírgula ;, Python usa indentação. A ideia era que o código deveria ser tão fácil de ler quanto de escrever.
Essa filosofia foi formalizada no Zen of Python (PEP 20), que você pode ver rodando import this no interpretador:
| |
| |
💡 O Zen of Python não é apenas poesia — ele guia decisões de design da linguagem até hoje.
Guido e o BDFL
Por quase três décadas, Guido atuou como BDFL — Benevolent Dictator For Life (Ditador Benevolente Vitalício). Ele tinha a palavra final sobre qualquer decisão de design da linguagem.
Isso mudou em julho de 2018, quando a controversa PEP 572 (que introduziu o operador :=, apelidado de walrus operator) gerou debates tão intensos na comunidade que Guido decidiu se afastar. Ele renunciou ao título de BDFL e se aposentou da liderança direta.
Quem mantém Python hoje
Desde 2019, Python é governado por um Steering Council — um comitê eleito de cinco membros que toma as decisões de design e direção da linguagem. O conselho é eleito pela comunidade de core developers a cada release. Por trás do Steering Council está a Python Software Foundation (PSF), uma organização sem fins lucrativos que cuida da infraestrutura, eventos, financiamento e proteção da marca Python.
ℹ️ Guido van Rossum trabalhou na Dropbox (2013–2019) e depois na Microsoft (2020–2023), onde contribuiu significativamente para a performance do CPython (o interpretador padrão). Hoje segue como core developer emeritus, mas sem poder de veto.
Versões marcantes
| Ano | Versão | Marco |
|---|---|---|
| 1991 | 0.9.0 | Primeira versão pública |
| 2000 | 2.0 | List comprehensions, garbage collector |
| 2008 | 3.0 | Quebra de compatibilidade com Python 2 (migração dolorosa que durou mais de uma década) |
| 2015 | 3.5 | async/await nativo, type hints (PEP 484) |
| 2016 | 3.6 | f-strings (f"Hello {name}") — mudou a forma de formatar strings para sempre |
| 2020 | 3.9 | Merge de dicionários com |, type hints genéricos nativos |
| 2022 | 3.11 | Melhorias de performance de 10-60% (projeto Faster CPython de Guido na Microsoft) |
| 2023 | 3.12 | Per-interpreter GIL (início do caminho para remover o GIL) |
| 2024 | 3.13 | Free-threaded mode experimental (sem GIL) |
⚠️ A migração de Python 2 para Python 3 foi uma das mais dolorosas da história da computação. Levou mais de 12 anos — Python 2 só teve seu EOL (End of Life) em janeiro de 2020. Essa experiência traumática moldou a comunidade: desde então, Python evita quebras de compatibilidade a todo custo.
Por Que Python Ganhou Tanta Notoriedade
Se em 2010 alguém te dissesse que Python seria a linguagem mais popular do mundo em poucos anos, você provavelmente duvidaria. Naquela época, o reinado era de Java, C e C++. Python era visto como linguagem de script, boa para automação e pouco mais. O que mudou?
A revolução dos dados e da IA
A ascensão da ciência de dados, do machine learning e da inteligência artificial colocou Python no centro do mapa. Não porque Python fosse a linguagem mais rápida ou mais robusta — mas porque o ecossistema se formou ao redor dela:
| Área | Bibliotecas Python dominantes |
|---|---|
| Computação numérica | NumPy, SciPy |
| Análise de dados | Pandas, Polars |
| Machine Learning | scikit-learn, XGBoost, LightGBM |
| Deep Learning | TensorFlow, PyTorch, Keras |
| IA Generativa | LangChain, Hugging Face Transformers, OpenAI SDK |
| Visualização | Matplotlib, Seaborn, Plotly |
| Notebooks | Jupyter, Google Colab |
Quando TensorFlow (Google, 2015) e PyTorch (Meta, 2016) escolheram Python como interface principal, o destino estava selado. Pesquisadores, cientistas de dados e engenheiros de ML se concentraram em Python, e o efeito de rede fez o resto.
Adoção acadêmica
Universidades no mundo inteiro passaram a ensinar programação com Python em vez de Java ou C. O MIT trocou seu curso introdutório para Python em 2009. Stanford seguiu. A consequência: uma geração inteira de desenvolvedores cresceu com Python como primeira linguagem.
Versatilidade
Python não é apenas para IA. Ele tem presença relevante em:
- Web: Django (full-stack), FastAPI (APIs modernas), Flask (microframework)
- Automação e DevOps: Ansible, scripts de infraestrutura, CI/CD
- Scripting: substituição de Bash para tarefas complexas
- APIs e microsserviços: com FastAPI + Pydantic
- Educação: pela sintaxe limpa e barreira de entrada baixa
Python em números (2025–2026)
| Indicador | Posição / Métrica |
|---|---|
| TIOBE Index | #1 (líder desde 2021) |
| Stack Overflow Survey 2025 | Top 3 linguagens mais usadas |
| GitHub Octoverse 2025 | #1 em novos repositórios |
| PyPI (repositório oficial) | 600.000+ pacotes publicados |
| Downloads mensais (PyPI) | 15+ bilhões |
💡 Python não é necessariamente a melhor linguagem para cada problema. Mas é a linguagem com o menor atrito para começar — e isso conta muito quando o objetivo é validar ideias, prototipar ou iterar rapidamente.
O Problema Que UV Resolve
Agora que entendemos por que Python é tão popular, vamos ao ponto que todo desenvolvedor Python conhece bem: o caos do gerenciamento de pacotes e ambientes.
O ecossistema antes do UV
A história do gerenciamento de dependências em Python é uma história de fragmentação. Cada ferramenta resolve um pedaço do problema, mas nenhuma resolve tudo:
| Ferramenta | O que faz | O que NÃO faz | Problema |
|---|---|---|---|
| pip | Instala pacotes | Não gerencia ambientes, não faz lockfile nativo | Lento (resolução em Python puro), sem reprodutibilidade |
| virtualenv / venv | Cria ambientes virtuais | Não instala pacotes, não gerencia versões do Python | É apenas uma peça do quebra-cabeça |
| pip-tools | Gera lockfile (requirements.txt pinado) | Não gerencia ambientes nem versões do Python | Exige combinação manual com pip + venv |
| Pipenv | Combina pip + virtualenv + lockfile | Performance ruim, manutenção instável | Praticamente abandonado pela comunidade |
| Poetry | Gerencia pacotes, venv, lockfile, build | Não gerencia versões do Python | Complexo, lento, resolve tudo mas com custo |
| Conda | Gerencia pacotes + ambientes + Python + C/Fortran | Mundo paralelo ao PyPI | Conflitos com pip, ecossistema isolado |
| pyenv | Gerencia versões do Python | Não instala pacotes, não gerencia ambientes | Mais uma ferramenta para aprender |
| pipx | Executa ferramentas Python isoladas | Não é para projetos | Escopo limitado |
O fluxo típico antes do UV
Para montar um projeto Python “direito” antes do UV, o desenvolvedor precisava combinara múltiplas ferramentas:
| |
Cinco ferramentas diferentes. Cinco comandos de instalação. Cinco coisas para documentar e explicar para quem chega no projeto. Esse é o problema que o UV resolve.
⚠️ O Poetry tentou unificar parte desse fluxo, e para muitos projetos funciona bem. Mas a resolução de dependências é lenta (escrita em Python), o
pyproject.tomltem convenções próprias que divergem dos padrões PEP, e ele ainda exigepyenvseparado para gerenciar versões do Python.
UV: O Que É e Quem Criou
A Astral e Charlie Marsh
O UV foi criado pela Astral, uma empresa fundada por Charlie Marsh em 2023. Charlie é um engenheiro de software americano que antes de fundar a Astral trabalhava com infraestrutura Python e percebeu que as ferramentas fundamentais do ecossistema estavam décadas atrás do que outras linguagens ofereciam.
A Astral já era conhecida pelo Ruff — um linter e formatter para Python escrito em Rust que é 100 a 300 vezes mais rápido que ferramentas equivalentes como Flake8 e Black. O sucesso do Ruff provou que reescrever tooling Python em Rust gerava ganhos reais e imensos.
Em fevereiro de 2024, a Astral lançou o UV com a mesma premissa: pegar o que o ecossistema Python fazia de forma lenta e fragmentada e reescrever em Rust, rápido e unificado.
💡 A Astral recebeu investimento de US$ 4 milhões da Accel para desenvolver o UV e o Ruff. Charlie Marsh é ex-engenheiro do Spring Health e do Khan Academy.
O que o UV faz
O UV é um toolkit unificado para Python, escrito em Rust. Ele substitui — sozinho — as seguintes ferramentas:
| |
Em termos concretos:
| Capacidade | Ferramenta que substitui | Comando UV |
|---|---|---|
| Instalar pacotes | pip install | uv add / uv pip install |
| Criar ambiente virtual | python -m venv | uv venv (automático) |
| Gerar lockfile | pip-compile (pip-tools) | uv lock (automático) |
| Gerenciar versões do Python | pyenv install | uv python install |
| Criar projeto | poetry init | uv init |
| Executar ferramentas | pipx run | uvx |
| Executar scripts | python script.py | uv run script.py |
Velocidade
A diferença de velocidade não é incremental — é de outra ordem de grandeza:
| Operação | pip | UV | Fator |
|---|---|---|---|
| Instalar dependências (cache frio) | ~22s | ~1.2s | 18x mais rápido |
| Instalar dependências (cache quente) | ~5s | ~0.06s | 80x mais rápido |
| Resolução de dependências | segundos a minutos | milissegundos | 10-100x mais rápido |
| Criar ambiente virtual | ~1.5s | ~0.01s | 150x mais rápido |
📌 Esses números variam conforme o projeto e o ambiente, mas a ordem de grandeza é consistente. O UV faz em milissegundos o que o pip faz em segundos — e em segundos o que o pip faz em minutos.
Essa velocidade não é acidente. O UV é escrito em Rust, com resolução de dependências implementada em um solver SAT otimizado (PubGrub), cache agressivo, downloads paralelos e zero overhead de interpretador Python.
UV na Prática
Chega de teoria. Vamos ver o UV funcionando.
Instalação
| |
Após instalar, verifique:
| |
| |
Criar um projeto novo
| |
O UV gera a seguinte estrutura:
| |
O pyproject.toml gerado segue os padrões PEP (621, 517):
| |
💡 Diferente do Poetry, que usa chaves proprietárias como
[tool.poetry], o UV segue os padrões PEP oficiais. Isso significa que seupyproject.tomlé compatível com qualquer ferramenta que siga as PEPs.
Adicionar dependências
| |
O que acontece por baixo:
- O UV atualiza o
pyproject.tomlcom as novas dependências - Resolve todas as dependências (em milissegundos)
- Gera/atualiza o
uv.lock— um lockfile com hashes e versões exatas - Cria o ambiente virtual (
.venv/) automaticamente, se não existir - Instala tudo no ambiente virtual
Tudo em um único comando. Em menos de dois segundos.
Executar o projeto
| |
💡 Não precisa ativar o ambiente virtual manualmente. O
uv runfaz isso por você. Acabou osource .venv/bin/activate.
Gerenciar versões do Python
| |
O UV baixa e gerencia as versões do Python sem precisar do pyenv. Funciona em Windows, Linux e macOS.
Executar ferramentas sem instalar
| |
O uvx é equivalente ao npx do Node.js — executa ferramentas Python em ambientes temporários, sem poluir seu projeto.
Fluxo completo com UV
Lembra do fluxo fragmentado com cinco ferramentas? Agora com UV:
| |
Uma ferramenta. Cinco linhas. Zero fricção.
Quando Usar UV
Cenários ideais
O UV é a escolha certa quando você:
- Está começando um projeto novo em Python — o
uv initdá a estrutura padrão perfeita - Quer velocidade no CI/CD — instalar dependências em 1 segundo em vez de 30 faz diferença em pipelines
- Trabalha com múltiplas versões do Python —
uv python installsubstitui pyenv sem fricção - Quer reprodutibilidade — o
uv.lockgarante que todos no time usem exatamente as mesmas versões - Precisa de algo simples — um comando para tudo, sem configuração complexa
- Mantém monorepos Python — o UV suporta workspaces no estilo Cargo/npm
- Quer padronizar o toolchain — uma ferramenta para gerenciar tudo, de venv a lockfile
Cenários onde ainda avaliar
| Cenário | Recomendação |
|---|---|
| Projetos com Conda/Anaconda | O UV não substitui Conda para dependências C/Fortran (BLAS, LAPACK, etc.). Se seu projeto depende pesadamente do ecossistema Conda, avalie a migração com cuidado |
| Projetos legados muito grandes | A migração de um projeto grande com Poetry ou Pipenv pode exigir ajustes. Funciona, mas teste em branches separados |
| Ambientes corporativos restritos | Se sua empresa bloqueia binários externos, o UV (que é um binário Rust) pode precisar de aprovação de segurança |
💡 O UV é compatível com o
pip. Você pode usaruv pip install -r requirements.txtcomo substituto direto do pip — mesma interface, velocidade de Rust. Essa é a forma mais segura de experimentar sem mudar nada no projeto.
Python vs C# em Aplicações Complexas

Essa é a pergunta que motivou metade deste artigo: quando a aplicação precisa ser modular, com padrões arquiteturais como Clean Architecture, CQRS, Hexagonal — vale a pena usar Python em vez de C#? Existe ganho real?
A resposta honesta é: depende do que você chama de “ganho”.
Comparativo completo
| Dimensão | Python | C# |
|---|---|---|
| Tipagem | Dinâmica (com hints opcionais via mypy, Pydantic) | Estática forte (compilador garante) |
| Compilação | Interpretado — erros aparecem em runtime | Compilado — erros aparecem antes do deploy |
| Injeção de Dependência | Terceiros: dependency-injector, python-inject, manual | Nativa no framework (IServiceCollection) |
| Interfaces / Contratos | ABC (Abstract Base Class) — não é enforcement forte | interface — contrato real, verificado pelo compilador |
| Padrões Arquiteturais | Possível, mas exige disciplina manual. Sem framework opinativo para Clean Architecture | Ecossistema maduro: MediatR (CQRS), templates de Clean Architecture, Minimal APIs |
| ORM | SQLAlchemy, Django ORM, Tortoise | Entity Framework Core — superior em migrações, Fluent API e integração |
| Testes | pytest (excelente, maduro) | xUnit, NUnit, MSTest (todos maduros) |
| Performance | GIL limita paralelismo real (melhorando com 3.13+), I/O-bound é bom com asyncio | Paralelismo real, Tasks, async/await maduro, alta performance |
| Tooling / IDE | PyCharm, VS Code (bom, mas refactoring limitado pela tipagem dinâmica) | Visual Studio, Rider, VS Code (refactoring robusto com tipagem estática) |
| Ecossistema Enterprise | Azure SDK, AWS SDK — funcional, mas menos integrado | Azure nativo, ferramentas Microsoft integradas, ecossistema enterprise completo |
| Modularidade | Módulos e pacotes Python são flexíveis, mas não há enforcement de boundaries | Assemblies, namespaces, projetos separados com referências explícitas |
| Documentação / API | Swagger via FastAPI (automático), Sphinx | Swagger nativo, XML docs, source generators |
Python para aplicações arquiteturais: é possível, mas…
Sim, você pode implementar Clean Architecture, Hexagonal, CQRS e qualquer padrão em Python. Frameworks como Django (opinativo, MTV) e FastAPI (moderno, async, Pydantic) oferecem bases sólidas. Existem bibliotecas para injeção de dependência, validação de tipos e separação de camadas.
Porém, há diferenças fundamentais na experiência de desenvolvimento:
| |
| |
A diferença não é apenas de sintaxe — é de filosofia:
- Em C#, a DI é parte do framework. Você não precisa escolher uma biblioteca, configurar wiring, ou decorar métodos. Funciona “out of the box”
- Em Python, a DI é uma biblioteca terceira. Funciona, mas adiciona complexidade, exige configuração e não tem suporte nativo do framework
Essa diferença se repete em quase todos os padrões:
| Padrão | Em C# | Em Python |
|---|---|---|
| Interfaces | interface IService — contrato forte, verificado em compilação | class IService(ABC) — convenção, não enforcement real |
| Repository | Padrão maduro com EF Core, genéricos tipados | Implementável, mas sem tipo-segurança forte |
| CQRS | MediatR (biblioteca consagrada), separação clara | Implementação manual, sem biblioteca dominante |
| Mediator | MediatR | Sem equivalente consolidado |
| Options Pattern | IOptions<T> nativo | Configuração manual ou Pydantic Settings |
Onde Python vence — sem discussão
Há domínios onde Python simplesmente não tem concorrente real:
- IA e Machine Learning: TensorFlow, PyTorch, Hugging Face — o ecossistema inteiro é Python-first
- Ciência de dados: Pandas, NumPy, Jupyter — C# nem aparece na conversa
- Prototipagem rápida: de zero a uma API funcional em minutos com FastAPI
- Scripts e automação: substituir Bash, processar arquivos, interagir com APIs
- DevOps: Ansible, scripts de infraestrutura, ferramentas CLI
Onde C# vence — quando complexidade importa
Para aplicações que exigem manutenção a longo prazo por equipes grandes, com padrões arquiteturais rigorosos, C# (e, de forma mais ampla, o .NET) oferece vantagens reais:
- Refactoring seguro: tipagem estática forte permite renomear, extrair e mover código com confiança
- Compilação como guardião: erros de tipo, interfaces não implementadas e dependências ausentes são detectados antes de executar qualquer código
- DI e middleware nativos: o pipeline do ASP.NET Core é maduro, testável e extensível
- Boundaries forçados: assemblies e projetos separados criam fronteiras arquiteturais reais, não apenas convenções
- Ecossistema enterprise: integração nativa com Azure, SQL Server, Identity, e todo o ecossistema Microsoft
O veredicto
📌 Python e C# não são concorrentes — são complementares.
| Cenário | Linguagem recomendada |
|---|---|
| IA, ML, Deep Learning | Python |
| Ciência de dados, análise | Python |
| Scripts, automação, DevOps | Python |
| Prototipagem rápida de APIs | Python (FastAPI) |
| Aplicações enterprise com padrões rigorosos | C# (.NET) |
| Clean Architecture, Hexagonal, CQRS | C# (ecossistema mais maduro) |
| Aplicações com equipes grandes e manutenção longa | C# (tipagem estática = segurança) |
| APIs de alta performance com I/O intensivo | C# (async/await maduro, Kestrel) |
| Microsserviços com orquestração complexa | Ambos (depende do ecossistema da empresa) |
A pergunta certa não é “Python ou C#?” — é “qual problema estou resolvendo?”
Se o problema é IA, dados ou prototipagem: Python, sem pensar duas vezes.
Se o problema é uma aplicação modular, com camadas, padrões e equipe que precisa de refactoring seguro em dois anos: C# vai te dar menos dor de cabeça.
E se o problema exige os dois? Use os dois. Microsserviço de IA em Python, orquestração e API principal em C# — isso não é heresia, é pragmatismo.
Considerações Importantes
UV Ainda É Pré-1.0
O UV está em versão 0.6.x (março 2026). Apesar de estável para uso em produção e adotado por milhares de projetos, a versão pré-1.0 significa que breaking changes podem acontecer entre releases menores. A Astral mitiga isso com changelogs detalhados e migração assistida, mas é um ponto a considerar antes de adotar em ambientes corporativos conservadores. Acompanhe os releases no GitHub para saber quando a 1.0 chegar.
O pyproject.toml Como Fonte de Verdade
O UV adota o pyproject.toml seguindo as PEPs 517, 518 e 621 — os padrões oficiais do Python para metadados de projeto. Isso significa que seu projeto UV não fica preso ao UV: qualquer ferramenta compatível com essas PEPs (incluindo pip e poetry) consegue ler e usar seu pyproject.toml. Se um dia você precisar migrar, o caminho de saída está garantido.
UV e Docker
Para projetos que rodam em containers, o UV brilha especialmente na etapa de build. Um Dockerfile otimizado com UV:
| |
O ganho em tempo de build é brutal — especialmente em pipelines de CI/CD onde cada segundo de execução tem custo real.
UV vs Cargo vs dotnet CLI
Se você vem de Rust ou .NET, vai perceber que o UV segue a mesma filosofia de CLI unificada:
| Aspecto | UV (Python) | Cargo (Rust) | dotnet CLI (C#) |
|---|---|---|---|
| Criar projeto | uv init | cargo new | dotnet new |
| Adicionar dependência | uv add | cargo add | dotnet add package |
| Executar | uv run | cargo run | dotnet run |
| Lockfile | uv.lock | Cargo.lock | packages.lock.json |
| Build | — (interpretado) | cargo build | dotnet build |
| Testes | uv run pytest | cargo test | dotnet test |
O UV é, para o Python, o que o cargo é para o Rust: a ferramenta que a comunidade esperou por décadas.
Sobre a Adoção e Comunidade
Números que mostram a tração do UV:
- +40.000 estrelas no GitHub (março 2026)
- Adotado pelo FastAPI como gerenciador de pacotes recomendado na documentação oficial
- Integrado ao GitHub Actions como opção oficial para setup de Python
- Suportado oficialmente no VS Code e PyCharm
- Releases semanais com changelog detalhado e semver estrito
Quando Migrar e Quando Esperar
Se você está em um projeto com pip puro e sente a dor da lentidão e da falta de lockfile: migre agora. O custo é baixo — uv pip install -r requirements.txt funciona como drop-in replacement do pip.
Se você está com Poetry e o fluxo funciona sem dor: avalie com calma. A migração vale a pena, mas não é urgente se o projeto já está estável.
Se a empresa exige ferramentas auditadas e versionadas (1.0+): espere a versão 1.0 do UV. Mas acompanhe de perto — ela está próxima.
Conclusão
O UV é, sem exagero, o maior avanço no tooling Python dos últimos anos. Ele resolve um problema que a comunidade arrastava há mais de uma década — a fragmentação absurda de ferramentas para fazer algo que deveria ser simples: instalar pacotes, criar um ambiente e executar código.
Com o UV, você tem uma ferramenta que substitui pip, virtualenv, pyenv, pip-tools, pipx e parte do Poetry. Escrita em Rust, com velocidade absurda e aderência aos padrões PEP. Se você está começando um projeto Python novo, não há motivo para não usar UV.
Quanto ao comparativo com C#: Python é uma linguagem extraordinária para prototipagem, IA, dados e automação. Mas quando a conversa é sobre aplicações enterprise complexas com padrões arquiteturais rigorosos e manutenção a longo prazo, C# (e o .NET) oferece vantagens estruturais que são difíceis de ignorar — tipagem estática forte, DI nativa, compilação como guardião, e tooling de refactoring superior.
A maturidade de uma escolha técnica está em reconhecer: não existe linguagem perfeita para tudo. Existe a linguagem certa para o problema certo. E ter UV no arsenal torna Python significativamente mais viável para projetos sérios — porque a parte que sempre foi ruim (o gerenciamento de pacotes) finalmente ficou excelente.
Referências
- UV — Documentação Oficial
- Astral — Empresa por trás do UV e Ruff
- Python.org — Site oficial do Python
- Python Software Foundation (PSF)
- PEP 20 — The Zen of Python
- Ruff — Linter Python escrito em Rust
- TIOBE Index
- Makefile: Automatizando tarefas para Python, Hugo e Docker — artigo relacionado neste blog
- Padrões GoF: Código à Nuvem, Monólito ao Microserviço — artigo relacionado neste blog

Ao comentar, você concorda com nossa Política de Privacidade, Termos de Uso e Política de Exclusão de Dados.