Inteligencia Artificial, ¿un riesgo para los programadores?

En este post tratamos un tema muy controvertido, ¿Llegará el momento en el que una Inteligencia Artificial, en adelante IA, sea capaz de desarrollar código, aplicaciones completas y suprimir la figura del programador?

Recientemente, hemos conocido como la empresa Microsoft ha desarrollado, en colaboración con OpenAi, GitHub Copilot, un asistente de código, que, en un contexto de programación, es capaz de autocompletar código en función de una gran variedad de códigos fuente alojados en repositorios públicos de GitHub. Copilot, que actualmente se encuentra en modo demo previa invitación, puede adelantarse a tus necesidades y comprendiendo el contexto será capaz de ofrecerte el fragmento de código para cumplir con tu necesidad. Algo que resulta mágico, ¿no?

La automatización de ciertos puestos de trabajos, es una realidad, trabajos poco cualificados y repetitivos, pueden ser automatizados y realizados por máquinas programables a partir de algoritmos de automatización. Posiblemente en el futuro habrá menos cantidad de empleo disponible. De hecho, Organismos Internacionales, están trabajando en imponer un paraguas normativo, que implemente impuestos a las automatizaciones, algo así como una cuota de la seguridad social para robots. Además, como se destruirán muchos puestos de trabajos, aunque otros muchos se convertirán en otros más especializados, se debate si debería establecerse un Sueldo Mínimo Vital, que fuera sufragado por esa cuota.

En el sector de la programación, la sustitución de la figura del programador es más complicada, se necesitan conceptos avanzados, muchos años de experiencia y un alto grado de creatividad, para ser capaz de resolver todas las cuestiones que nos plantean los clientes.

Un símil, de destrucción de puestos de empleo de programación, aunque en realidad es una reconversión, son las son las herramientas No Code. Herramientas que permiten hacer webs y aplicaciones sin utilizar ni una línea código, pero que necesita una gran intervención para diseñar, programar, … y por parte de un gran equipo de desarrollo, que está continuamente actualizando, manteniendo e incorporando nuevas funcionalidades, por lo que realmente no se trata de un tema de automatización, sí que responde más a las necesidades del mercado.

Otra amenaza, en cuanto a la destrucción de empleos de IT se refiere, son las IA, algoritmos especialmente diseñados, que pueden tomar decisiones por sí solas, en función de un análisis de datos y patrones de comportamiento.

¿Llegará el momento en el que un usuario comunique lo que necesita a una IA y cree la web o aplicación que funcione? La respuesta a esta cuestión es complicada y debemos analizar de forma previa unos conceptos, que ayuden a comprender que es una IA, como funciona, que ofrece y en qué estado se encuentran las más avanzadas.

Qué es la IA (Inteligencia Artificial)

Probablemente, habrás escuchado que una IA nos gobernará, cambiará el mundo y trabajará por nosotros. Existen multitud de series cinematográficas en las que las IA son las amenazadas, que se acaban revelando de su creador y se vuelve en su contra ¿Pero realmente qué hay de cierto en estas afirmaciones y conjeturas? ¿Está tan avanzada esta tecnología como nos dicen las series de Netflix?

La inteligencia artificial es una nueva forma de resolver problemas, un sistema inteligente capaz de escribir su propio programa, con capacidad de aprendizaje y que puede tomar decisiones y hacer una serie de tareas, sin necesidad de intervención humana. Esta tecnología es capaz de analizar datos, encontrar patrones y tomar decisiones bastante cercanas a las que tomaría un ser humano.

Uno de los enfoques de la inteligencia artificial es el Machine Learning, una vertiente que dota a esta tecnología de la capacidad para aprender sin estar programados para ello.

En definitiva, una IA es una especie de algoritmo que es capaz, por sí solo, de resolver problemas y tomar decisiones, tal y como lo realizaría un Ser Humano.

En líneas precedentes ha salido un nuevo enfoque de la Inteligencia Artificial, Machine Learning, que en nuestra opinión es una de las ramas más avanzadas y que mejor resultados está aportando en la automatización de ciertos aspectos de la sociedad.

Machine Learning, ¿los ordenadores sabrán más que los programadores?

Machine Learning está detrás de las recomendaciones de películas en plataformas digitales, del reconocimiento por voz de los asistentes virtuales o la capacidad de los coches autónomos para circular solos por la carretera.

