LLMs y la programación en los primeros días de 2024

Los modelos de lenguaje grandes están emergiendo como asistentes de programación potentes pero poco fiables, acelerando el trabajo repetitivo, la documentación, los tests y el uso de APIs desconocidas, aunque siguen fallando mucho en programación de sistemas más profunda y en bugs sutiles. Los comentaristas describen a los LLMs como más valiosos cuando un desarrollador con experiencia puede verificar y corregir rápidamente la salida, en contraste con su utilidad frente al deterioro de la búsqueda web y herramientas como Kagi o Brave Search. Muchos esperan que los LLMs cambien la naturaleza del trabajo de programación —desplazando el valor desde escribir código rutinario hacia el diseño y el razonamiento de nivel superior—, al tiempo que expresan preocupación por el desplazamiento laboral y escepticismo ante el hype que presenta a los modelos actuales como razonadores casi humanos.

LLMs vs. Búsqueda tradicional

  • Muchos comentaristas dicen que la búsqueda web general se ha deteriorado debido a los anuncios y al spam de SEO, lo que hace atractivos a los LLMs y a los motores alternativos.
  • Se sugieren motores de búsqueda de pago (por ejemplo, con funciones de bloqueo/fijación de sitios) y herramientas especializadas (Brave con “goggles”, phind, perplexity) como complementos o reemplazos de Google.
  • Algunos todavía obtienen buenos resultados en Google, lo que sugiere que la calidad puede haberse mejorado recientemente o depender de la consulta.

Cómo usan los desarrolladores los LLMs

  • Usos comunes: código repetitivo, código de integración, tests, SQL, configuraciones, documentación, diagramas, fragmentos de AWS/bash, comprensión de código heredado y prototipos rápidos.
  • Los LLMs se valoran especialmente por:
    • Reducir la energía de activación para empezar o terminar proyectos secundarios.
    • Actuar como un “junior dev” o tutor, explicando APIs o conceptos desconocidos.
    • Ayudar a ingenieros con experiencia en dominios donde temporalmente son “junior”.
  • Trabajo de sistemas/bajo nivel: varios informan que los LLMs rinden mal cuando se necesita una experiencia profunda del dominio o razonamiento delicado a nivel de bits.

Fiabilidad, verificación y riesgo

  • Hay un fuerte consenso en que la salida de los LLMs debe revisarse; las alucinaciones y el código sutilmente incorrecto son comunes.
  • La programación se ve como relativamente adecuada porque el código a menudo puede compilarse, probarse o verificarse por propiedades, aunque otros subrayan que “compila” ≠ “es correcto o seguro”.
  • Algunos usan LLMs para generar tanto código como tests; otros desconfían de la generación de tests por el mismo modelo que escribió el código.

Impacto en el trabajo y las carreras

  • Muchos sienten que son personalmente más productivos o están “supercargados”; otros se sienten excluidos porque los modelos fallan justo donde necesitan ayuda.
  • Las opiniones divergen sobre el impacto en el empleo:
    • Algunos esperan menos trabajos tradicionales de programación y más enfoque en arquitectura, pensamiento de producto y pruebas/verificación.
    • Otros argumentan que la demanda de software crecerá (patrón histórico de automatización), pero aconsejan a las personas estar listas para reentrenarse.
  • Existe preocupación de que los juniors dependan de los LLMs para producir código que no entienden.

Herramientas, flujos de trabajo y modelos locales

  • Se discuten integraciones con IDEs (Copilot, Cody, Continue, Wingman, Cursor) y herramientas CLI (por ejemplo, agentes que editan directamente bases de código) para evitar flujos de trabajo de copiar y pegar.
  • Experiencias mixtas con el autocompletado: algunos lo encuentran transformador, otros lo consideran distractor.
  • Los modelos locales centrados en código (Deepseek Coder, variantes de CodeLlama, modelos de Phind) mediante marcos como Ollama están emergiendo como opciones que preservan la privacidad, aunque sean más débiles.

Razonamiento, hype y “conocimiento basura”

  • Debate sobre si los LLMs “razonan” o solo interpolan datos de entrenamiento; algunos enfatizan la capacidad práctica por encima de la certeza filosófica.
  • Varios ven a los LLMs como una forma de descargar conocimiento efímero y específico de herramientas (“conocimiento basura”), como APIs y configuraciones, y concentrar el esfuerzo humano en conceptos duraderos (algoritmos, estructuras de datos, matemáticas).
  • Otros se preocupan de que el marketing y el hype estén llevando a la gente a atribuir en exceso capacidades a sistemas inherentemente poco fiables.