Pourquoi la programmation machine devrait être la prochaine technologie dans laquelle vous investir


Toutes les sessions de Transform 2021 sont disponibles à la demande dès maintenant. Regarde maintenant.


Une nouvelle génération d’outils utilise l’apprentissage automatique et d’autres méthodes pour automatiser certaines parties du processus de développement logiciel. GitHub, par exemple, a lancé le mois dernier un tel outil qui suggère du code pendant qu’un programmeur le développe. Amazon a également créé CodeGuru, un outil pour aider à trouver automatiquement les goulots d’étranglement des performances dans les logiciels. Facebook a Aroma, qui peut également fournir des recommandations de code à code. Et ma propre équipe chez Intel Labs a construit un outil (actuellement uniquement pour notre usage interne) qui détecte de manière autonome les erreurs dans le code.

Ce type de codage automatisé est appelé « programmation machine ». L’une de ses fonctionnalités les plus intéressantes est la « similitude sémantique du code », qui tente de déterminer de manière autonome si deux extraits de code présentent des caractéristiques similaires ou atteignent des objectifs similaires. Cela n’est devenu réalisable que récemment grâce aux progrès du calcul, à l’accès aux « données de code volumineux » telles que le nouveau projet CodeNet d’IBM/MIT qui comprend environ 14 millions d’échantillons de code et aux nouveaux algorithmes d’apprentissage automatique.

En exploitant la puissance de la similitude sémantique du code, l’industrie peut développer des systèmes automatisés pour aider les DSI à garantir que les équipes de développeurs maintiennent le même niveau de productivité malgré une complexité logicielle et matérielle accrue, tout en s’attaquant à la pénurie de développeurs de logiciels et en luttant contre l’épuisement professionnel.

Activation des traductions de langue à langue

La similitude de la sémantique du code pourrait également être utilisée dans les outils de traduction entre les langages de programmation (c’est-à-dire les transpileurs). Historiquement, les systèmes logiciels qui convertissent le code source d’un programme d’un langage de programmation à un autre étaient hors de portée. Cependant, les récents progrès en matière de transpilation pourraient être essentiels pour les grandes organisations mondiales qui ont traditionnellement codé dans des langages hérités plus spécialisés.

Imaginez un monde où, au lieu de passer de nombreuses années à traduire manuellement la banque de codes d’une organisation entière de COBOL en Python, un système de programmation machine pourrait tout faire pour vous, en quelques jours seulement. Les débuts de tels systèmes existent déjà et sont même utilisés aujourd’hui dans certaines entreprises technologiques, telles qu’Adobe. Par exemple, si je comprends bien, Adobe Photoshop utilise le levage vérifié pour convertir C/C++ en Halide dans sa version actuelle.

Les systèmes de similarité de sémantique de code – tels que la similarité de code inférée par machine (MISIM) – aideront non seulement une organisation à mettre à jour ses tout système de codes ; ils ouvriront également le vivier de talents. La mise à jour de la base de code d’une organisation vers un langage de programmation moderne à partir de langages hérités plus anciens qui sont moins compris par les développeurs de logiciels d’aujourd’hui facilitera le recrutement car davantage de développeurs sont familiarisés avec ces langages plus récents (par exemple, passer de FORTRAN à Python). Les DSI pourraient même constater une réduction des erreurs de codage, car les langages de la nouvelle ère ont tendance à être plus faciles à utiliser et à gérer une grande partie de la complexité du système en interne.

Élever les développeurs novices, aider à combler le manque de développeurs

Les systèmes de similarité de la sémantique du code peuvent également recommander du code. Le copilote de GitHub, que j’ai mentionné plus tôt, par exemple, est conçu pour apprendre quelle est l’intention d’un logiciel, puis recommander des versions améliorées (ou plus complètes) pour aider le développeur.

Une fois pleinement réalisés, de tels systèmes de recommandation de code ont le potentiel d’augmenter la qualité et la productivité des logiciels à la fois des développeurs novices et experts en leur fournissant des alternatives améliorées. En fin de compte, cela aidera les DSI et leurs services informatiques à répondre aux demandes de logiciels sans embaucher d’employés supplémentaires ni dépenser de l’argent pour de nouvelles ressources. La vision du ciel bleu de ces systèmes de recommandation est d’améliorer la productivité de tous les développeurs.

Les systèmes de similarité sémantique peuvent également fonctionner en tandem avec les développeurs pour détecter de manière autonome les erreurs dans le code.

La ligne de fond

Le paysage du développement de logiciels devient de plus en plus complexe en raison de l’hétérogénéité des logiciels et du matériel. Les équipes de développement devraient également produire des logiciels à un rythme croissant. La programmation machine peut être la seule voie à suivre financièrement viable pour les DSI et le développement de logiciels qu’ils supervisent. C’est donc le bon moment pour commencer à tester les outils de programmation machine émergents et voir comment les mettre en œuvre au mieux dans votre organisation.

Justin Gottschlich a fondé et dirige le groupe de recherche en programmation machine chez Intel Labs. Il est également chercheur principal et co-fondateur du centre de recherche conjoint Intel/NSF CAPA. Dans le milieu universitaire, il a été nommé président du conseil consultatif industriel et directeur exécutif du PRECISE Center de l’Université de Pennsylvanie (Penn), et est également professeur adjoint adjoint à Penn dans le département d’informatique et des sciences de l’information.

VentureBeat

La mission de VentureBeat est d’être une place publique numérique permettant aux décideurs techniques d’acquérir des connaissances sur la technologie transformatrice et d’effectuer des transactions. Notre site fournit des informations essentielles sur les technologies et les stratégies de données pour vous guider dans la gestion de vos organisations. Nous vous invitons à devenir membre de notre communauté, pour accéder à :

  • des informations à jour sur les sujets qui vous intéressent
  • nos newsletters
  • contenu de leader d’opinion fermé et accès à prix réduit à nos événements prisés, tels que Transformer 2021: Apprendre encore plus
  • fonctionnalités de mise en réseau, et plus

Devenir membre

Laisser un commentaire