A savoir qu'on peut vérifier qu'un programme Ada ne fera pas une boucle infini ou ne fera pas une multiplication qui dépassera la valeur d'un Int. Mais pour arriver a ce résultat, il faut tout dire a Ada.
Alors si on parle de vérifier, ce sera via du Spark mais sinon, il y a juste à définir des types ce qui n'est pas en soi insurmontable.
Alors oui, il faut tout dire mais ça documente aussi beaucoup le code.
Surtout qu'Ada perd un peu en performance par rapport a Rust ou C/C++.
Source ? Usuellement, on estime que le code Ada est 30% plus lent que le code C et équivalent au code C++, sans retirer les runtime checks sinon, c'est équivalent au C. Mais bon, j'ai pas plus de source :D
[^] # Re: Jamais Ada ne sera utiliser ailleurs que dans son domaine.
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal la rouille et la comtesse. Évalué à 4.
Le lien suivant montre qu'il ne faut justement pas tout lui dire, mais plutôt que les choses sont dites explicitement (y compris quand on veut faire des conneries contre lesquelles il y a nativement un garde-four, alors qu'en face on s'expose à des surprises ou on rajoute de la bordure cryptique) http://archive.adaic.com/intro/ada-vs-c/ada-vs-c.html
Corolaire, pour obtenir le même niveau de "ité" en C il faut en dire bien bien plus... https://www.electronicdesign.com/technologies/iot/article/21801203/comparing-ada-and-c
Voir aussi https://www.adahome.com/History/Steelman/steeltab.htm
J'ai terminé le journal par ce lien : https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/gnat-rust.html
Comme tu dis, la lenteur apparente est souvent due aux vérifications supplémentaires pendant l'exécution. À noter aussi que la performance du code Ada dépend du compilateur sous-jacent (si on utilise GNAT c'est bien GCC au final) et de ses options... Cf. http://computer-programming-forum.com/44-ada/99cf01d940383de5.htm et http://computer-programming-forum.com/44-ada/641218ec0d2aba9c.htm par exemple.
"It is seldom that liberty of any kind is lost all at once." ― David Hume