J'aimerais m'y mettre un jour, mais j'ai pas d'idée de projet personnel qui profite de l'absence de GC
L'absence de GC n'est pas la seule raison d'essayer (et de préférer) Rust. Personnellement, j'ai tenté le Go et c'est simple avec un bon écosystème. Mais y'a plein de trucs crados fans le design du langage, des librairies et dans l'esprit qui finissent par te rattraper. Avec Rust, j'ai l'impression que beaucoup de choses ont été très bien pensées pour le long terme.
Je pourrais faire une longue liste mais je suis très flemmard alors je donnerai juste un exemple: la gestion d'erreurs. En Rust, tu as Result qui fait que soit tu retournes un résultat, soit une erreur et que l'erreur ne peut pas être ignorée. Tu dois la traiter. Tu peux utiliser unwrap si tu es flemmard, mais au moins tu sais à quoi t'attendre et c'est facile à retrouver.
En Go, le pattern c'est de retourner (resultat, erreur). Si tu ne verifies pas l'erreur, dommage le compilateur ne t'aidera pas à t'en rendre compte. En plus il faut toujours gérer 4 cas: (result, nil), (result, err), (nil, err), (nill, nil). Et si les cas 2 et 4 semble improbables et inutiles, il n'y a pas besoin de chercher très loin dans la doc de la lib standard pour trouver des exemples (read par exemple, qui peut retourner des données et un EOF).
Maintenant j'ai tendance à dégainer Rust pour tout et n'importe quoi. Y'a bien Python qui garde une place dans mon coeur, mais juste pour des trucs rapides, ou pour le plaisir de changer. Et en général avec pytype.
# Raisons d'essayer Rust
Posté par Colin Pitrat (site web personnel) . En réponse au journal Retour d'expérience sur les langages de programmation. Évalué à 10. Dernière modification le 13 novembre 2020 à 20:53.
L'absence de GC n'est pas la seule raison d'essayer (et de préférer) Rust. Personnellement, j'ai tenté le Go et c'est simple avec un bon écosystème. Mais y'a plein de trucs crados fans le design du langage, des librairies et dans l'esprit qui finissent par te rattraper. Avec Rust, j'ai l'impression que beaucoup de choses ont été très bien pensées pour le long terme.
Je pourrais faire une longue liste mais je suis très flemmard alors je donnerai juste un exemple: la gestion d'erreurs. En Rust, tu as Result qui fait que soit tu retournes un résultat, soit une erreur et que l'erreur ne peut pas être ignorée. Tu dois la traiter. Tu peux utiliser unwrap si tu es flemmard, mais au moins tu sais à quoi t'attendre et c'est facile à retrouver.
En Go, le pattern c'est de retourner (resultat, erreur). Si tu ne verifies pas l'erreur, dommage le compilateur ne t'aidera pas à t'en rendre compte. En plus il faut toujours gérer 4 cas: (result, nil), (result, err), (nil, err), (nill, nil). Et si les cas 2 et 4 semble improbables et inutiles, il n'y a pas besoin de chercher très loin dans la doc de la lib standard pour trouver des exemples (read par exemple, qui peut retourner des données et un EOF).
Maintenant j'ai tendance à dégainer Rust pour tout et n'importe quoi. Y'a bien Python qui garde une place dans mon coeur, mais juste pour des trucs rapides, ou pour le plaisir de changer. Et en général avec pytype.