Se trata de una especialización de la inteligencia artificial que permite a las máquinas aprender sin ser expresamente programadas para ello, posibilitando la capacidad de realizar sistemas capaces que sean capaces de identificar patrones entre los datos, para de esta forma hacer predicciones. Esta tecnología está presente en multitud de aplicaciones, que utilizamos habitualmente, como son las recomendaciones de contenido de Netflix o Spotify o los asistentes de voz de Siri y Alexa.

En definitiva, se trata de una técnica que permite el reconocimiento de patrones, capaz de convertir una muestra de datos en un algoritmo informático y de extraer inferencias de nuevos conjuntos de datos para los que no ha sido entrenado previamente, y en función de estas injerencias realiza una óptima toma de decisiones. Todo esto sin intervención de un ser humano.

Es decir, una máquina puede estudiar patrones entre los datos que reciben y tomar decisiones, por ejemplo, es capaz de en función de tus patrones de búsqueda, recomendarte nuevas series, películas, o saber en función de tu historial de compras por internet, que vas a necesitar en un futuro próximo y ser capaz de recomendarte producto, antes que tú mismo sepas que lo vas necesitas.

Principales ejemplos de uso de la IA

Estos conceptos parecen muy abstractos y lejanos a nuestra realidad, pero en nuestro día a día ya existen ejemplos de usos reales de IA muy extendidos.

  • Asistentes de Voz / Chatbots conversacionales: Estos asistentes utilizan el procesamiento de lenguajes naturales (PLN) para interpretar las órdenes por voz y responder a ellas. Permiten ejecutar acciones como reproducir música, poner recordatorios o hacer compras, analizando las palabras que comunicas y tomando acciones. Por ejemplo, si llamas a tu banco hay multitud de acciones que se pueden realizar indicando la operación que necesitas, y que no necesitan ni son supervisadas por un ser humano, a veces, incluso, a veces, cuesta hablar con un operador humano.

  • Smartphones: Los smartphones utilizan la IA de muchas maneras, Siri o el Asistente de Google son ejemplos. Estos asistentes te permiten realizar búsquedas y peticiones por voz. Las últimas mejoras realizadas en la toma de fotografías “selfies”, se efectúan gracias a la inteligencia artificial, que identifica el enfoque adecuado y configura multitud de parámetros para que tu fotografía salga genial, con emojis, etc.

  • Búsqueda Predictiva de Google: El buscador de Google ofrece recomendaciones para completar la consulta en función del texto que hayas escrito. Los datos de esta búsqueda predictiva se presentan en base a los datos que Google recopila de los usuarios. El buscador utiliza la IA para adivinar lo que puedes estar buscando, y así poder ofrecer mejor información, recomendaciones, etc.

  • Recomendaciones de producto: Multitud de vendedores online como Amazon, Aliexpress o eBay utilizan diferentes técnicas de inteligencia artificial para recopilar información sobre los hábitos y preferencias de compra de los usuarios, de modo que puedan personalizar y mejorar su experiencia de compra online. Las recomendaciones de productos, se basan en un análisis de tus hábitos y gustos, y en la mayoría de casos concuerdan con tus necesidades reales, propiciando algo así como un personal shopper online.

  • Navegación con cartografía digital: La IA también se encuentra presente en los sistemas de navegación, en los que se leen una gran cantidad de información, para ofrecer la ruta más rápida o el estado, en tiempo real, del tráfico, recomendando al usuario rutas habituales o desvíos para posibles problemas con el tráfico rodado en la ciudad.

  • Automatización del hogar: Entrar en casa sin llaves y encender las luces con tan solo usar la voz para dar instrucciones a los electrodomésticos, son situaciones cotidianas en nuestro hogar, y que tienen detrás un alto componente de inteligencia artificial. De hecho, multitud de estos dispositivos aprenden tus hábitos, anticipándose a tus necesidades, subiendo la temperatura antes de que llegues a casa o levantando las persianas, justo antes de que suene tu despertador.

Como puedes observar, aunque el término de Inteligencia Artificial parece futurista, está presente en muchas facetas de nuestra vida, y cada vez más entra en actividades tan cotidianas como ver la televisión o hacer una búsqueda en la red.

