Herramientas de IA para programadores

Herramientas de IA para programadores

El full-stack de la IA, LLMs y editores inteligentes.

Herramientas de IA para programadores

La inteligencia artificial está revolucionando el mundo del desarrollo de software. Cada día aparecen herramientas más sofisticadas que aumentan la productividad y eficiencia de los programadores. En este artículo, exploraremos las principales categorías de herramientas de IA disponibles actualmente para programar.

Partiremos de los modelos de lenguaje grande (LLM) que dan soporte a las herramientas de edición de código (IDE) y veremos algunos de los productos y servicios intermedios que nos permiten usar esas herramientas de manera más cómoda y potente.

🧠 Modelos Grandes de Lenguaje (LLM)

Esta es la columna vertebral de las herramientas de IA para todo el mundo, y, claro, también para la programación. Lo mínimo que necesitas saber de un LLM es que es una base de datos gigantesca que contiene información sobre cualquier tema y que se puede consultar usando lenguaje natural. Te contestará igualmente con texto, y para ello usa técnicas estadísticas super complejas que afina durante procesos de aprendizaje.

Y el trabajo de programador se basa en escribir código, para expresar con detalle procesos complejos en un lenguaje conciso y no ambiguo. Para un LLM trabajar con código en lugar de texto de los humanos es coser y cantar.

Por lo tanto, no es de extrañar que los LLM se hayan convertido en una parte fundamental de las herramientas de IA para programadores. Estos modelos pueden generar, explicar, documentar y corregir código. Pero cada vez más, está ayudando en todas las fases del desarrollo. Conviene conocer un poco más sobre ellos.

🔏 LLM cerrados (usables desde sus plataformas)

Para empezar, esto es software, datos y cálculos. Así que, desarrollar, entrenar y ejecutar todo esto cuesta dinero. Muchísimo dinero. Es normal que los primeros y digamos que mejores LLM, sean productos cerrados, desarrollados y mantenidos por grandes empresas privadas. Seguro que has oído hablar de OpenAI, o Anthropic, además de los gigantes de siempre como Google, Microsoft, etc.

Claude de Anthropic

  • Aunque menos conocido que GPT-4, Claude ofrece las mejores capacidades de asistencia en programación y generación de código.

GPT de OpenAI

  • Utilizado en herramientas como GitHub Copilot, ofrece capacidades avanzadas de generación de código y asistencia en programación.

Todos estos fabricantes ofrecen una API para que puedas usar sus modelos en tus propias aplicaciones. Y es así como los integran los editores y demás herramientas que veremos después. Pero antes, un poco de aire fresco con los modelos abiertos

🔓 LLM abiertos (instalables y modificables)

Los LLM abiertos son modelos de código más o menos abierto, que pueden ser utilizados, modificados y distribuidos más o menos libremente. Todo un poco más o menos, ya sabes...

Gemini de Google

  • También ofrece capacidades avanzadas de generación de código y asistencia en programación.

LLaMA de Meta

  • Un modelo de lenguaje de gran escala que puede ser ajustado para tareas específicas de programación.

Codestral de Mistral

  • Modelos muy buenos para el código, y de menor escala que los anteriores.

Qwen de Alibaba

  • Otro modelo que destaca por su reducido tamaño y gran capacidad para el código.

Como supondrás, una cosa es el software y otra muy distinta es el hardware necesario para ejecutar estos modelos. Y aquí es donde entran en juego las GPUs, los gigabytes de RAM y los terabytes de SSD. Los principales fabricantes te ofrecen sus propios servicios en la nube o usan las infraestructuras más potentes como Google, Azure o AWS. Desde ahí puedes usarlos y pagar por el uso que haces de ellos.

📦 Servicios de API

Pero hay más. Han proliferado empresas que se han especializado en ofrecer aceleradores, concentradores y ofuscadores de llamadas a esas APIs. Por ejemplo:

Groq

  • Ofrece un acelerador de llamadas a las APIs de LLM de varios fabricantes.

OpenRouter

Integrador de APIs de varios fabricantes, y con un catálogo de más de 150 modelos que te permite llamarlos de forma transparente.

Hugging Face

  • Puedes usar cualquier modelo en sus servidores, y lo mejor, puedes hacer fine tuning para tus necesidades.

Y sí, también puedes usar modelos de IA locales, en tu propia máquina.

🏠 Instalación local de LLM

