IA : Codota, une extension pour EDI, facilite la programmation centrée sur l'exemple
Avec Java et bientôt d'autres langages

Le , par Patrick Ruiz, Chroniqueur Actualités
La startup israélienne Codota vient d’obtenir 2 millions de dollars de capitaux de démarrage de Khosla Ventures et d’autres investisseurs, dont l’université Technion d’où est issu le Prof. Eran Yahav, l’un de ses fondateurs. Dror Weiss, le cofondateur de la startup est d’avis que les développeurs passent 20 % de leur temps à la recherche de code. C’est donc pour leur simplifier la vie que la startup met à leur disposition une intelligence artificielle destinée à proposer du code en temps réel.

Dans sa version actuelle, l’outil est proposé comme une extension à Eclipse (Mars au minimum), IntelliJ 14 (au minimum) et Android Studio, des environnements de développement intégrés que l’on retrouve sur les systèmes d’exploitation Windows, Linux et macOS. Les utilisateurs de l’EDI NetBeans devront probablement patienter encore un peu.

Codota est disponible en deux versions. Celle disponible gratuitement en téléchargement permet de mettre l’intelligence artificielle à contribution pour proposer le code le plus adapté à la résolution d’un problème donné sur Internet, notamment sur des plateformes à forte notoriété comme GitHub et StackOverflow, et le proposer au développeur.

Concrètement, au fur et à mesure que la tâche de développement évolue, l’outil propose des morceaux de code tirés de contenu en ligne qui résolvent le même problème sans nécessairement être codés selon l’approche adoptée par le développeur. « Plus nécessaire de chercher à réinventer la roue tout le temps. Avec cet outil vous arrêtez de rechercher le code, c’est lui qui vient à vous », déclare Dror Weiss.

Petite précision cependant, les résultats retournés par cette version dérivent uniquement des capacités d’apprentissage du code disponible sur ces plateformes en ligne. Les développeurs intéressés par la possibilité d’utiliser l’outil pour qu’il fasse des propositions sur la base de l’apprentissage de leur propre code devront faire l’acquisition de la version payante.

Cette version de l’outil prend uniquement Java en charge pour le moment. D’autres langages de l’univers du développement seront bientôt proposés aux utilisateurs. Il constituera donc sur le long terme une belle alternative à des outils existants comme Bing Code Search, une extension à Visual Studio qui permet à des développeurs de rechercher des exemples à partir de Bing ou Codex, une base de connaissance de bonnes pratiques de codage en langage Ruby.

« Nous travaillons à ce que Codota soit l’assistant idéal du développeur dans les tâches qui lui incombent », déclare le Prof. Eran Yahav, à la suite duquel Vinod Khosla, fondateur de Sun Microsystems et de Khosla Ventures déclare : « L’intelligence artificielle aura un impact sur tous les aspects de la vie moderne et le développement logiciel ne sera pas en reste. Il y a énormément de quoi tirer profit de tous les importants dépôts de code actuellement disponibles en ligne. »


Sources : Codota, Globes

Et vous ?

Que pensez-vous de cet outil ?

Voir aussi :

Bing s'invite dans Visual Studio, Bing Code Search permet de trouver et exploiter des extraits de code dans l'EDI


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de UndeadangerousK UndeadangerousK - Membre régulier https://www.developpez.com
le 30/06/2017 à 11:16
Ca promet d'être très intéressant : Gain de productivité, c'est pour ca que les entreprises vont payer pour, mais le développeur n'est pas en reste, il va pouvoir bénéficier d'une aide non négligeable puisque son code sera optimisé presque en direct, ce qui lui permettra d'intervenir sur des sujets plus complexes (et potentiellement plus intéressant)..

J'ai vraiment hâte de voir ça appliqué à d'autres langages !
Avatar de captaindidou captaindidou - Membre averti https://www.developpez.com
le 02/07/2017 à 12:30
Je vois la phase de codage comme deux tâches distinctes :
- intégrer l'exploitation de tierces bibliothèques
- concevoir les algorithmes et l'architecture qui font la plus-value de son propre logiciel

La seconde tâche est ce qui fait la plus-value du produit logiciel. Je la considère donc hors de propos de cette IA.
Parfois même, cette tâche peut être réduit à sa plus simple expression comme lorsque toutes les bib faisant la fonction existent, et qu'il ne reste plus qu'à les caréner/carrosser dans une belle IHM (un navigateur internet de base ou un client bittorrent, par exemple).

Donc, ce que j'en comprends c'est que cette IA sera capable de fournir une aide à l'intégration de tierces bib.

C'est très séduisant sur le papier lorsqu'on pense au temps que l'on perd à intégrer l'exploitation d'API dans son code.

Mais je crains que ce soit reculer pour mieux sauter parce que j'imagine que cela ne va pas aller sans bug d'intégration : l'IA n'est pas parfaite. Il va bien falloir comprendre ce que l'IA a produit et donc perdre du temps à s'approprier ce qu'a écrit l'IA. Et si la façon d'écrire ce code ne correspond à rien d'humainement concevable ?

J'imagine donc que cela doit être vu comme une aide à double tranchant : il se peut que cela fasse gagner du temps comme en faire perdre selon les circonstances.
Avatar de anapurna anapurna - Membre expert https://www.developpez.com
le 04/07/2017 à 17:01
salut

bien au contraire cela ne vas pas optimiser le code mais plutôt avoir une multitude de copier\coller
et donc de se retrouver avec énormément de méthode similaire que l'on aurais pu factoriser
... j'avoue que le "developpeur" utilisant ceci ne seras qu'un simple utilisateur de brique preconstruit
Avatar de Gouyon Gouyon - Membre éprouvé https://www.developpez.com
le 07/07/2017 à 8:22
A priori très intéressant. En effet je ne compte plus le nombre de fois où je me suis dit "Ah mais j'ai déjà fait un truc comme ça il y a un bout de temps où j'ai fichu ce code?". Ou encore "Sur quel site j'ai vu cet algorithme pour faire ça" et de passer un certain temps à faire des fouilles archéologiques
Je pense que je vais l'essayer et voir ce que ça donne.
Avatar de Matthieu Vergne Matthieu Vergne - Expert confirmé https://www.developpez.com
le 07/07/2017 à 16:38
Quid des licences ?

Non parce que si j'ai bien compris, ce n'est pas l'IA qui produit le code, elle se contente d'afficher des bouts de codes retrouvés sur les sites cités, sur la base de la distance avec le code du programmeur local (j'imagine par comparaison de mots clés, mais peu importe, là n'est pas mon sujet). Du coup, c'est comme copier coller du code sur le net. Sauf que ce dernier ne se fait pas n'importe comment : les licences ça existe. Et si on prend un bout de code d'une lib sous GPL, c'est l'ensemble de notre code qui doit passer sous GPL, sinon on prend le risque du procès (à tout du moins de devoir revoir son code pour remplacer les buts de code copiés sans réfléchir). Je n'ai pas de doute que pour du très ponctuel, ça rentre dans le fair use américain. Mais là on parle d'un outil intégré qui tourne en continu, et donc d'un changement de pratique de fond où les copies qu'on faisait manuellement, qui étaient ponctuelles du fait du temps que ça prend pour les trouver, deviennent de vrais pratiques de codage à part entière. Je n'ai aucun doute qu'on finirait par voir un début de classe où on nous suggère d'implémenter une méthode comme ceci ou comme cela, puis de suggérer de manière très efficace les méthodes suivantes, sans se rendre compte qu'on vient de recopier une classe entière d'une autre lib. Celui qui prendra ces habitudes se retrouvera au final à recopier plus de code venant de libs qu'il ne connaît pas, plutôt que de chercher et intégrer les libs en question comme un dév compétent devrait le faire. Des suggestions de lib me semblent plus intéressantes que des suggestions de code : si l'IA est capable de retrouver le code, c'est que le code existe déjà, faut pas l'oublier.

En résumé, ce genre d'outil favorise la réinvention de la roue au dépend de l'intégration de lib, en plus d'augmenter les risques de non respect des licences. Autant je suis tout à fait pour cette réinvention pour parfaire son expertise du code, mais cela se passe par le reconception, et non par la copie, de façon justement à augmenter la maîtrise du développeur. En dehors de ce contexte, je ne peux pas conseiller. Je vois donc cet outil surtout comme un n-ième piège de la productivité à tout prix.
Offres d'emploi IT
Chef de projet SI infrastructure H/F
Michael Page - Ile de France - Aubervilliers (93300)
Administrateur dba oracle
D&B SELECTION - Provence Alpes Côte d'Azur - Nice (06000)
Administrateur systèmes et réseaux H/F
Confidentiel - Ile de France - Orsay (91400)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil