IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Bret Taylor invite à repenser le développement logiciel qui entre dans une « ère de pilotage automatique » avec l'IA
Préconisant de nouveaux langages pour garantir que les codes générés par l'IA restent sûrs

Le , par Stéphane le calme

35PARTAGES

4  0 
Le développement logiciel entre dans une « ère de pilotage automatique » avec les assistants de codage IA, mais le secteur doit se préparer à une autonomie totale, affirme Bret Taylor, Président du conseil d'administration d'OpenAI et ancien co-PDG de Salesforce. Faisant le parallèle avec les voitures autopilotées, il suggère que le rôle des ingénieurs logiciels évoluera, passant d'auteurs de code à opérateurs de machines génératrices de code. Taylor préconise de nouveaux systèmes de programmation, langages et méthodes de vérification pour garantir que le code généré par l'IA reste robuste et sécurisé.

L’intelligence artificielle (IA) redéfinit les contours de l’industrie technologique et Bret Taylor invite à une profonde réévaluation des approches traditionnelles de développement logiciel. Lors d’une récente intervention, Taylor a souligné que les avancées rapides de l’IA nécessitent une remise en question des méthodologies établies, mettant en lumière les opportunités et les défis associés à cette révolution.

L'évolution rapide des modèles de langage avancés et des assistants de codage, tels que Cursor, a inauguré ce que Bret Taylor appelle l'ère du « pilote automatique » en ingénierie logicielle. Ces outils augmentent la productivité des développeurs en facilitant la rédaction de code, tout en maintenant les environnements de programmation traditionnels conçus pour les humains, comme Visual Studio Code et des langages tels que Python. Cependant, cette approche nécessite encore une supervision humaine constante, comparable à garder les mains sur le volant.

Taylor envisage une transition vers une véritable ère autonome du développement logiciel, où le rôle des ingénieurs évoluerait de la création directe de code à l'exploitation de machines génératrices de code.

Il dresse d'ailleurs un parallèle avec les voitures autonomes :

« Lorsque vous montez à bord d'une Waymo à San Francisco, vous voyez un siège conducteur vide et un volant qui tourne essentiellement comme une forme de divertissement pour les passagers. Assis sur la banquette arrière, on ne peut s'empêcher de réfléchir aux changements radicaux que connaîtront les voitures au cours des prochaines décennies, à mesure que la conduite autonome se généralisera. Lorsque les voitures passeront du pilotage automatique à l'autonomie, il sera possible non seulement de réorganiser les sièges et d'enlever le volant, mais aussi de transformer notre relation avec les voitures, car le coût du covoiturage et du robotaxiage diminuera considérablement.

« Avec l'avènement des grands modèles de langage, il est clair que nous sommes déjà entrés dans l'ère du pilotage automatique du génie logiciel. Les assistants de codage comme Cursor aident les programmeurs individuels à devenir beaucoup plus productifs, mais en grande partie dans le cadre d'environnements de programmation optimisés pour les humains : des éditeurs de texte optimisés pour les humains comme Visual Studio Code et des langages de programmation optimisés pour les humains comme Python, tous présentés sous forme de complétion de code de sorte que le programmeur informatique doit garder la main sur le volant tout le temps.

« Malgré le rythme de l'innovation dans les assistants de codage, il semble qu'il nous manque encore certaines des idées fondamentales qui pourraient faire du développement de logiciels véritablement autonomes une réalité. À quoi ressemblera le génie logiciel à l'ère de l'autonomie, lorsque nous nous serons débarrassés du proverbial siège du conducteur et du volant ? »

Une transformation qui soulève des questions fondamentales, selon lui

L'urgence de ces réflexions est accentuée par l'augmentation massive de la production logicielle, souvent accompagnée de vulnérabilités et de failles de sécurité similaires à celles du passé, mais avec moins de supervision et de maintenabilité. L'IA offre une opportunité unique de créer des logiciels non seulement plus nombreux, mais aussi plus robustes.

Taylor appelle ainsi l'industrie à adopter une ambition renouvelée pour concevoir cette ère autonome de l'ingénierie logicielle. Il encourage les professionnels travaillant sur ces problématiques à partager leurs projets, afin de s'inspirer mutuellement et de façonner ensemble l'avenir du développement logiciel.

