Ada ou Rust ?

Posté le 11 avril 2020 dans Software

Il y a quelques mois, j'ai réalisé que cela fait des années que je m'embête avec le C. Le gros avantage du C ? Tout est possible. Et c'est bien le problème. Presque aucune vérification n'est faite lors de la compilation. Les erreurs s'entassent beaucoup plus vite qu'on ne le croit. Les tableaux qui débordent, les pointeurs qui se baladent, les zones mémoire dé-allouées mais toujours utilisées, etc, etc.

Je me suis alors mis en chasse d'un remplaçant. Je suis vite tombé sur Rust. Il y a beaucoup de tapage fait autour de ce langage depuis quelque temps. C'est le langage à la mode. Alors je me suis laissé tenter. Surtout que le discours officiel annonce un langage sécurisé autres joyeusetés. J'ai commencé les tutos sur le site officiel. Aie, ça pique. La courbe d'apprentissage est raide. Mais je me suis accroché. Et comme je travaille le sujet sur mon temps libre, je n'avance pas vite. Et puis un jour, une nouvelle version de Rust est publiée. Nouvelle version avec... des incompatibilités avec les versions précédentes. QUOI ?!? Ce que je viens d'apprendre n'est plus entièrement utilisable ? Et quelques semaines plus tard... re-belote. En fouillant un peu plus, je me rends compte que le langage Rust, bien que de plus en plus utilisé, est en cours de développement avec de gros manques. Douche froide. Moi, ce que je veux, c'est un langage stable, bien spécifié, un bon investissement qui durera dans le temps.

Et puis le hasard m'a refait croiser la route de Ada. Pour moi Ada était un langage réservé à l'aéronautique, au spatial, aux centrales nucléaires... Du lourd quoi. Je me suis quand même renseigné sur la situation actuelle concernant ce langage. Et elle a bien changé depuis les années 90. Ada est certes toujours utilisé dans les domaines pré-cités mais, apparemment, il l'est également dans bien d'autres domaines, dont l'instruie. Je me suis donc penché sur le cas Ada. Déjà, la syntaxe de base m'est déjà connue puisqu'elle est très semblable à celle du VHDL [1] que je pratique depuis longtemps. Ensuite, s'il existe plusieurs versions du langage, celles-ci sont très fortement compatibles entre elles. Enfin, le langage est normalisé. Un programme écrit en Ada a de fortes chances d'avoir le même comportement quelque soit le compilateur. Ada est un langage fortement typé. C'est ce qui fait sa force. Du coup, il est possible de définir ses propres types de données de façon très poussée. Beaucoup de ce que j'ai lu sur Ada m'a plû. J'ai donc commencé à apprendre Ada. Aie aie aie ! Ca pique fort. La courbe d'apprentissage est vraiment raide. Le langage est vraiment complet. Du coup, ça rend son apprentissage plus long. Et chaque version d'Ada en rajoute une couche. Mais plus j'avance dans mon apprentissage, plus je trouve le langage intéressant.

Conclusion : Je vais continuer mon apprentissage d'Ada. Je ne sais pas si je m'en servirai un jour au boulot (le C a la vie dure) mais je le fais au moins pour ma satisfaction personnelle ;)




[1]Les concepteurs de VHDL ont basé la syntaxe de ce langage sur celle d'Ada.