Écrire du Python comme Rust
(kobzol.github.io)- En commençant à utiliser Rust, l’auteur a adopté dans sa manière de coder en Python quelques concepts issus de Rust
- Utiliser autant que possible les
type hints - Des
dataclassesplutôt que des tuples/dictionnaires - Types de données algébriques (ADT)
- Motif
newtype - Encoder les invariants à l’aide des types
- Boîtes englobantes fortement typées
8 commentaires
Dans ce cas, à quoi bon utiliser Python…
(feat. dans ce cas, à quoi bon utiliser Node.js)
On dirait qu’il n’y a guère que les types ; est-ce vraiment comparable à Rust ?
Si l’on compte écrire du Python comme du Rust, ne vaudrait-il pas mieux utiliser Rust tout simplement ?..
Peut-on utiliser Tensorflow et PyTorch avec Rust ? Même si c’est possible, rien ne dit que l’on pourra aussi utiliser toutes les bibliothèques qui s’y accrochent. C’est une façon de penser beaucoup trop unidimensionnelle.
Je pense qu’utiliser les bonnes caractéristiques (ou concepts) d’un langage et utiliser directement ce langage sont deux choses différentes selon le contexte. Même si l’on utilise très efficacement certaines spécificités des langages fonctionnels comme Lisp ou Haskell en JavaScript, cela ne veut pas dire qu’on puisse utiliser Lisp là où l’on utilise JavaScript.
Selon les cas, il faut choisir au cas par cas, mais ce sont globalement des approches que j’aurais tendance à recommander.
Je ne connais pas très bien Python...
Si on fait comme ça, est-ce qu’il n’y aura pas beaucoup d’overhead ?
Dans l’ensemble, le texte insiste beaucoup sur l’utilisation des
type hints, mais cela ne se fait pas à l’exécution, donc ça n’a rien à voir avec les performances. Pour les vérifications de type commeisinstance, c’est probablement un peu plus coûteux que de ne rien faire du tout, mais il me semble que c’est mis en cache en interne. Dans une boucle énorme, il peut quand même y avoir une différence.