Escrevendo Python como se fosse Rust
(kobzol.github.io)- Ao começar a usar Rust, passei a adotar alguns conceitos de Rust na minha forma de programar em Python
- Usar
Type Hinto máximo possível Dataclassesem vez de tuplas/dicionários- Tipos de dados algébricos (ADT)
- Padrão
newtype - Codificar invariantes usando tipos
- Caixas delimitadoras fortemente tipadas
8 comentários
Se é pra ser assim, pra que usar Python...
(feat. Se é pra ser assim, pra que usar Node.js)
Parece que só colocaram tipos; dá mesmo para comparar com Rust?
Se a ideia é usar Python como se fosse Rust, não seria melhor usar Rust?..
Dá para usar TensorFlow e PyTorch com Rust? Mesmo que dê, não há como saber se também será possível usar as bibliotecas penduradas neles. É uma forma de pensar simplista demais.
Acho que usar as boas características (conceitos) de uma linguagem e usar essa própria linguagem são coisas diferentes, embora isso dependa da situação. Mesmo que características de linguagens funcionais como Lisp e Haskell sejam usadas de forma muito eficaz em JavaScript, isso não significa que seja possível usar Lisp em um lugar onde se usa JavaScript.
Depende do contexto e precisa ser escolhido caso a caso, mas no geral são abordagens que eu recomendaria.
Como não conheço muito bem Python....
Se fizer desse jeito, não vai acabar gerando muito overhead?
No geral, o texto fala bastante sobre usar
type hints, mas isso não é algo feito em tempo de execução, então não tem relação com desempenho. Partes com checagem de tipo comoisinstanceaté devem custar mais do que não ter nada, mas, pelo que eu sei, isso é armazenado em cache internamente. Se você fizer isso em um loop enorme, aí pode haver diferença.