Por qué la programación de máquinas debería ser la próxima tecnología en la que invierta

Todas las sesiones de Transform 2021 están disponibles bajo demanda ahora. Ver ahora.


Una generación emergente de herramientas utiliza el aprendizaje automático y otros métodos para automatizar partes del proceso de desarrollo de software. GitHub, por ejemplo, lanzó una herramienta de este tipo el mes pasado que sugiere código mientras un programador lo está desarrollando. Amazon también ha creado CodeGuru, una herramienta para ayudar a encontrar automáticamente cuellos de botella en el rendimiento del software. Facebook tiene Aroma, que también puede proporcionar recomendaciones de código a código. Y mi propio equipo en Intel Labs ha creado una herramienta (actualmente solo para nuestro uso interno) que detecta de forma autónoma errores en el código.

Este tipo de codificación automatizada se denomina “programación de máquina”. Una de sus capacidades más interesantes es la “similitud semántica de código”, que intenta determinar de forma autónoma si dos fragmentos de código muestran características similares o logran objetivos similares. Esto solo se ha logrado recientemente debido a los avances en computación, el acceso a “datos de gran código” como el nuevo Proyecto CodeNet de IBM / MIT, que incluye aproximadamente 14 millones de muestras de código y nuevos algoritmos de aprendizaje automático.

Al aprovechar el poder de la similitud semántica del código, la industria puede desarrollar sistemas automatizados para ayudar a los CIO a garantizar que los equipos de desarrolladores mantengan el mismo nivel de productividad a pesar del aumento de la complejidad del software y el hardware, al mismo tiempo que abordan la escasez de talento de los desarrolladores de software y luchan contra el desgaste.


Recomendado: ¿Qué es el Big data?.


Habilitación de traducciones de idioma a idioma

La similitud de semántica de código también podría usarse en herramientas que traducen entre lenguajes de programación (es decir, transpiladores). Históricamente, los sistemas de software que convierten el código fuente de un programa en un lenguaje de programación a otro estaban fuera de su alcance. Sin embargo, los avances recientes en la transpilación podrían ser críticos para las grandes organizaciones globales que tradicionalmente han codificado en lenguajes heredados más especializados.

Imagine un mundo en el que, en lugar de pasar muchos años traduciendo manualmente el banco de códigos de toda una organización de COBOL a Python, un sistema de programación de máquinas podría hacerlo todo por usted, en solo unos días. Los inicios de este tipo de sistemas ya existen e incluso se utilizan hoy en día en algunas empresas tecnológicas, como Adobe. Por ejemplo, Adobe Photoshop, según tengo entendido, está utilizando elevación verificada para convertir C / C ++ a Halide en su versión actual.

Los sistemas de similitud de semántica de código, como la similitud de código inferido por máquina (MISIM), no solo ayudarán a una organización a actualizar su completo sistema de código; también abrirán la reserva de talentos. Actualizar la base de código de una organización a un lenguaje de programación moderno a partir de lenguajes heredados más antiguos que son menos comprendidos por los desarrolladores de software de hoy facilitará la contratación a medida que más desarrolladores estén familiarizados con estos lenguajes más nuevos (por ejemplo, pasar de FORTRAN a Python). Los CIO incluso podrían ver una reducción en los errores de codificación porque los lenguajes de la nueva era tienden a ser más fáciles de trabajar y a manejar gran parte de la complejidad del sistema internamente.

Elevando a los desarrolladores novatos, ayudando a llenar el vacío de los desarrolladores

Los sistemas de similitud de semántica de código también pueden recomendar código. Co-Pilot de GitHub, que mencioné anteriormente, por ejemplo, está diseñado para aprender cuál es la intención de una pieza de software y luego recomendar versiones mejoradas (o más completas) para ayudar al desarrollador.

Cuando se realizan por completo, estos sistemas de recomendación de código tienen el potencial de aumentar la calidad y productividad del software tanto de los desarrolladores novatos como de los expertos, proporcionándoles alternativas mejoradas. En última instancia, esto ayudará a los CIO y sus departamentos de TI a mantenerse al día con las demandas de software sin contratar empleados adicionales o gastar dinero en nuevos recursos. La visión de cielo azul de estos sistemas de recomendación es mejorar la productividad de todos los desarrolladores.

Los sistemas de similitud semántica también pueden trabajar en conjunto con los desarrolladores para detectar errores en el código de forma autónoma.

La línea de fondo

El panorama del desarrollo de software está creciendo en complejidad debido a la heterogeneidad del software y el hardware. También se espera que los equipos de desarrollo produzcan software a un ritmo cada vez mayor. La programación de máquinas puede ser el único camino viable desde el punto de vista fiscal para los CIO y el desarrollo de software que supervisan. Entonces, este es el momento adecuado para comenzar a probar las herramientas de programación de máquinas emergentes y ver cómo implementarlas mejor en su organización.

Justin Gottschlich fundó y dirige el grupo de investigación de programación de máquinas en Intel Labs. También es investigador principal y cofundador del centro de investigación conjunto Intel / NSF CAPA. En el ámbito académico, tiene nombramientos como presidente de la junta asesora industrial y director ejecutivo del Centro PRECISE de la Universidad de Pensilvania (Penn), y también es profesor asistente adjunto en Penn en el Departamento de Ciencias de la Información y la Computación.

VentureBeat

La misión de VentureBeat es ser una plaza urbana digital para que los responsables de la toma de decisiones técnicas obtengan conocimientos sobre tecnología transformadora y realicen transacciones. Nuestro sitio ofrece información esencial sobre tecnologías y estrategias de datos para guiarlo a medida que dirige sus organizaciones. Te invitamos a convertirte en miembro de nuestra comunidad, para acceder a:

  • información actualizada sobre los temas de su interés
  • nuestros boletines
  • contenido exclusivo de líderes de opinión y acceso con descuento a nuestros preciados eventos, como Transformar 2021: Aprende más
  • funciones de red y más

Hágase miembro