À l'UC Davis, nous avons découvert (il y a une dizaine d'années) que, malgré la puissance et la flexibilité considérables des langages de programmation, les grands corpus de logiciels sont en fait encore plus répétitifs que les corpus de langues nationales. Nous avons ensuite montré que cette "naturalité" du code pouvait être capturée dans des modèles statistiques et exploitée dans des outils logiciels. Cette ligne de travail a bénéficié d'un formidable coup de pouce de la part de la haute capacité et de la flexibilité des modèles d'apprentissage profond. De nombreuses autres applications créatives et intéressantes de la naturalité ont suivi, de la part de collègues du monde entier. Plus récemment, nous nous sommes concentrés sur une autre propriété des logiciels : ils sont bimodaux. Les logiciels sont écrits non seulement pour être exécutés sur des machines, mais aussi pour être lus par des êtres humains ; ils se prêtent donc à la fois à l'analyse formelle et à la prédiction statistique. La bimodalité permet de nouvelles façons d'entraîner les modèles d'apprentissage automatique et de nouvelles façons de comprendre l'expérience humaine de la programmation. Nous soutenons (avec quelques exemples) que la bimodalité a été utile d'une manière "stable sur l'étagère" à travers de multiples générations d'échelles de modèles, de paradigmes et d'approches de formation.