« Dans l'ère autonome du génie logiciel, le rôle de l'ingénieur logiciel passera probablement de celui d'auteur de code informatique à celui d'opérateur d'une machine génératrice de code. Quel est le système de programmation informatique conçu nativement pour ce flux de travail ?

« Si la génération de code n'est plus un facteur limitant, quels types de langages de programmation devrions-nous construire ?

« Si un ordinateur génère la plupart des codes, comment faire en sorte qu'il soit facile pour un ingénieur logiciel de vérifier qu'il fait bien ce qu'il veut ? Quel est le rôle de la conception des langages de programmation (par exemple, ce que Rust a fait pour la sécurité de la mémoire) ? Quel est le rôle de la vérification formelle ? Quel est le rôle des tests, du CI/CD et des flux de développement ?

« Aujourd'hui, le principal bureau d'un ingénieur logiciel est son éditeur. Quel est le contrôle de mission d'un ingénieur logiciel à l'ère du développement autonome ?

« Non seulement répondre à ces questions sera amusant et aura un impact, mais je dirais que nous devons y répondre rapidement. Dans cette ère du pilotage automatique, nous augmentons considérablement la quantité de logiciels dans le monde, mais ces nouveaux logiciels semblent contenir les mêmes failles et vulnérabilités de sécurité que le code que nous écrivions auparavant, mais avec moins de surveillance et de facilité de maintenance.

« Avec l'IA, nous avons la possibilité non seulement de créer plus de logiciels, mais aussi de les rendre nettement plus robustes. Pouvons-nous créer un nouveau système d'ingénierie logicielle qui nous permette non seulement d'être plus productifs, mais aussi de produire moins de bogues et de vulnérabilités en matière de sécurité ? Pourquoi tous les programmes ne seraient-ils pas vérifiables et ne fonctionneraient-ils pas de manière incroyablement efficace si l'IA fait tout le travail ? Combien de logiciels dangereux dans le monde pourront être réécrits lorsque nous disposerons d'un tel système ?

« En tant qu'industrie, je pense que nous devrions être plus ambitieux et concevoir activement l'ère autonome de l'ingénierie logicielle. Si vous travaillez sur ce type de problèmes, j'aimerais en savoir plus et m'inspirer de votre projet ».


Le code généré par l'IA pourrait augmenter la charge de travail des développeurs et accroître les risques

Nous sommes encore loin, bien loin de ce monde imaginé par Bret Taylor. L'IA est censée faciliter le travail des développeurs, mais selon Harness, le code généré par l'IA pourrait en réalité tripler leur charge de travail dans l'année à venir.

L'augmentation du volume de code généré par les outils d'intelligence artificielle pose un défi majeur en termes de sécurité et de gestion des vulnérabilités. Bien que l'automatisation et la génération de code puissent considérablement accélérer le processus de développement, elles introduisent également de nouveaux risques. Si les tests et les mesures de sécurité ne sont pas rigoureusement appliqués à chaque étape du cycle de vie du développement logiciel, il devient presque inévitable que des failles passent inaperçues et soient déployées en production.

La rapidité avec laquelle le code est produit grâce à l'IA peut surpasser la capacité des développeurs à effectuer des tests approfondis et à assurer la sécurité de chaque ligne de code. Sans une infrastructure solide pour la détection et la correction des failles, les erreurs et les vulnérabilités peuvent s'accumuler, augmentant le risque d'exploits et de temps d'arrêt coûteux. La complexité accrue et la vitesse du développement exigent des outils de tests automatisés et des processus de sécurité intégrés pour compenser les limitations humaines.

Cette dépendance accrue aux outils d'IA pour la génération de code peut entraîner une réduction de la vigilance humaine, où les développeurs pourraient faire excessivement confiance aux suggestions de l'IA sans une vérification rigoureuse. Cette approche peut devenir dangereuse, car même les systèmes d'IA avancés peuvent générer du code défectueux ou vulnérable. Une approche équilibrée, combinant l'efficacité de l'IA avec une supervision humaine minutieuse, est essentielle pour garantir la qualité et la sécurité du code.


Avec Microsoft Copilot les développeurs ont constaté une augmentation de 41 % des bogues

