Au cours des dernières décennies, divers mouvements ont bouleversé le monde du logiciel, promettant soit de confier une grande partie du travail de programmation aux utilisateurs finaux, soit d’automatiser davantage le processus. Les outils CASE, les langages de programmation de quatrième génération, la programmation orientée objet, l’architecture orientée services, les microservices, les services en cloud, le PaaS, l’informatique sans serveur, le low code et le no code ont tous théoriquement allégé les lourdes charges liées au développement de logiciels. Et, potentiellement, menace la sécurité de l’emploi des développeurs.
Pourtant, aujourd’hui, les développeurs de logiciels sont plus occupés que jamais, et la demande de compétences ne fait qu’augmenter.
« Je me souviens que lorsque le cloud a commencé à devenir populaire et que les entreprises ont migré vers Office 365, tout le monde disait que les pros de l’informatique n’auraient bientôt plus de travail », rappelle Vlad Catrinescu, auteur chez Pluralsight. « Devinez quoi : nous sommes toujours là, et plus occupés que jamais. »
La question est de savoir comment le travail des développeurs va finalement évoluer. Il est possible que l’intelligence artificielle, appliquée au développement et à la maintenance des applications, fasse enfin du codage de bas niveau une chose du passé.
La programmation en voie d’extinction ?
Matt Welsh, PDG et cofondateur de Fixie.ai, imagine notamment que « la programmation sera obsolète d’ici une dizaine d’années. Je pense que l’idée conventionnelle d’ »écrire un programme » est en voie d’extinction », prédit-il dans un récent article publié par l’Association for Computing Machinery. « En effet, pour toutes les applications, sauf les très spécialisées, la plupart des logiciels tels que nous les connaissons seront remplacés par des systèmes d’IA qui seront formés plutôt que programmés. »
Dans les situations où l’on a besoin d’un « programme simple – après tout, tout ne devrait pas nécessiter un modèle de centaines de milliards de paramètres fonctionnant sur un cluster de GPU – ces programmes seront eux-mêmes générés par une IA plutôt que codés à la main », ajoute-t-il.
Quel sera alors le rôle exact des professionnels de l’informatique et des développeurs ? Vlad Catrinescu estime que la nouvelle génération de solutions de développement automatisé ou low code « permet aux professionnels de l’informatique et aux développeurs de travailler sur des applications plus complexes. Les départements informatiques peuvent se concentrer sur les applications d’entreprise et sur la création d’applications et d’automatismes compliqués qui apporteront une grande valeur ajoutée à l’entreprise ».
Les modèles de formation pour remplacer le codage
Jusqu’à très récemment, « le développement s’est concentré sur une meilleure exploitation de l’ingénierie, ou sur la réutilisation d’un plus grand nombre de codeurs », explique Jared Ficklin, technologue créatif en chef et cofondateur d’argodesign. « Cela a conduit à des outils facilitant l’orchestration, qui permettent aux développeurs d’applications normales d’utiliser une interface graphique pour orchestrer des solutions d’IA à l’aide de modules de code appelés compétences, écrits par des experts en machine learning. De même, cela permet aux experts en la matière dans l’entreprise d’orchestrer des campagnes entières à l’aide d’une interface. »
De tels outils axés sur le machine learning « aident à recueillir les exigences et à tirer parti de l’ingénierie », poursuit Jared Ficklin. « Là où il y a des lacunes, les rédacteurs de code doivent intervenir et les combler. Dans tous ces cas, l’architecture est toujours gérée par le département informatique, car il y a beaucoup de points d’interopérabilité et de sécurité à maintenir. »
Avec l’avènement et la progression rapide de l’IA et du machine learning, les modèles de formation pourraient remplacer le codage à des niveaux très fondamentaux, prédit Matt Welsh : « Les assistants de codage IA tels que CoPilot ne font qu’effleurer la surface de ce que je décris. Il me semble totalement évident qu’à l’avenir, tous les programmes seront écrits par des IA, les humains étant relégués, au mieux, à un rôle de supervision. Si j’ai appris quelque chose au cours de ces dernières années à travailler dans le domaine de l’IA, c’est qu’il est très facile de sous-estimer la puissance de modèles d’IA de plus en plus grands. Je ne parle pas seulement de choses comme le CoPilot de Github qui remplace les programmeurs. Je parle de remplacer le concept même de l’écriture de programmes par des modèles d’entraînement. »
Développer différemment
Le fait de s’éloigner complètement du codage ouvre de nouvelles façons d’envisager le développement d’applications à des rôles commerciaux plus conceptuels et de haut niveau. « Des changements passionnants viennent de directions surprenantes », estime Jared Ficklin. « Le monde en général a imaginé le low code/no code comme une interface visuelle dans laquelle vous déplacez des nœuds pour assembler du code. C’est de l’orchestration, et cela nécessite toujours de savoir comment le code s’assemble. »
Jared Fricklin illustre ce nouveau moyen de développer et de mettre à jour des applications en action. « L’un de nos clients actuels, Builder AI, a adopté une approche unique qui consiste à utiliser l’analyse des conversations vocales par l’IA pour recueillir les besoins, puis à poursuivre l’architecture et la réalisation de ces expériences », explique-t-il.
« Ils disposent même d’un assistant vocal qui peut être ajouté à un appel de zoom et qui écoutera quelqu’un décrire son application mobile à un chef de projet, puis capturer et répertorier automatiquement les caractéristiques. Un humain les édite ensuite et l’IA les associe à un modèle d’architecture pour une application. Lorsque des modules de code existent, ils sont ajoutés, et lorsqu’ils n’existent pas, des rédacteurs de code interviennent pour ajouter un module. Au fil du temps, ce processus sera de plus en plus automatisé. »
Cela signifie plus d’informatique en temps réel, poursuit Jared Ficklin. « Celle où la latence, le rendu et l’assemblage du logiciel sont invoqués en temps réel. Vous pourriez imaginer demander à Alexa de vous fabriquer une application pour vous aider à organiser votre cuisine. L’IA reconnaîtrait les caractéristiques, choisirait les bons modèles et en temps réel, par voie hertzienne, livrerait une application sur votre téléphone portable ou peut-être dans votre ordinateur mobile portable. »
Source : ZDNet.com
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
Cliquez ici pour lire l’article depuis sa source.