GitHub Copilot: la IA de la programación

El ejemplo más reciente de IA aplicada a la programación lo tenemos en Github Copilot, la experiencia más avanzada, que ha sido capaz de llegar más lejos. Aunque cabe mencionar otras experiencias, menos conocidas, como son Tab Nine o Captain Stack, y de la que hablaremos a continuación.

Tab Nine es una extensión de Visual Studio Code, que se anticipa a las necesidades de codificación, proporcionando autocompletado de código que aumenta nuestra productividad como programadores. El algoritmo de IA es público y utiliza fuentes de datos abiertos con fragmentos de código.

Dentro de un equipo de desarrollo, Tab Nine estudia el código, las preferencias y los patrones del equipo, aprendiendo y adaptándose continuamente. Cada interacción con un miembro del equipo amplifica la precisión de la finalización del código, lo que permite la estandarización del código para los equipos de desarrollo.

Tab Nine se ejecuta localmente en su máquina. El código y los datos resultados de esta de IA nunca se comparten, lo que protege la propiedad intelectual de los proyectos realizados con esta extensión.

Personalmente, la uso en mis proyectos y sirve más como un autocompletado de código que realmente como una IA que sirva para la generación de grandes fragmentos de código o funciones completas.

Por otro lado, como otra experiencia de IA aplicada a la programación, tenemos otra extensión para Visual Studio Code, conocida como Captain Stack. Funciona filtrando los resultados de búsqueda de Google y devolviendo una lista de código como sugerencia, decidiendo el programador si la aportación le es útil o no.

Por otro lado, Github Copilot es un asistente de código diseñado para dar asistencia a los programadores, utiliza Inteligencia artificial para comprender el contexto del código y proponer nuevas líneas de código o incluso funciones nuevas. Esto lo realiza tomando como datos los miles de repositorios públicos de Github. Aunque muy pocos programadores han podido probar esta plataforma, actualmente en modo demo, previa autorización por la empresa, las primeras impresiones afirman que los resultados son satisfactorios y que pueden reducir bastante la carga de trabajo de un programador.

Además, permite importar un paquete de pruebas unitarias, sugiriendo nuevas pruebas para evaluar la eficiencia y efectividad del software, por tanto, ofrece una suite bastante completa en cuanto al desarrollo de software se trata.

Este producto no está lejos de la controversia, aparte de la posible sustitución de mano de obra humana, está el hecho que el código que utiliza como base para definir los patrones es Open Source, y Microsoft ha anunciado que la plataforma será de pago, infligiendo normas de la propiedad intelectual según la comunidad online. Cabe recordar que Copilot no está copiando código de Github, sino que escribe nuevas líneas de código, en función de lo aprendido, según los creadores el 99,9% del código generado es nuevo.

IA, ¿amenaza u oportunidad?

Aunque nadie puede saber qué deparará el futuro, parece cierto que aquellos puestos de trabajos pocos cualificados o tecnificados pueden ser sustituidos, por máquinas, robots, algoritmos… En nuestra opinión, desaparecerán unos trabajos y surgirán otros, más cualificados, de mayor valor añadido y actualizados a la tecnificación de la sociedad.

Todos estos códigos, infraestructuras, redes computacionales, … deben ser programadas, configuradas, mantenidas y actualizadas por personal cualificado, si actualmente existe un gran déficit de programadores, imaginemos en un escenario de automatización a gran escala.

Puede darse el caso de proyectos simples, webs sencillas o corporativas, para los cuales llegue el momento en el que un usuario le pida a una IA una web, junto a una serie de datos y cree una web funcional. Pero para proyectos más complejos, en los que las funcionalidades son más complejas, el grado de sustitución del ser humano es inviable, al menos a medio plazo.

En el caso de la programación, plataformas como Github Copilot son más un aliado que un enemigo, ya que te ayudarán a ser más eficiente, a reutilizar componentes y, en definitiva, a ser un programador más eficiente.

Si te preocupa que algo parecido te ocurra, como programador, te tocará continuamente reciclarte y estar atento a las últimas tecnologías para evitar que tu puesto de trabajo pueda ser sustituido por una IA. Es ahí donde OpenWebinars puede ayudarte con toda nuestra oferta de cursos, para que estés siempre a la última y no te quedes anticuado en el mundo IT.

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información