Logiciel

RUST - Pas seulement pour les programmeurs

En tant qu'ingénieur en systèmes optiques, la modélisation de systèmes complexes fait partie intégrante de notre travail. Comme nous nous appuyons souvent sur des simulations qui prennent beaucoup de temps, l'efficacité du langage de programmation que nous utilisons devient une considération importante. C'est pourquoi nous gravitons généralement autour du C ou du C++, ainsi que des bibliothèques patrimoniales construites en Fortran.

Rust n'est généralement pas le premier langage qui vient à l'esprit lorsqu'on s'attaque à un nouveau problème. Il est souvent considéré comme un langage réservé aux programmeurs professionnels, connu pour sa courbe d'apprentissage abrupte. Et oui, je pense que cette réputation est en grande partie méritée. Mais je crois aussi que Rust a quelque chose à offrir, quelque chose qui mérite qu'on s'y intéresse de plus près.

Complexité croissante et coûts cachés


Lorsque nous planifions un projet, il est rare que nous sachions exactement où il ira, surtout s'il s'avère réellement utile, ce qui est tout l'intérêt, n'est-ce pas ? Au fur et à mesure que le logiciel mûrit, nous nous retrouvons souvent à vouloir l'intégrer dans différents contextes, chacun ajoutant de nouvelles couches de complexité, souvent bien au-delà de ce que nous avions prévu au départ.

Avec C ou C++, nous devons gérer nous-mêmes tous les petits détails. Ces données sont-elles toujours valables lorsque j'essaie de les utiliser ? Avons-nous libéré le mutex sur ce chemin de code ? La liste de ces questions devient vite longue.

Renverser le scénario

Rust inverse cette dynamique. Il décharge le compilateur d'un grand nombre de ces préoccupations. D'une certaine manière, le compilateur devient votre deuxième paire d'yeux et vous dit : “Vous ne pouvez pas faire ça, voici pourquoi”. Un logiciel qui se compile dans un contexte donné peut refuser de se compiler lorsqu'il est adapté à un autre contexte - et c'est souvent une bonne chose.

En C ou en C++, le code peut se compiler parfaitement et, si vous avez de la chance, il se bloque immédiatement en cas de problème. Mais parfois, les bogues restent en sommeil pendant des années, ne refaisant surface que lorsque vous effectuez une modification. Pire encore, il se peut qu'ils ne plantent rien, mais qu'ils faussent subtilement les résultats une fois toutes les centaines d'exécutions.

Bien sûr, avec de bonnes pratiques de test et des outils comme les sanitizers, vous pouvez détecter ces problèmes. Mais soyons honnêtes : lorsque votre expertise principale est la physique ou l'optique, et non le test de logiciels, il devient vraiment intéressant d'avoir un compilateur qui prévient de manière proactive des classes entières de bogues.

Pourquoi la rouille mérite-t-elle d'être prise en compte ?


Rust ne garantit pas l'exactitude, mais il veille sur vous. Il vous aide à éviter non seulement les erreurs évidentes, mais aussi parfois les erreurs cachées, avant qu'elles ne se transforment en véritables problèmes. Et tout cela sans sacrifier les performances. Pour ceux d'entre nous qui travaillent dans des domaines où la précision et la justesse sont aussi importantes que la vitesse, Rust offre une combinaison rare : la sécurité d'un langage moderne avec les performances du C. C'est un compromis qui vaut la peine d'être considéré.

L'aide à l'IA négligée

Est-il encore utile d'apprendre à coder ? Aujourd'hui, tout à fait. Mieux encore, vous disposez d'un tuteur 24 heures sur 24 et 7 jours sur 7 avec ChatGPT ou Grok. If you ask me, both suck at coding. Really, not kidding. They simply suck, but they are great at answering specific questions. Question about strategy, or about tools (crates in Rust-language). If you start with Rust, don’t ask it to give you code, read the book and ask for explanations.

jarek

Messages récents

A propos de : Glass Finder

L'application Glass Finder est une partie d'un autre projet visant à étendre l'ensemble des services déjà offerts par...

2 mois il y a

Il y a une raison à ce silence

En plein travail Vous avez peut-être remarqué que le blog a été un peu calme ces derniers temps - c'est de la concentration, pas de la négligence. Chez Senslogic, nous...

8 mois il y a

CAO - Elle n'est pas réservée aux mécaniciens

Introduction - Redéfinir la CAO Lorsque la plupart des gens entendent "CAO", ils pensent à un logiciel de conception mécanique en 3D, comme SolidWorks, AutoCAD ou...

9 mois il y a

Interféromètre - ou - Capteur de front d'onde

La technologie continue de progresser, tout comme les capteurs de front d'onde. La densité d'échantillonnage du front d'onde constitue une amélioration notable. Des exemples de...

9 mois il y a

L'EUV et l'état de la lithographie

Lithographie optique haut de gamme : de quoi s'agit-il ? La lithographie EUV ressemble à de la science-fiction devenue réalité : des miroirs...

10 mois il y a

Optique physique sur le GPU Nvidia

Intro Pendant la majeure partie de ma carrière en optique, j'ai simulé l'imagerie des modulateurs spatiaux de lumière, et plus particulièrement des SLM...

10 mois il y a