Introduction
L'entreprise Jane Street a longtemps été sceptique envers les méthodes formelles, considérant que les coûts étaient trop élevés par rapport aux bénéfices. Cependant, avec l'émergence de la programmation agente, l'entreprise a changé de perspective et est maintenant enthousiaste à l'idée d'explorer les possibilités offertes par les méthodes formelles.
Contexte Technique
Les méthodes formelles sont des techniques utilisées pour vérifier la correction d'un logiciel. Elles peuvent être coûteuses et nécessiter beaucoup de temps et de ressources. L'exemple du noyau microkernel seL4, qui a nécessité 25 années-personnes d'effort pour vérifier 8 700 lignes de code, illustre les défis liés à la mise en œuvre de ces méthodes. Cependant, l'avènement de la programmation agente a modifié le calcul coût/bénéfice, car les modèles peuvent aider à réduire les coûts et améliorer l'efficacité de la vérification.
Analyse et Implications
La programmation agente soulève de nouveaux défis, tels que la nécessité de vérifier la qualité du code généré par les agents. Les méthodes formelles pourraient aider à relever ce défi en fournissant une forme de feedback puissante pour améliorer la qualité du code. De plus, les types et les systèmes de types peuvent offrir des garanties universelles qui sont difficiles à obtenir avec les tests seuls. L'utilisation de méthodes formelles pourrait donc être bénéfique pour améliorer la qualité et la fiabilité des logiciels.
Perspective
Jane Street est bien positionnée pour travailler sur ce problème en raison de son contrôle profond du langage utilisé et de sa communauté de programmeurs prêts à adopter de nouvelles technologies. L'entreprise peut ajuster son langage pour le rendre plus adapté aux techniques de preuve et attirer des experts en méthodes formelles pour rejoindre ses efforts. Les défis à relever incluent la nécessité de trouver un équilibre entre les améliorations à court terme et les visions à long terme, ainsi que de collaborer avec la communauté extérieure pour avancer dans ce domaine.