3 points par GN⁺ 2023-10-26 | 1 commentaires | Partager sur WhatsApp
  • L’auteur, Jarrod Overson, partage son expérience de trois ans avec Rust, principalement pour WebAssembly.
  • Il a utilisé Rust pour construire Wick, un framework d’applications et un runtime qui utilisent WebAssembly comme système de modules central.
  • L’approche de développement piloté par les tests de Rust permet davantage de maintenance avec moins d’efforts et réduit le besoin de tests exhaustifs.
  • L’auteur a constaté que programmer en Rust améliore aussi les compétences de développement dans d’autres langages.
  • Clippy, le linter de Rust, adopte un large éventail de règles qui améliorent les performances, la lisibilité et réduisent les indirections inutiles.
  • Cependant, l’auteur souligne que les bibliothèques et les outils de Rust ne couvrent souvent pas certains cas d’usage spécifiques.
  • Il critique les difficultés pour publier des paquets sur crates.io, le registre de paquets de Rust, à cause de certaines limitations.
  • L’auteur critique également l’async-iness de Rust, qu’il décrit comme une réflexion après coup menant souvent à des erreurs difficiles à résoudre.
  • Le riche système de types de Rust peut rendre le refactoring difficile.
  • Malgré ces inconvénients, l’auteur salue la polyvalence et la robustesse de Rust.
  • Il conclut que Rust n’est peut-être pas adapté aux projets qui exigent des itérations rapides, mais qu’il mérite d’être envisagé pour des projets au périmètre bien défini ou capables d’assumer un coût initial plus élevé.

1 commentaires

 
GN⁺ 2023-10-26
Avis Hacker News
  • Certains utilisateurs estiment que Rust est peu productif et contraignant, et préfèrent d'autres langages comme Zig, qui leur permettent de se concentrer davantage sur le code.
  • L'absence de namespaces sur crates.io fait l'objet de critiques, car cela permet à n'importe qui de revendiquer un nom de package global, ce qui peut potentiellement poser problème.
  • Certains utilisateurs apprécient la vaste bibliothèque de Rust ainsi que son excellent système de documentation.
  • Des inquiétudes existent concernant l'absence de configuration globale des lint pour un projet, mais une solution utilisant le fichier .cargo/config.toml est proposée.
  • Certains utilisateurs expriment leur frustration face au fait que des crates low-level importantes restent bloquées en version 0.x.
  • Le problème des backreferences au niveau du langage est mis en avant, avec une demande pour des solutions d'analyse statique.
  • Certains utilisateurs trouvent le compilateur Rust très utile et saluent la qualité de ses messages d'erreur.
  • Un débat existe sur la nécessité des tests en Rust : certains affirment que si le code compile, il est probablement correct, tandis que d'autres soutiennent que la logique métier doit malgré tout être testée.
  • Certains utilisateurs trouvent Rust pénible à utiliser, mais l'apprennent pour des raisons professionnelles.
  • Certains utilisateurs apprécient Rust parce qu'il remet en cause l'idée qu'un programmeur doive avoir un contrôle total et une compréhension complète de tout ce que fait le compilateur.
  • L'usage de async en Rust fait débat : certains y voient une source de frustration, tandis que d'autres pensent qu'il faut l'utiliser partout.