2 puntos por GN⁺ 2025-09-14 | 1 comentarios | Compartir por WhatsApp
  • La AI para programación cumple una estructura de función similar a la de los compiladores tradicionales
  • Los prompts en inglés tienen características imprecisas e ineficientes como lenguaje de programación
  • Existe una tendencia a exagerar o malinterpretar el efecto de mejora de productividad de la AI
  • Las herramientas de AI cambian el proceso de desarrollo, pero la verdadera innovación podría surgir de mejores lenguajes y herramientas
  • La adopción de LLM no significa reemplazar a los desarrolladores, sino que más bien refleja las limitaciones del entorno actual de desarrollo

Similitudes entre la AI y los compiladores

  • El autor cuenta que, al hacerse mayor, dejó de intentar convencer a los demás
  • Enfatiza el fenómeno de que muchas personas no se interesan por la verdad y solo siguen creencias que les benefician
  • Presenta una crítica a quienes afirman que 'Perception is reality (la percepción es la realidad)'
  • Señala que los miles de millones de dólares invertidos en vehículos autónomos han sido un desperdicio causado por creencias equivocadas
  • La idea de que la AI puede programar es similar a pensar que un compilador programa

La codificación con AI sigue un modelo similar al de los compiladores

  • Explica la postura de que el mejor modelo para la AI de programación es el compilador
  • El usuario ingresa un prompt (código) y como resultado recibe una salida compilada
  • Aunque se diferencia en que el prompt se escribe en inglés, el inglés tiene varios problemas: falta de claridad, ausencia de especificación y otros defectos
  • Cuando se intenta hacer algo nuevo o una tarea compleja, la verbosidad del prompt termina aumentando
  • La salida de la AI es no determinista, y cambiar una parte del prompt afecta el resultado completo

Una mirada crítica a la codificación con AI

  • La razón por la que la codificación con AI parece positiva es la mala calidad de las herramientas, lenguajes y librerías actuales
  • Gracias a la tecnología de "AI", ahora son posibles mejores herramientas de búsqueda, optimización y extracción de patrones
  • En realidad, quien programa es el propio programador; lo único que cambia es el lenguaje con el que se escribe el código
  • Si una empresa puede reemplazar desarrolladores con un LLM, eso significa que su codebase y sus criterios de contratación están en un nivel muy bajo
  • La AI puede ir asumiendo gradualmente parte del trabajo, igual que lo hicieron los compiladores o las hojas de cálculo

La AI es una herramienta; al final se necesitan mejores lenguajes y librerías

  • Subraya que hace falta mucha reflexión y cautela desde una perspectiva instrumental sobre la AI
  • Se están desperdiciando miles de millones de dólares al invertir en expectativas equivocadas o espejismos
  • Menciona la sobrerreacción del mercado ante falsas herramientas de productividad como “vibe coding”
  • Existe la ilusión de que la AI aumenta realmente la productividad en 20%, pero cita un estudio (paper) según el cual en realidad la reduce en 19%
  • El verdadero avance podría surgir de la innovación en lenguajes de programación, compiladores y librerías

