Le développement logiciel à l'ère de l'intelligence artificielle

Les algorithmes d'intelligence artificielle (IA) connaissent un grand succès, notamment dans le domaine du deep machine learning (DL), et pas seulement dans les jeux de société.

Plus il y a d'évolution, plus l'humanité avance dans le développement de logiciels pour se faciliter la vie en utilisant l'intelligence artificielle. Le succès est palpable dans l'évolution des machines.

L'INFLUENCE DES ENTREPRISES

Développement basé sur l'IA

Avec le smartphone, des services tels que la reconnaissance vocale et visuelle font de plus en plus partie intégrante de la vie quotidienne. Dans des contextes spécialisés, l'intelligence artificielle a fait des progrès incroyables. Dans certains domaines, les algorithmes générés par la machine fonctionnent désormais mieux que les programmes de développement conventionnels.

Cependant, les réseaux de neurones et autres algorithmes d'IA ne fonctionnent pas sans programmation. C'est donc précisément grâce à l'IA que les langages de programmation tels que Python ou R sont redevenus très populaires. Une question intrigante est de savoir dans quelle mesure l'utilisation de l'IA modifie le développement logiciel lui-même.

L'IA est bien adaptée à la construction de systèmes d'auto-guérison et d'auto-optimisation. Si ces données sont de toute façon générées pendant le fonctionnement du cloud, elles peuvent être utilisées pour l'optimisation ou le diagnostic des pannes. Les algorithmes de maintenance prédictive peuvent économiser d'énormes coûts de ressources, de processus et d'exploitation.

Les modèles d'erreur typiques peuvent être facilement reconnus, signalés et automatiquement corrigés avec des mesures appropriées. Dans certains produits, tels que les bases de données ou les systèmes d'exploitation, ces mécanismes d'auto-rétablissement sont en place depuis un certain temps pour répondre aux situations d'erreur par des mesures d'auto-rétablissement.

automatisation et développement

Mais qu'en est-il du développement logiciel lui-même? Il serait utile qu'une analyse préliminaire des erreurs signalées soit effectuée ou que les erreurs typiques soient évitées à l'avance. Jusqu'à présent, les outils utilisés ne sont pas encore intégrés de manière optimale. Cela est également dû au fait qu'il existe très peu de standards d'intégration et que chacun fait ce qu'il veut. Au lieu de fouiller dans des collections d'extraits de code ou d'astuces de débordement de pile, ce serait une bonne idée si des recommandations éprouvées pouvaient également provenir directement d'un seul endroit pour les meilleures pratiques, des extraits de code pour les problèmes récurrents ou des suggestions d'amélioration.

De nombreux environnements de développement intégrés (IDE) signalent désormais les données utilisateur lorsque vous le souhaitez, afin de mieux adapter les fonctionnalités de l'outil à une utilisation réelle et de mieux comprendre les situations d'erreur courantes. Dans le domaine du développement web et mobile, il existe aussi des bibliothèques pour mieux comprendre le comportement des utilisateurs. Pour les applications iOS et Android, il existe plusieurs services et bibliothèques qui facilitent la distribution et l'analyse centralisées des bugs de plantage, même en temps réel.

Une approche prometteuse est le Language Server Protocol (LSP), qui a été publié en tant que norme ouverte par l'équipe de code Visual Studio de Microsoft à la mi-2016. Il prend désormais en charge un grand nombre de langages de programmation et de langages spécifiques. domaine (DSL) et est intégré dans de plus en plus d'IDE. Cela présente l'avantage de ne pas avoir à développer et à installer des extensions spécifiques à l'outil, mais plutôt une sur le serveur qui prend en charge le protocole LSP. Cela signifie également que les extensions peuvent être implémentées plus rapidement pour les nouvelles versions linguistiques. Cependant, les cas d'utilisation typiques des développeurs peuvent également être adaptés pour ne pas se perdre dans la multitude de fonctionnalités du langage.

Cela améliore non seulement la qualité du code, mais augmente également la productivité des développeurs, car ils n'ont pas besoin de rechercher des recommandations sur Internet ou de se référer à la documentation de l'API pour trouver des exemples appropriés. Les violations de règles d'encodage peuvent être détectées directement pendant le processus de construction et pas seulement dans une étape ultérieure. Cela peut être d'une grande aide, en particulier lors de la maintenance de code tiers, car il n'est pas nécessaire d'améliorer tout le code au préalable, mais cela peut être fait étape par étape directement lors de la création d'un nouveau code. Les duplications de code pourraient être facilement détectées et les problèmes de maintenance ultérieurs pourraient ainsi être éliminés à un stade précoce.

Concernant la réutilisabilité, ces algorithmes pourraient également suggérer de ne pas réinventer la roue mais de s'appuyer sur des solutions existantes et déjà matures. Cependant, toutes les suggestions ne peuvent pas être adoptées sans vérification. Mais si les problèmes d'erreur typiques ne se reproduisent pas et ne se propagent donc pas sur une longue période, on a déjà beaucoup gagné. En fin de compte, l'ordinateur du collègue IA est un autre type de programmation en binôme.

Le potentiel encore sous-utilisé de l'IA a récemment été souligné par le cabinet de conseil Forrester dans son rapport "How AI Will Change Software and Application Development. "

Les méthodes d'IA aident non seulement les mauvais codeurs à s'améliorer, afin qu'ils ne retombent pas encore et encore dans de vieilles habitudes, mais aident également tous les codeurs et testeurs à être plus intelligents et plus productifs. Seuls ceux qui n'arrêtent pas d'apprendre des autres, même si c'est par l'intermédiaire de leurs partenaires en IA, continueront à réussir. Le philosophe grec Héraclite reconnaissait déjà que tout coule et change. Pourquoi n'en serait-il pas différent avec le développement logiciel?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *