
fosfy45
Aún a riesgo de exhibir mi ignorancia en el tema; ¿no es un lío rastrear unas líneas de código que apuntan a otras y esas a otras y así sucesivamente hasta encontrar el fallo? Por que si tú lo has programado tienes un mapa mental del programa y si algo hace lo que no debe sabes donde buscar, pero si lo ha escrito otro no tienes ese mapa y encontrar el bug puede ser buscar una aguja en un pajar si hablamos de cientos o miles de líneas de código, ¿no es así?
Siempre, leer código ajeno, es complicado, lo haga una IA o tu compañero de mesa. Por eso hay un compromiso entre hacer un código eficiente o un código "legible" (o "mantenible en el tiempo").
Por ejemplo, si yo escribo:

Código
IF (valor > 5)
printf("Es mayor");
ELSE
printf("Es menor");
A poco que sepas, no programar, sino inglés, entiendes lo que hace. Pero si escribo:

Código
valor > 5 ? "Es mayor" : "Es menor";
Te costará más entenderlo, o directamente no lo entenderás, pero el compilador sí que lo entiende mejor y el código que genera es mucho más rápido.
Pero si ya tienes experiencia en un lenguaje, entender lo que escribe la IA, más o menos es fácil de seguir, y, al menos, con chatGPT, al código lo sigue un pequeño resumen de qué hace el código para que no te pierdas.
Pero tampoco flipemos con los trozos de código que te da, porque si son muy extensos sólo te da el resumen de lo que tienes que cambiar. Yo todavía no le he pedido más de 40 líneas de código.
josepzin
Bueno, tampoco he tenido que tocar un Sistema Operativo :P pero normalmente aunque sean miles de lineas de código, suele haber una lógica, nombres de funciones, módulos, etc. Así que dependiendo donde esté el problema uno va buscando siguiendo la estructura. Lo mio ha sido en páginas web (o sea, la parte de la intranet -panel- o algunas con un framework que suelen tener una estructura, que aunque críptica al final se va entendiendo la lógica. Puede ser una pesadilla, eso si!
Normalmente hay un punto de entrada, inicializaciones de variables, configuración de módulos, parámetros, luego llamadas a leer datos de X lugar, mostrar cosas, mostrar datos, siempre hay una estructura modular que simplifica las cosas porque no tienes que mirar TODO, solo el/los bloques que necesitas.
Pero bueno, ahora con la IA le das todo el código fuente y le preguntas donde está el problema o lo que necestias... ¿ya estaremos en ese punto?
No, no hemos llegado a eso, te lo digo por mi experiencia (no sé lo que opinarán los "gurús").
Es verdad que uso las IA en modo "de gratis", y eso genera una serie de limitaciones. Por ejemplo, yo no puedo pasarle más de 500 líneas de código, porque el prompt no te deja. Pero cuidado, si se lo pasas en bloques, en mi experiencia, a partir de las 1000 o 1500 líneas, empieza a "olvidarse" del código o de lo que se haya hablado antes.
Pero para trozos de código, o incluso si le pasas la función que va dirigiendo el flujo de datos (con nombres de funciones más o menos descriptivas), puede hacer suposiciones más bien acertadas, y llegar a recomendarte que cambies el enfoque de lo que estás haciendo... aunque debes replantearte tú si la idea es buena o no.

josepzin
Yo me siento como un albañil que de repente aparece un robot que construye el edificio completamente y ahora tienes que convertirte en arquitecto o te quedas sin trabajo, bueno, no es mi caso pero se me ocurre esa analogía, porque seguro que muchos albañiles se pueden convertir en arquitectos pero me parece que muchos no.
Lo dicen en muchos vídeos: la IA viene a sustituir al albañil sin experiencia, que hace lo que le dicen, sin pensar lo que hace. Si eres uno de estos, te puede convertir en capataz de obra, o sea, el que dirige a los obreros, y corrige lo que hacen mal. Pero eso ya no lo puede hacer la IA, no digamos convertirse en arquitecta, que es lo que esperan muchas empresas de software.
Ojo, la IA sabe de estructuras de programación, conoce cómo se organizan los programas, y te puede sugerir varias formas de realizar una misma tarea. Te puede dar recomendaciones específicas para tu caso porque las conoce, pero básicamente se limita a repetir lo que lee "en los libros" o lo que hacen "los más listos de la clase". Es como ese estudiante que saca sobresaliente en los exámenes teóricos, pero que falla estrepitosamente en los prácticos.
Yo suelo separar las dos cosas: o le pido detalles de cómo organizar el código, o le pido que me revise un trozo no muy grande de código, porque en el momento en que las mezclas, sumado a las correcciones que hayáis hecho, es una receta perfecta para que empiece a mezclar cosas.

fosfy45
Pregunto desde la ignorancia; ¿cuando le pides a la IA un programa sigue una estructura lógica y ordenada?
Lo que he dicho antes: puedes preguntarle por tipos de estructuras o puedes pedirle código, pero no las dos cosas.
Hay un vídeo de Guinxu que le pide que haga un juego de la serpiente en Java y otro para que haga un Super Mario Bros.
El juego de la serpiente funciona: lo ejecutas y juegas. Pero ¿y qué pasa con la portada, y el menú, la configuración de la partida? No te pone nada de eso, sólo el juego en crudo. Si se lo pides, podría dártelo, pero es un código que no vas a poder ampliar, porque está diseñado para lo que le has pedido.
Por ejemplo, volviendo a la serpiente: el juego funciona. Ahora quieres que ponga una portada: te da el código con un botón para que lance el código que ya tenías, y al terminar, se cierra el juego, no vuelve al menú, se lo tienes que pedir.
Si ahora le pides que en el menú ponga una opción para la velocidad de la serpiente, te lo va a dar, y luego te va a hacer modificar el código que ya tenías para que la serpiente pueda leer el valor de velocidad y actuar en consecuencia, que puede ser tan sencillo como reducir el tiempo de espera entre movimientos, o... no quieras pensar la alternativa, pero en proyectos grandes, suele ser una pesadilla.
Lo ideal es: plantearte, primero, sobre el papel, la estructura completa del programa (ver distintas opciones y elegir la que más te convenga: centralizado, repartido, ordenado...), y planteárselo a la IA, por si te puede sugerir otra forma que no se te haya ocurrido.
Luego coger un trozo (normalmente, una de las funciones de más bajo nivel, o sea, de las que no depende de nadie, de las que no llaman a otras funciones) y empezar a trabajar con ella. Puedes empezar a escribirla y pasarle el resultado a la IA para que te busque errores y proponga mejoras... o puedes pedirle el código entero, y tirarte un buen rato arreglando fallos, y modificando cosas que no ha entendido bien o que se las inventa. Y cuando esté hecho, pasar a otro trozo de código, normalmente en otra conversación, porque es posible que, a estas alturas, ya esté "alucinando".

swapd0
Unas duda a los que usáis IA, he estado mirando opencode para hacer pruebas, al parecer es como un interface para ejecutar debajo la IA que quieras.
- si corro la IA en local es gratis, ¿no?
- ¿Recomendáis alguna para programar que se pueda ejecutar en local?
- ¿Que tal van si se ejecutan en la CPU? XD
Edit: creo que voy corto de RAM
No conozco opencode. Lo siento.
Pero sí, te puedes instalar una IA en tu PC. Tiene tres partes:
- Un modelo de IA: es lo que se entrena para que tu le pases una petición, y él te devuelva lo que necesitas. Los hay gratuitos y de pago.
- La IA en sí, que es como un programa que usa comandos, y ejecuta el modelo que le pongas. Suele ser gratuito.
- Una interfaz, para no tener que escribir comandos Suele ser una interfaz web y venir con la propia IA.
Aparte, hay lo que se denominan "LORAS", que vienen a ser "parches" para cosas concretas, como que las manos tengan 5 dedos, que conozca el lenguaje C++, que genere sonido con voz profunda...
De momento sólo tengo una basada en Dall-e, para imágenes. Para código uso directamente ChatGPT, o Grok si se pone muy tonta ¿para qué ejecutarlo en mi PC, si lo puedo usar desde un servidor, que siempre es más potente y rápida que cualquier cosa que pueda montar? Bueno, por temas de medio ambiente y no dar de comer a las tiranas tecnológicas... pero siendo prácticos, es lo mejor.
No se recomienda ejecutarla en la CPU, mejor en una GPU, o en uno de esos coprocesadores para IA que llevan saliendo como 1 año. Y aún así, se necesita un pepino de ordenador, según lo exigente que seas. Para que te hagas una idea: una imagen me tarda en hacerla lo mismo que renderizar un vídeo de 30 segundos, con la misma resolución y calidad, si quiero resultados "aceptables" (se puede configurar, de ahí la opción de "pensar", que requiere más tiempo de procesamiento).
Irónicamente, las propias IAs te pueden ayudar a buscar lo que necesitas y hasta darte un tutorial completo de instalación, con resolución de errores. ChatGPT no lo hace mal, pero creo que Grok la supera en este aspecto.