1 comentarios

 
GN⁺ 2025-09-14
Opiniones de Hacker News
  • Tengo casi 50 años y escribo código profesionalmente desde finales de los 90. Puedo visualizar un proyecto de inmediato en mi cabeza y sé exactamente qué hay que construir. También gano bastante bien. Por fuera podría parecer el típico opositor a la IA, pero en realidad no lo soy. Puedo construir casi cualquier cosa, pero muchas veces me canso de todo el trabajo básico. Por eso me encanta poder usar IA para pasar rápido por las partes aburridas y concentrarme en el trabajo central que sí disfruto. Desarrollar con IA se parece a tener un desarrollador entre junior y mid-level al que le transmites una idea en unas cuantas frases y le encargas una hora de trabajo. Claro, el hecho de que eso pueda impedir que los juniors reales crezcan y reduzca el futuro pool de seniors sí es algo que hay que pensar seriamente, pero ese es otro tema

    • Dije que uso IA para resolver rápido las partes aburridas, pero entre los seniors con mucha experiencia también hay quienes le tienen rechazo a la IA porque en realidad les asustan las partes difíciles. Muchos desarrolladores encuentran seguridad psicológica en las partes fáciles y aburridas, y con la introducción de la IA el trabajo puede volverse una sucesión constante de dificultades. Si eres un senior con muchos años encima pero poca habilidad real, encadenar trabajo desafiante tras trabajo desafiante te puede quemar muy rápido. Las empresas quieren meter IA solo para acelerar todo a la fuerza, pero pasan por alto que las personas necesitan descanso cognitivo. Si solo dejas lo más duro, no es bueno para la gente. Claro, los desarrolladores que se aburren con lo repetitivo y sencillo pueden revitalizarse con IA. Al final hay que abordarlo de forma distinta según cada persona

    • Yo también soy un poco menor que tú, pero pienso casi exactamente igual. De hecho, quizá más extremo todavía. Ya no siento que lo divertido sea escribir el código que materializa ideas interesantes, sino idear y experimentar en sí mismo. Así que programar era algo que hacía porque tocaba, no porque fuera lo que realmente quería hacer. Si quería concretar mis ideas, no me quedaba otra que escribir código. La IA es excelente como compañera de brainstorming. Si le pides que no te adule, de verdad te señala cuando estás haciendo overengineering. También depura muy bien. Así que le explico cosas a la computadora con palabras, hago brainstorming de arquitectura y enfoques, preparo la especificación y luego le dejo a la IA la implementación. Si mi idea estaba mal, itero rápidamente con la IA hasta mejorarla. La iteración es tan rápida que equivocarse deja de importar. Antes, si el diseño estaba mal, había que rehacer gran parte del código y uno terminaba resignándose; ahora, con herramientas de Agentic coding, incluso cambiar toda la codebase no es problema. También he podido entrar de forma efectiva a áreas tecnológicas nuevas en las que no era experto y mejorar muy rápido gracias a la IA. Sinceramente, ahora mismo soy más feliz que nunca en mi vida como programador. Las herramientas mejoran cada semana, a veces varias veces por semana

    • Coincide por completo con mi experiencia. Tengo una trayectoria similar. También uso IA activamente tanto en proyectos personales como en el trabajo. Primero, la IA sirve como interlocutor para ideas con menos sesgos. Un loop de retroalimentación rápido y la validación del camino se sienten realmente indispensables. Segundo, ahorra tiempo y te evita mucho tecleo. El “trabajo básico” lo puede hacer de una sola vez y al menos un 80% queda perfecto. No es un 100% terminado, pero el tiempo que ahorra es muchísimo mayor, así que el beneficio neto es clarísimo. Cuando uso IA siempre pongo guardrails, trato de dar instrucciones lo más concretas y detalladas posible, y siempre reviso personalmente lo que produce

    • Tengo como 10 años menos de experiencia, pero una postura parecida. Aunque no logro identificarme del todo. En cuanto alguna parte empieza a volverse aburrida, automatizarla o generalizarla ya se vuelve un reto lo bastante difícil e interesante como para que casi no existan tareas realmente aburridas. De hecho, a veces escribirlo yo mismo es más rápido. Mientras codifico directamente las partes que no son intermedias ni simples, se me ocurren mejores estructuras o ideas de automatización. Por eso casi no tengo código que quiera delegar. Y creo que puedo pensar así porque he pasado mucho tiempo en la misma empresa. Si hubiera tenido que estar haciendo trabajo de código nuevo constantemente, quizá pensaría distinto

    • También estoy en mis 50 y programo desde los 90, y he ganado suficiente dinero como para vivir más de tres vidas enteras. En 30 años de carrera vi que los mejores desarrolladores compartían un rasgo en común: la “pereza perfecta”. Suena raro, pero la única característica común realmente notable entre ingenieros sobresalientes era la flojera. Es sorprendente cómo esa flojera se traduce en productividad. La razón es que automatizan cualquier trabajo repetitivo sin falta. Aprendí la regla de que si haces lo mismo dos veces, la tercera ya debe automatizarse. Con la llegada de la IA, el nivel de automatización cambió por completo. Ahora se puede automatizar incluso trabajo que antes era imposible. He encontrado incontables formas de usar IA, y no solo yo: mis colegas flojos también la aprovechan muy bien. A este punto ya no puedo imaginar el trabajo sin IA. No porque sea “magia”, sino porque para alguien flojo como yo la IA se encarga de todo lo que se puede automatizar

  • Me parece un ejemplo extremo del pensamiento grupal sobre IA que suele verse en Hacker News. Geohot está en el top 99.999% de desarrolladores, pero el 99.999% de desarrolladores que él no entiende sigue haciendo trabajo mucho más básico. Es la paradoja del experto. Si todos estuvieran a nivel experto, entonces no serían expertos. He visto muchos desarrolladores actuar como IA: no pueden explicar ni la codebase que hicieron ellos mismos ni mantenerla de manera consistente. Es como si un ingeniero aeroespacial se burlara de alguien que hace juguetes de Kinder Surprise por no saber simulación de fluidos

    • Me sorprende que pienses que HN es negativo con respecto a la IA. Desde mi punto de vista, viendo los comentarios y las publicaciones populares, HN en general se siente bastante optimista respecto a la tecnología

    • También se ve muy inconsistente que alguien que fundó una empresa de conducción autónoma tenga esta postura. Si los modelos de IA no pueden escribir código, entonces cuesta creer que puedan reemplazar algo mucho más difícil como manejar

    • Ese punto ya se explica al inicio del texto. La idea es que varias partes del flujo normal de programación son posibles porque son muy comunes, pero cuando se trata de hacer algo nuevo hay que describirlo con un nivel de detalle comparable al del propio lenguaje

    • Trabajo en el sector aeroespacial, y aquí los ingenieros tampoco son mucho mejores. Pero no hay que preocuparse tanto. En las empresas a esa clase de personas las mandan a puestos donde no hagan daño, y la mayoría termina en gestión

    • No sé si Geohot realmente sea un desarrollador top 99.999%. “El modelo óptimo para una IA de programación es un compilador. Le das un prompt (=código) y te entrega código compilado. En vez de usarlo interactivamente con feedback como la mayoría de los IDE, es mejor ajustar el prompt y recompilar”. No estoy seguro de que eso sea realmente cierto

  • Uno de los puntos centrales de la discusión es que hay que definir con más precisión qué “tipo de programación” estamos discutiendo. Igual que no tendría mucho sentido preguntar solo “¿los robots son buenos o malos?” para construir cosas, aquí la conversación solo avanza si primero preguntas “¿para qué tipo de trabajo?”

  • Creo que este texto tiene varios problemas. Primero, la afirmación de que “programar con IA es un compilador”. Un compilador transforma un lenguaje de manera determinista según una especificación, mientras que las herramientas de programación con LLM son sintetizadores de programas que buscan, generan y modifican código iterativamente bajo restricciones como tests, tipos, linter, CI, etc. De hecho, ya resuelven de extremo a extremo issues grandes de open source como los de SWE-bench Verified. Segundo, la afirmación de que “el lenguaje de programación es el inglés”. En la práctica es una combinación de código, tests, especificaciones, APIs, esquemas JSON, diff, herramientas del IDE y demás; el inglés solo funciona como pegamento. El autor toma justo la interfaz más débil para atacarla. Tercero, la afirmación de que la no determinación es un problema. En la práctica, fuzzing, SAT/SMT y otros sistemas ya incluyen elementos probabilísticos, y la determinación y corrección finales vienen de especificaciones externas como tests, sistemas de tipos o CI. Además, es una falsa dicotomía decir que los LLM son populares porque los lenguajes o librerías son malos. Incluso si el lenguaje mejora, como con Rust o TypeScript, los LLM siguen ayudando a buscar APIs, rastrear repos, escribir código repetitivo, hacer migraciones, escribir tests y refactorizar. Por último, la única alternativa que propone es “haz mejores lenguajes o compiladores”, cuando en realidad los equipos modernos ya están obteniendo muchísimo valor al combinarlos con IA. Por eso, en vez de ver la programación con IA y los LLM como una especie de “compilador mágico en inglés manipulado por prompts”, es mucho más realista usarlos como un “programador junior en pair programming” que te ayuda siguiendo tus propias restricciones como tipos, tests o CI

    • (El propio autor) Estoy de acuerdo con este comentario. Si hubiera escrito el blog de esta forma, probablemente no habría sido tan popular. La descripción de que “las herramientas de programación con LLM son sintetizadores de programas basados en búsqueda” me parece, en esencia, muy cercana a la definición de compilador. Solo que la mayoría de los compiladores no hacen suficiente búsqueda y dependen bastante de heurísticas, en parte porque no están integrados con el runtime. También es cierto que muchas herramientas de ingeniería son no deterministas, pero por ejemplo en un solver SAT, aunque se introduzca aleatoriedad y cambie el tiempo de resolución, eso no afecta la corrección de la respuesta. Un fuzzer es una herramienta de testing, así que por naturaleza no se espera perfección. Nunca he visto un fuzzer metido en producción. Coincido totalmente con la idea de que “la determinación viene de tests o especificaciones externas”. Lo que sueño es con un lenguaje donde no especifiques la implementación, sino solo el comportamiento mediante una spec. Algo así como una generalización más amplia del concepto de schedule en Halide. Que la computadora encuentre por sí sola la forma de implementarlo. Creo que la IA puede ofrecer herramientas así. No necesariamente tiene que ser un LLM, y sí haría falta una especificación estricta. Eso, al final, sigue siendo programar. Desde esa perspectiva, estoy en contra de ver la IA como un “compilador mágico en inglés”. Pero como herramienta de apoyo dentro del flujo de trabajo, entendiendo bien sus fortalezas y límites, sí me parece excelente

    • Excelente respuesta. Totalmente de acuerdo

    • No sorprende que alguien escriba un texto con estos problemas. El autor es George Hotz, o sea, Geohot

  • Uso tanto Openpilot como claude code con frecuencia. Los veo casi en el mismo plano. Openpilot maneja realmente bien durante horas en situaciones simples como autopistas. claude code puede encargarse sin que yo intervenga de refactors intuitivos, boilerplate, scaffolding, git bisect y otras tareas repetitivas. Ninguno de los dos reemplaza al “conductor” al final. claude code es como un nivel 2 de conducción autónoma para la programación

  • La investigación de METR se volvió enormemente popular por el título. Probablemente pocos la leyeron completa, porque era bastante larga. Pero en los datos, solo una persona —la que más experiencia tenía usando Cursor o IA— mostró un aumento de velocidad del 50%. Eso sugiere que el beneficio real aparece después de familiarizarse. Además, con una muestra pequeña hay mucha variación estadística. Después incluso corrigieron que el diferencial de velocidad de otra persona estaba mal registrado, lo cual deja aún más dudas sobre cómo interpretar el resultado. Las ineficiencias medidas en el estudio parecen ser justo el tipo de cosas que podrían resolverse con LLM mejores, agentes en paralelo y herramientas más avanzadas. Además, en ese momento todavía era la era de Claude 3.7, antes de Claude Code. Incluso la sensación subjetiva de haber trabajado un 20% menos ya tiene mucho valor. Cuando trabajas a gusto, el tiempo se pasa volando

  • El problema es que los laboratorios de IA han vendido la IA con demasiado hype hasta ahora. Hay mucho discurso de “la IA realmente piensa, no solo hace pattern matching”. Yo hago y uso herramientas de IA, y desde mi punto de vista es mucho más útil tratarlas como máquinas de “predicción del siguiente token” basadas en pattern matching. Si metes demasiada información innecesaria en el contexto, muchas veces la IA falla al generalizar. Eso al final es exactamente pattern matching y predicción del siguiente token. Sí creo que “la tecnología de IA puede contribuir a herramientas muy buenas hoy en día”, pero eso es resultado de muchísima búsqueda/optimización y del reciclaje de patrones existentes. Por ejemplo, si le pido a Claude code que escriba una CRUD API simple, me la saca en un minuto y me ahorra una hora de trabajo. Si le pides un algoritmo que ya se ha implementado cientos de miles de veces, te produce código correcto de inmediato. La IA funciona realmente bien cuando la usas dentro de tu propio dominio de experiencia. Fuera de eso, los resultados no son tan buenos

    • Esto es una diferencia de nivel de inteligencia. No de conocimiento, sino de capacidad de razonamiento fundamental. Solemos subestimar el esfuerzo cognitivo que requieren ciertas tareas. Pero a veces la IA sí muestra comportamientos más “reflexivos” de lo que uno espera. En esos momentos de verdad se siente como magia

    • CRUD o boilerplate se pueden resolver hasta cierto punto con herramientas más tradicionales. Pero también hay muchas cosas que solo la IA hace bien. Por ejemplo, cuando tengo que analizar logs completos a nivel trace durante una prueba, revisar cientos de líneas a mano me toma muchísimo tiempo; si le digo a la IA “ejecuta el test y encuentra la causa”, sí suele dar resultados bastante útiles. Hoy en día muchas veces ese ya es mi primer paso

  • Creo que tu opinión tiene parte de verdad. Pero el mundo de los negocios tiene un deseo enorme de reordenarlo todo. Hay muchísimo capital buscando retornos fuertes en poco tiempo, y a los gestores de fondos los despiden si no siguen la tendencia. Lo mismo pasa con CIOs y CEOs. La carrera por adoptar IA, como una carrera armamentista nuclear, ya no se puede detener. En esencia no es algo bueno para nadie. Pero como todos los demás se están lanzando, uno tampoco puede quedarse fuera. Los humanos ya eran suficientemente felices antes de que existieran los autos. Pero con la llegada del auto las ciudades se reordenaron, la distancia entre edificios creció y el traslado diario se volvió rutina. Con la IA pasa igual: cambia el contexto mismo en el que trabajamos. Ahora existe la expectativa de que todos deben usar IA, y en algún momento eso empieza a sentirse como un requisito básico. Más allá de eso, casi ninguno de los productos creados por la ciencia y la tecnología ha sido una “necesidad” humana real. La tecnología crea el problema y luego lo vende empaquetado como solución. El problema no existía antes; solo se vuelve problema después de que aparece la solución. Esa es precisamente una de las fuerzas motrices centrales del negocio

  • Muchos artículos de opinión sobre programación con IA parecen escritos desde la perspectiva de ingenieros de software muy experimentados, casi de “torre de marfil”. (Ese estudio también solo tomó como muestra a “16 desarrolladores experimentados de open source”). Pero para quienes no somos profesionales, estas herramientas tienen un valor enorme. Yo mismo tengo algo de experiencia programando, pero no es mi trabajo principal: soy artista visual. Antes, cosas que me tomaban días ahora las termino en una tarde. Hace dos meses dejé mi empleo para concentrarme en desarrollo de juegos y, aunque mi presupuesto no es enorme, mantener Claude y ChatGPT es obligatorio para mí. Y además, poder escribir una idea a la 1 de la mañana desde la cama, lanzársela a Codex y levantarme al día siguiente para probarla se siente realmente mágico. Antes me frenaba por la preocupación de “¿de verdad esta es la mejor forma de hacerlo?”, pero ahora como refactorizar es fácil, esa ansiedad desapareció. No solo ayuda al escribir código, también baja muchísimo la barrera psicológica para empezar. Claro, entiendo que muchas de las críticas en realidad van dirigidas al marketing exagerado de estas herramientas y al discurso de “ahora van a despedir a todos los ingenieros”

  • Tengo 72 años y trabajé como desarrollador durante 40 años. Ya no me concentro como antes, pero gracias a la IA sigo construyendo cosas. Yo redacto la spec del proyecto y el agente se encarga de implementar y probar. Ahora programo solo por gusto

    • A mí también me gusta usar IA para crear prototipos rápidamente. Hace poco quise hacer una extensión de navegador y con Claude armé una versión simple en 10 minutos. Luego fui ajustando la UI yo mismo poco a poco, y en una mañana de fin de semana terminé una extensión más refinada, más delgada y más predecible. Mi extensión muestra una lista de respuestas repetidas y permite activar o desactivar cuáles enviar a una API en localhost. A partir de ahí procesa una cola de trabajo, actualiza una base de datos sqlite, analiza información clave con LM Studio GPT-OSS 20b y al final hasta manda un resumen por Telegram. Tengo una idea muy clara de lo que quiero en la cabeza, pero que la experimentación o la fase de PoC se haya reducido a minutos es realmente útil. Para desarrolladores suficientemente capaces como yo, esto hace posible sacar adelante más trabajo en solitario que antes