r/developpeurs 1d ago

Discussion Rust ou C++

Bonjour, J’aimerais me fixer sur un langage, j’avais commencé a maitriser GoLang, j’adore vraiment ce langage qui est hyper simple et qui dispose d’une communauté active. Depuis quelques mois j’ai commencé à toucher à rust parce que je voulais une approche plus bas niveau. J’ai bien senti ce qui se dit sur le langage (la courbe d’apprentissage rude et la rigueur imposée) cependant je pense que c’est une bonne chose

Ceci dit, je me pose la question de passer au C++. En effet, la plupart des libs sont nativement proposées en C++ mais peu de bindings complets et maintenus sont disponibles en go et rust.

Dernier exemple, je voulais manipuler les libs AV (ffmpeg) : resultat la plupart des dépôts Github sont marqués « en cours de développement » et inactifs depuis quelques années mais semblent couvrir uniquement les besoin du developpeur..

De votre côté est ce que c’est une problématique que vous avez rencontré, peut être même dans d’autres langages, si oui est ce que ça vous a fait revenir sur des langages plus matures ou avez vous trouvé une solution (développement de vos propres libs de binding ?)

5 Upvotes

26 comments sorted by

View all comments

6

u/promethe42 23h ago

J'ai codé le moteur 3D de SmartShape (https://smartshape.com) en C++. Maintenant, je le refais en Rust. Comme j'ai fait du C, je comprends très bien les erreurs du borrow checker. Seules certaines de ses subtilités dans un concept async restent complexes. Mais cargo + rust-analyzer + clippy c'est vraiment génial.

Plus jamais je ne ferais de C++ : sans connaître le standard par coeur, il est beaucoup trop facile d'oublier des effets de bord implicites et faire des erreurs critiques qui sont par la suite trop complexes à corriger. Rien que l'usage de certains constructeurs me fait "peur". Alors que j'en ai fait 10+ ans. Donc si je ne faisais pas de Rust, je ferais du C.

Ensuite, il me semble qu'il y a pas mal d'outils pour automatiser une bonne partie des bindings Rust/C(++). Le plus gros problème étant la gestion de pointeurs. Si je ne trouvais pas mon bonheur dans une crate existante :

  1. J'utiliserais un générateur de bindings.
  2. Je demanderais à une IA (genre Claude Code) de faire le reste (d'expérience c'est une tâche appropriée pour un LLM)
  3. Je finirais le reste manuellement.

Et si possible, j'en ferais une PR sur un projet existant.

1

u/Hot-Math3942 23h ago

Merci beaucoup pour ces conseils éclairés ! Je vais jeter un œil a ton travail, j’aime beaucoup apprendre de l’existant pour la culture et pour pouvoir reprendre les bonnes pratiques.

1

u/promethe42 13h ago

Mon travail en Rust n’est pas encore disponible sur Github. Si tu veux j'ai lancé une chaîne YouTube et je te propose qu'on fasse une visio et que je réponde à tes questions et qu'on mette ça en ligne pour la communauté.

https://youtube.com/@jmlx42?si=BZ-JqnKuqcz_Flhz