"Certains ont essayé pendant 60 ans de développer des systèmes capables d'écrire du code, mais le problème est que ces méthodes ne gèrent pas correctement l'ambiguïté. Vous devez généralement donner beaucoup de détails sur ce que fait le programme cible, et l'écriture de ces détails peut impliquer autant de travail que l'écriture même du code". "Bayou est une amélioration considérable. Un développeur peut donner à Bayou une très petite quantité d'informations - juste quelques mots-clés, vraiment - et Bayou essayera de comprendre ce que veut le programmeur et de prédire le programme qu'il veut".L'architecte et chercheur de Bayou, Vijay Murali, a précisé que :
"le développement de logiciels modernes est une question de règles, d'outils, de définitions et de protocoles spécifiques au système qui permettent à un morceau de code d'interagir avec un système d'exploitation spécifique. Il existe des centaines d'API et navigation parmi elles est très difficile pour les développeurs qui passent beaucoup de temps sur des sites de questions-réponses comme Stack Overflow à demander de l'aide à d'autres développeurs".GitHub a été fondamental dans la création de Bayou car ce dernier s'est entrainé lui-même, en analysant des millions de lignes de code en Java pour ensuite se baser dessus et écrire son propre code. Chris Jermaine, co-créateur de l'application, affirme que Bayou permet de faire la différence, notamment au moment de synthétiser des exemples de code pour des API logicielles spécifiques.
"La programmation d'aujourd'hui est très différente de ce qu'elle était il y a 30 ou 40 ans. Les ordinateurs d'aujourd'hui sont dans nos poches, sur nos poignets et dans des milliards d'appareils ménagers, de véhicules et d'autres dispositifs. Les jours où un programmeur pouvait écrire du code à partir de zéro sont révolus depuis longtemps".L'objectif principal de l'équipe de chercheurs est d'amener les développeurs à essayer de développer Bayou, publié sous une licence open source permissive.
"Plus nous aurons d'informations sur ce que les gens veulent d'un système comme Bayou, mieux nous pourrons le faire. Nous voulons que le plus de gens possible l'utilisent".Bayou est basé sur une méthode appelée neural sketch learning, qui forme un réseau de neurones artificiels à reconnaître des modèles de haut niveau parmi des centaines de milliers de programmes Java. Il le fait en créant une 'esquisse' (sketch) pour chaque programme qu'il lit, puis associe cette esquisse à 'l'intention' probable qui se cache derrière le programme. Suivant ce principe, lorsqu'un utilisateur pose des questions à Bayou, l'application va prendre une décision sur le type de programme qu'on lui demande d'écrire. Il va ensuite définir ce que l'utilisateur souhaite probablement et créer des esquisses de plusieurs de ces programmes.
"À partir de cette hypothèse, une partie distincte de Bayou, un module qui comprend les détails de bas niveau de Java et peut faire un raisonnement logique automatique, va générer quatre ou cinq portions de code. Il va les présenter à l'utilisateur comme des résultats d'une recherche sur le Web : 'Voici probablement la bonne réponse, mais en voici trois autres qui pourraient également correspondre ce que vous cherchez".
Nos articles remonteront en priorité dans « À la une » de Google.