Escribir Python como si fuera Rust
(kobzol.github.io)- Al empezar a usar Rust, adopté algunos conceptos de Rust en mi forma de programar en Python
- Usar
Type Hinttanto como sea posible Dataclassesen lugar de tuplas/diccionarios- Tipos de datos algebraicos (ADT)
- Patrón
newtype - Codificar invariantes usando tipos
- Bounding boxes fuertemente tipadas
8 comentarios
Si va a ser así, ¿para qué usar Python...?
(feat. si va a ser así, ¿para qué usar Node.js?)
Parece que solo le pusieron tipos; ¿de verdad se puede comparar con Rust?
Si vas a usar Python como si fuera Rust, ¿no sería mejor usar Rust?..
¿Se pueden usar Tensorflow y PyTorch con Rust? Incluso si se pueden usar, no hay forma de saber si también se podrán usar las bibliotecas que vienen colgando de ellos. Es una forma de pensar demasiado unidimensional.
Creo que usar las buenas características (o conceptos) de un lenguaje y usar directamente ese lenguaje son cosas distintas, aunque depende de la situación. Aunque se usen de forma muy efectiva ciertas características de lenguajes funcionales como Lisp o Haskell en JavaScript, eso no significa que se pueda usar Lisp en un lugar donde se usa JavaScript.
Aunque depende de cada situación y hay que elegir según convenga, en general me parecen enfoques recomendables.
No conozco muy bien Python...
¿Si se hace así, no aumentaría mucho el overhead?
En general, hay mucho de “usar type hints”, pero esto no se hace en tiempo de ejecución, así que no tiene relación con el rendimiento. Partes como las comprobaciones de tipo con
isinstanceseguramente agregan algo más de costo que no tener nada, pero entiendo que internamente se cachea. Si lo haces dentro de un bucle enorme, sí puede notarse una diferencia.