Herramientas basadas en Inteligencia Artifical para programación con versiones Linux
En el segundo artículo de esta serie describimos los problemas que genera el vibe coding y los pasos a seguir para implementar una alternativa mucho mejor. En este artículo hablaremos de herramientas basadas en Inteligencia Artificial para programación que cuentan con versiones para Linux.
Lo que venimos sosteniendo en estos artículos es que, a diferencia de lo que afirman los vendedores de cursos, las herramientas de Inteligencia Artificial no eliminan la necesidad de aprender programación. Por el contrario, la hacen aún más necesaria ya que tratándose de herramientas más poderosas exigen un mayor conocimiento de lo que se está haciendo.
Si quieres hacer una aplicación sencilla sin interfaz gráfica, como un programa para que tu hijo practique multiplicaciones en la terminal de Linux, te puedes arreglar con la versión web de tu modelo preferido. Pero, si vas a incluir interfaz gráfica, interacción con servicios externos y registro de usuarios la cosa se pone más compleja. Por suerte contamos con herramientas que pueden ayudarnos.
Herramientas basadas en Inteligencia Artificial para programación
La programación asistida por Inteligencia Artificial involucra una combinación de conocimientos y herramientas específicas que interactúan con el desarrollador permitiendo que este se enfoque en lo importante y delegue lo rutinario. Con lo importante nos referimos a la identificación del problema y la determinación de la mejor solución.
Las herramientas a las que nos referimos pueden ser parte de programas instalados en forma local, como herramientas independientes que asisten en funciones específicas o como plataformas de servicios en la nube que brindan soluciones completas desde la escritura del código al alojamiento de la aplicación. Si bien todas usan un Modelo de Lenguaje a Gran Escala (LLM por sus siglas en inglés) lo hacen de manera diferente.
Modelos, agentes, skills y MCP
Antes de empezar con la lista de herramientas, aclaremos algunos terminos que nos serán útiles para entender la función de cada una.
- Modelos de Lenguaje a Gran Escala: Son sistemas basados en Inteligencia Artificial entrenados con grandes cantidades de datos para entender y responder usando el lenguaje humano.
- Agentes: En el contexto de la Inteligencia Artificial un agente es toda entidad con la habilidad de actuar en forma autónoma dentro de un entorno. Es capaz de tomar decisiones sobre la información que recibe del mismo y actuar para modificarlo.
- Skills (Habilidades): Se trata de un conjunto de instrucciones especializado y reutilizable que le indica al agente la forma de realizar una tarea específica.
- MCP: Siglas en inglés para Protoclo Modelo Contexto es un estándar para la comunicación entre un modelo y recursos de datos externos.
En el primer artículo contábamos el caso de un vibe coder que creó una aplicación que mostraba una imagen para ver en que consistía un plato de un restaurant. Usemos el ejemplo para explicar la función de cada item que mencionamos.
Supongamos que vemos en el menú Boeuf Stroganoff. La aplicación debe
- Leer el menú.
- Buscar los ingredientes.
- Generar la imagen.
El modelo puede
- Entender la pregunta.
- Encontrar la respuesta.
Pero no puede:
- Leer el menú.
- Buscar y mostrar la imagen
.El agente determina que necesita
- Hacer reconocimiento óptico de caracteress.
- Buscar la imagen del plato.
- Mostrarla.
Eso define las skills necesarias
- OCR.
- Conexión con bases de datos de comidas.
- Mostrar las imágenes
Para cada una de estas tareas se necesita que las bibliotecas y/o interfaces de programación de aplicaciones tengan un lenguaje común con el agente. En este sentido es donde interviene el MCP.
La ventaja de usar un agente en lugar de interactuar directamente con el modelo es que evitamos ambigüedades y ahorramos tiempo en las indicaciones propias de una actividad específica.
Tipos de herramientas para programación asistida por Inteligencia Artificial
Entornos Integrados de Desarrollo
Los entornos Integrados de Desarrollo incluyen, ya sea de forma directa o por medio de extensiones un asistente que brinda ayuda en tiempo real para completar, depurar y revisar código en tiempo real. Entre sus funciones:
- Sugiere que línea de código escribir a continaución.
- Responde preguntas.
- Corrige errores
- Muestra ejemplos.
El más popular de los editores integrados de desarrollo con y sin Inteligencia Artificial es Visual Studio Code.
Fue el primer producto de Microsoft que tuvo versión para Linux y puede instalarse desde la tienda de Snap con el comando
sudo snap install code --classic
O si quieres probar las últimas novedades antes que nadie
sudo snap install code-insiders --classic
Aunque esta se trata de una versión en desarrollo que puede tener errores.
El asistente de Inteligencia Artificial de Visual Studio Code es GitHub Copilot. Es algo así como el autocompletado del teléfono pero recargado. No solo sugiere como terminar la línea de código que estás escribiendo sino que también termina la función que empezaste a escribir de acuerdo con el contexto o directamente te la escribe. También puede generartela directamente si escribes lo que la función debe hacer (Por ejemplo “Hacer ocr del menú”.
Aunque no permite conversar en lenguaje humano como los LLM, GitHub Copilot tiene la ventaja de que se adapta a tu estilo de programación. Por ejemplo, si se te ocurre nombrar las variables con los nombres de los personajes de los pitufos seguirá esa costumbre.
GitHub Copilot tiene una versión gratuita con prestación limitada y una de pago por 10 dólares al mes que te permite usar los agentes de codificación de OpenAI (ChatGPT) y Claude
Además, Visual Studio Code tiene extensiones que permiten interactuar con otros asistentes de Inteligencia Artificial. Podemos instalarlas desde
Archivo
Preferencias
Extensiones y buscarlas por el nombre en la ventana de búsqueda.
Continue.dev
Es una extensión de código abierto que tiene dos ventajas con respecto a GitHub Copilot
- Podemos elegir el modelo con el cuál queremos trabajar. Ya sea local o en la nube.
- Podemos chatear en lenguaje natural como lo hacemos con la interfaz web de cualquier modelo.
.Por dar un ejemplo, “Cambia el nombre de las variables a personajes de Los picapiedras”. En caso de que no nos guste los nombre elegidos por ChatGPT podemos probar con Claude.ai.
Esta extensión analiza los archivos del proyecto y de acuerdo con nuestras indicaciones propone cambios concretos o genera código adecuado al contexto.
En el próximo artículo continuaremos enumerando las herramientas disponibles para hacer programación asistida por Inteligencia Artificial en Linux.
.png)