La instalación local de LLM ofrece ventajas en términos de privacidad (eso seguro, porque no usas servicios externos) y velocidad de respuesta (habría que verlo, porque ejecutar un LLM en local es una locura para la mayoría de los equipos). Pero si quieres experimentar, algunas opciones populares incluyen:

LM Studio

  • Una aplicación que permite ejecutar modelos de lenguaje localmente en tu ordenador.

Ollama

  • Una herramienta para ejecutar LLM de forma local, con soporte para varios modelos como Llama 2 y CodeLlama.

Estos runners de LLM locales necesitan descargar los modelos, habitualmente desde Hugging Face. Y, lo dicho, para ejecutarlos, necesitan bastante poder de cálculo y memoria RAM.

Y hasta aquí las bestias de carga del backend. Vamos ahora con las herramientas del frontend.

🧑‍💻 Editores de código con IA

El impacto de la IA en la edición de código también ha dado lugar a un ecosistema diverso de herramientas que van desde editores clásicos con extensiones mejoradas por IA hasta editores de nueva generación con integración profunda de IA.

🧩 Extensiones de IA en editores clásicos

Los editores tradicionales como VsCode o JetBrains se han adaptado rápidamente al auge de la IA con extensiones que mejoran su rendimiento.

Aider

  • Merece casi una categoría aparte, porque realmente es un CLI que se integra en la terminal de tu editor para ayudarte a escribir código.

Cody

  • Proporciona completado de código inteligente y documentación en línea para varios lenguajes de programación (con capa gratis, que no está mal).

GitHub Copilot

  • Aunque no es un editor, GitHub ha integrado su propio LLM en su editor de código.

Pythagora

  • De lo más novedoso, lo presentan mientras escribo esto...

Qodo

  • Una extensión muy centrada en la calidad de código y el testing.

Tabnine

  • Un asistente de IA que se integra con varios editores y ofrece autocompletado de código basado en IA.

En fin, paro ya. Hay muchas más y surgen como setas. Así que esta lista es sólo para que te hagas una idea. Todas estas herramientas integran IA como una capa adicional sobre editores robustos y altamente personalizables, lo que te permite combinar tus preferencias de trabajo habituales con el poder de la IA. Pero otros han nacido ya como editores de IA.

🤖 Editores con IA integrada

No podían tardar en aparecer nuevos editores que integran IA de manera nativa, sin necesidad de extensiones. Algunos están especializados en ciertos stacks tecnológicos y parecen más enfocados al público inicial, como los desarrolladores de SaaS.

Bolt

  • La respuesta multi-framework de StackBlitz y lo más parecido a "Ordenador, hazme una aplicación"

Cursor

  • Un fork de VSCode con una IA extraordinaria y una usabilidad espectacular.

Replit

  • Especializado en Python, capaz de generar y desplegar aplicaciones completas.

Spark

  • El editor de GitHub con IA integrada para crear micro-apps directamente usables desde el navegador.

V0

  • Lo mismo pero con Next.js

Windsurf

  • Super potente y muy pensado para las empresas. Algo más que un auto-completado; un agente que te ayuda en el proceso de creación de código.

Zed

  • Su marca diferencial es la velocidad y eso influye en cómo la IA se integra en el proceso de desarrollo.

📦 Conclusión

La IA está transformando la forma en que los programadores escriben y mantienen código. Ya sea a través de poderosos LLM cerrados u opciones abiertas que mejoran la privacidad, o a través de editores que integran IA, el futuro del desarrollo se vislumbra más eficiente y automatizado. Los desarrolladores tenemos más opciones que nunca para aprovechar estas herramientas y mejorar la productividad sin sacrificar el control sobre el código.

El panorama de herramientas de IA para programadores está en constante evolución, con nuevas soluciones surgiendo regularmente. Iré describiendo algunas de ellas en los siguientes posts. Por ahora si estás un poco perdido, te aconsejo que empieces por instalar Cursor y/o agregar GitHub Copilot a tu VSCode. Tiene capa gratuita y son de los que más te van a sorprender. Después puedes probar algo más complejo como Aider... o quien sabe instalar tu propio LLM en tu máquina con LM Studio.

Si representas a una empresa o departamento de desarrollo, seguro que te habrán ofrecido ya alguna de estas herramientas. Así que no te doy más la brasa.

En cualquier caso, estas herramientas no solo aumentan la productividad, sino que también ayudan a mejorar la calidad del código y facilitan el aprendizaje de nuevos lenguajes y tecnologías. Elige una y empieza a incorporarla en tu día a día.

Code smarter, not harder.