un rapport révèle un décalage entre les dirigeants qui sont pressés à adopter les outils de codage IA et les développeurs qui sont plus prudents à l'égard de l'IA. Le rapport montre que les directeurs techniques et les RSSI sont cinq fois plus nombreux que les développeurs à penser que les outils de codage IA ne présentent aucun risque et deux fois plus nombreux que les développeurs à penser qu'ils sont "extrêmement prêts" à adopter des outils de codage IA.

Dans l'ensemble, le rapport constate que la sécurité du code généré par l'IA n'est pas une préoccupation majeure pour la majorité des organisations interrogées. Près des deux tiers (63,3 %) des personnes interrogées considèrent que la sécurité est excellente ou bonne, et seulement 5,9 % la considèrent comme mauvaise.

Un autre rapport d'Uplevel suggère que les outils de développement actuels basés sur la GenAI n'ont pas tendance à améliorer l'efficacité du codage et peuvent même augmenter le taux de bogues. Après la mise en œuvre de Microsoft Copilot, les développeurs ont constaté une augmentation de 41 % des bogues.


Alors que l'IA est souvent présentée comme la solution à toutes sortes de tâches, il semble qu'elle n'améliore pas toujours les choses lorsqu'il s'agit de développer des logiciels. L'étude, menée par Uplevel Data Labs, la branche d'Uplevel spécialisée dans la science des données, a porté sur un échantillon de 800 développeurs de logiciels appartenant à de grandes équipes d'ingénieurs et dont les organisations avaient adopté GitHub Copilot de Microsoft, un assistant de codage et un outil de développement basé sur la GenAI.

L'étude révèle que les développeurs utilisant Copilot n'ont pas constaté d'augmentation de la vitesse de codage. En termes de temps de cycle des demandes d'extraction (PR) (le temps nécessaire pour fusionner le code dans un dépôt) et de débit des PR (le nombre de demandes d'extraction fusionnées), Copilot n'a ni aidé ni nui aux développeurs.

Après la mise en œuvre de Copilot, les développeurs ont constaté une augmentation de 41 % des bogues dans les demandes d'extraction, ce qui suggère que l'outil peut avoir un impact sur la qualité du code. L'étude suggère également que l'utilisation de Copilot n'a qu'un effet limité sur le temps que les développeurs consacrent au travail en dehors des heures de travail. Ce temps a diminué de 17 % pour ceux qui ont accès à Copilot, mais surtout de 28 % pour un groupe de contrôle composé de ceux qui n'y ont pas accès.


Joe Levy, PDG d'Uplevel déclare : « Les équipes d'ingénieurs d'aujourd'hui cherchent à allouer leur temps au travail de plus grande valeur, à réaliser ce travail aussi efficacement que possible, et à le faire sans s'épuiser. Elles s'appuient sur les données pour prendre des décisions, et pour l'instant, les données ne montrent pas de gains appréciables dans ces domaines spécifiques grâce à l'IA générative ».

Il ajoute : « Mais l'innovation évolue rapidement, et nous ne suggérons pas aux développeurs d'ignorer les outils basés sur l'IA générative tels que Copilot, Gemini ou CodeWhisperer. Ces outils sont tous nouveaux, il y a une courbe d'apprentissage et la plupart des équipes doivent encore trouver les cas d'utilisation les plus efficaces pour améliorer la productivité. Nous continuerons à observer ces informations au fur et à mesure que l'adoption de la GenAI continuera à croître, et nous recommandons à tous ceux qui investissent dans des outils GenAI de faire de même ».

Source : Bret Taylor

Et vous ?

Que pensez-vous de l'argumentation de Bret Taylor ? Partagez-vous son avis (ses constats, ses projections et ses solutions) ? Dans quelle mesure ?

En vous penchant sur ses capacités actuelles, pensez-vous que l'IA puisse prendre le pas sur les développeurs ?

Quels nouveaux paradigmes de programmation pourraient émerger si la génération de code devient entièrement automatisée ?

Comment garantir que le code généré par des machines corresponde précisément aux intentions des développeurs ?

Si le rôle des ingénieurs évolue de créateurs de code à superviseurs de machines, quelles compétences devront-ils développer ?

Les nouveaux outils autonomes risquent-ils de marginaliser les développeurs juniors ou non spécialisés ?

Les environnements autonomes peuvent-ils réellement réduire les vulnérabilités logicielles, ou risquent-ils d’en introduire de nouvelles ?

Une erreur dans cette actualité ? Signalez-nous-la !