C’est la fin de la programmation telle que nous la connaissons – encore une fois
Au cours des dernières décennies, divers mouvements, paradigmes ou avancées technologiques – peu importe comment vous les appelez – ont bouleversé le monde du logiciel, promettant soit de confier beaucoup de travail de programmation fastidieux aux utilisateurs finaux, soit d’automatiser davantage le processus. . Les outils CASE, 4GL, la programmation orientée objet, l’architecture orientée services, les microservices, les services cloud, la plate-forme en tant que service, l’informatique sans serveur, le low-code et le no-code ont tous théoriquement supprimé les lourdes charges du développement logiciel. Et, potentiellement, menacer la sécurité d’emploi des développeurs.
Pourtant, nous y sommes. Les développeurs de logiciels sont plus occupés que jamais, la demande de compétences ne faisant qu’augmenter.
Également: 74% des développeurs sont prêts à démissionner pour un nouvel emploi. Et ce n’est pas qu’une question d’argent
« Je me souviens que lorsque le cloud a commencé à devenir populaire et que les entreprises migraient vers Office 365, tout le monde disait que les professionnels de l’informatique n’auraient bientôt plus de travail », déclare 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 évoluer à terme. 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é.
Matt Welsh, PDG et co-fondateur de Fixie.ai, pour sa part, prédit que « la programmation sera obsolète » dans la prochaine décennie. « Je crois 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 très spécialisées, la plupart des logiciels, tels que nous les connaissons, seront remplacés par des systèmes d’IA 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 s’exécutant 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 Gallois.
Quels seront alors exactement les rôles des professionnels de l’informatique et des développeurs ? Catrinescu estime que la génération émergente de solutions de développement automatisées ou à faible code « permet aux professionnels de l’informatique et aux développeurs de travailler sur des applications plus complexes. Les services informatiques peuvent se concentrer sur les applications d’entreprise et créer des applications et des automatisations complexes qui ajouteront beaucoup de valeur à la entreprise. »
Également: L’avenir du Web aura besoin d’un autre type de développeur de logiciels
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 pool plus large d’auteurs de code », raconte Jared Ficklin, technologue créatif en chef et co-fondateur d’argodesign. « Cela a conduit à des outils qui facilitent l’orchestration, qui permettent aux développeurs d’applications normaux 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 apprentissage automatique. De même, cela permet aux experts en la matière de l’entreprise d’orchestrer l’ensemble campagnes à l’aide d’une interface. »
De tels outils basés sur l’apprentissage automatique « aident à rassembler les exigences et à tirer parti de l’ingénierie », poursuit 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 service 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 de l’apprentissage automatique, les modèles de formation pourraient remplacer le codage à des niveaux très fondamentaux, prédit Welsh :
Les assistants de codage AI tels que CoPilot ne font qu’effleurer la surface de ce que je décris. Il me semble totalement évident que bien sûr tous les programmes à l’avenir seront finalement é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 des dernières années de travail dans 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 remplacement des programmeurs par CoPilot de Github. Je parle de remplacer tout le concept d’écriture de programmes par des modèles de formation.
Un abandon complet du codage ouvre de nouvelles façons d’envisager le développement d’applications – vers des rôles commerciaux plus conceptuels et de haut niveau. « Des changements passionnants viennent de directions surprenantes », déclare Ficklin. « Le monde entier a imaginé le code faible/aucun code comme une interface visuelle dans laquelle vous déplacez les nœuds pour enchaîner le code. C’est de l’orchestration, et cela nécessite toujours de savoir comment le code s’enchaîne. »
Également: Développement low-code : voici comment il est utilisé
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é l’approche unique consistant à utiliser l’analyse par IA des conversations vocales pour recueillir les exigences, puis à concevoir et à réaliser ces expériences », raconte-t-il. « Ils ont même un assistant vocal qui peut être ajouté à un appel zoom qui écoutera quelqu’un décrivant leur application mobile à un chef de projet et capturera et répertoriera automatiquement les fonctionnalités. Un humain les édite ensuite, et l’IA les couplera ensuite dans un modèle d’architecture pour une application. Là où des modules de code existent, ils sont corrigés, là où ce n’est pas le cas, les rédacteurs de code interviennent et ajoutent un module. Au fil du temps, ce processus deviendra de plus en plus automatisé. »
Cela signifie plus de calcul en temps réel, poursuit Ficklin. « Une où la latence, le rendu et l’assemblage du logiciel sont invoqués en temps réel. Vous pouvez imaginer demander à Alexa de vous créer une application pour vous aider à organiser votre cuisine. L’IA reconnaîtrait les fonctionnalités, choisirait les modèles corrects et en temps réel, par liaison radio livrer une application sur votre téléphone portable ou peut-être sur votre ordinateur portable portable. »