Ciencia: La IA iba a sustituir a los programadores y mira el resultado

Pantalla de editor de código con un script de Python y un mensaje de error de indentación resaltado en rojo
RESUMEN DEL DEBATE · elaborado con IA

Un generador de código consultado a través de un buscador devolvió un programa en Python que no compilaba: indentación rota, una asignación que convertía una lista en un entero y un resultado que no era el que anunciaba. La prueba, hecha con un caso sencillo de desplazamiento de elementos, terminó con un error de ejecución en lugar de la salida prometida.

Leer el resumen completo →

Salva Nos Deus

Exprimidor de ironías
Desde
31 May 2006
Mensajes
2.550
Fruta
3.943
Lugar
Fraguel Rock
Ya ha sustituido en diferente grado y/o en primera consulta a: diseñadores gráficos, traductores, psicólogos, personal de RRHH, redactores, abogados, y un largo etcétera, y eso que la IA aún anda en pañales... vosotros seguir entrenando y usando como herramienta a quien está diseñado para aprender y desplazaros... nadie es inmune, nadie es imprescindible.

Suerte.
 
Si, no digo que en unos años eso vaya ocurriendo poco a poco.

Hay cambios que son disruptivos

En 1905 uno de los mayores negocios en USA era el de la caza de ballenas por el aceite. De repente se popularizó el queroseno y el petróleo, mucho más baratos, y en 1915 la caza de ballenas dejó de existir como negocio. En 10 años desapareció uno de los mayores nichos de mercado de la tierra

Pero en estos momentos para los programadores españoles es mucho más peligroso la llegada de profesionales hispanoamericano y la contratación de equipos en Colombia, por ejemplo
 
Comete errores porque aún no puede comprobar sus propios resultados. Si la IA pudiera liquidar el código y ver que falla, podría arreglarlo sin problema. Un IDE con un agente que programe y otro que haga tests será el fin del programador. Si en tu equipo sois 10 programadores, se quedarán el mejor y los otros 9 al paro.
 
Bobadas, lo verdaderamente revolucionario fue el metaverso, quien no está en el metaverso hoy en día no es nadie ¿a que si?
El metaverso ya existe. Y quien no está en él, efectivamente no es nadie. Son las redes sociales (Instagram, Facebook...), las aplicaciones para comunicarse (WhatsApp, Telegram...), las apps para encontrar trabajo tipo LinkedIn y hasta este foro. Todo eso es el metaverso.
 
Lo mejor de la IA es que está poniendo en evidencia a los directivos.

Pues no me llega el otro día un correo del CTO hablando de un problema, cantoso de estar pasado por la IA... Y dando soluciones absurdas y motivos aún con menos fundamento. Lo peor es que se lo cree y lo usa para ir contra los de abajo... Todo el respeto perdido en un correo.

Esos son los que van a ser reemplazados. Usar la IA ayuda a la gente con criterio y conocimiento que sabe identificar rápidamente si es bueno o malo lo generado.
 
Meto el siguiente prompt en la IA de duckduckgo.com:

Y me da el programa en Python:

Y también cual va a ser la salida:

Luego meto el código en el intérprete de Python y me da la salida real:

roto2

La IA no ejecuta código, el problema son varios "IA de duckduckgo" y que no sabes que por ahora ninguna IA ejecuta ningún código.
 
Hace menos de una hora que he tenido que corregir un bug que dejaba congelada una web porque el compañero de turno ha metido una función recursiva que le ha tirado la IA para una cosa que se hace con dos líneas.

Ejk en local funcionaba...
 
Comete errores porque aún no puede comprobar sus propios resultados. Si la IA pudiera liquidar el código y ver que falla, podría arreglarlo sin problema. Un IDE con un agente que programe y otro que haga tests será el fin del programador. Si en tu equipo sois 10 programadores, se quedarán el mejor y los otros 9 al paro.
Existe y se llama antigravity
 
Lo he probado en Chatgpt ese código y está todo mal.

ERRORES DEL CÓDIGO desplazar_elementos.py
========================================

1. ERROR DE INDENTACIÓN (GRAVE)
--------------------------------
Las líneas dentro del bucle for no están indentadas correctamente.
En Python, el cuerpo de un bucle debe ir indentado.

Código incorrecto:
for i in range(n - 1, -1, -1):
# Calculamos la nueva posición del elemento
nueva_posicion = (i + x) % n

Esto provoca un:
IndentationError: expected an indented block


2. ERROR EN EL INTERCAMBIO (SWAP) DE VARIABLES
----------------------------------------------
La siguiente línea es incorrecta:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

Problemas:
- Se asigna un entero a la variable lista
- lista deja de ser una lista y pasa a ser un int
- Después se intenta usar lista como si fuera una lista

Esto provoca el error:
TypeError: 'int' object does not support item assignment


3. USO INCORRECTO DEL CONCEPTO "SWAP"
-------------------------------------
El intercambio correcto entre elementos de una lista debería ser:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

El código intercambia la lista completa con un solo elemento,
lo cual no tiene sentido lógico ni funcional.


4. ALGORITMO INCORRECTO PARA DESPLAZAR ELEMENTOS
------------------------------------------------
Aunque se corrigiera el swap, el algoritmo no implementa correctamente
un desplazamiento circular a la derecha.

Usar swaps sucesivos en este orden provoca:
- Pisado de valores
- Resultados incoherentes
- Listas finales incorrectas


5. FALTA DE CONTROL DE CASOS LÍMITE
-----------------------------------
No se controla el caso en el que la lista esté vacía.

Si lista = [], entonces:
n = len(lista) → 0
x = x % n → ZeroDivisionError


6. DOCUMENTACIÓN NO COINCIDE CON LA IMPLEMENTACIÓN
--------------------------------------------------
El docstring indica que la función:
"Desplaza los elementos de la lista X posiciones a la derecha"

Pero el código no realiza correctamente dicho desplazamiento.


7. RESULTADO FINAL
------------------
El código:
- No ejecuta correctamente
- Lanza errores en tiempo de ejecución
- No puede producir una salida válida
- No puede generar la lista [2, 1, 4, 5, 3]

FIN DEL INFORME
 
Programa en Python usando swap

def swap(lista, i, j):
"""Intercambia los elementos en las posiciones i y j de la lista."""
lista, lista[j] = lista[j], lista


def desplazar_elementos(lista, x):
"""
Desplaza los elementos de la lista x posiciones a la derecha
reinsertando por el principio los elementos que salen por el final.
"""
n = len(lista)
x = x % n # Por si x es mayor que n

# Repetimos el desplazamiento x veces
for _ in range(x):
# Llevamos el último elemento al principio usando swaps
for i in range(n - 1, 0, -1):
swap(lista, i, i - 1)

return lista


# Ejemplo de uso
lista = [1, 2, 3, 4, 5]
x = 2
print("Lista original:", lista)
print("Lista desplazada:", desplazar_elementos(lista, x))

Resultado

Lista original: [1, 2, 3, 4, 5]
Lista desplazada: [4, 5, 1, 2, 3]
 
Lo he probado en Chatgpt ese código y está todo mal.

ERRORES DEL CÓDIGO desplazar_elementos.py
========================================

1. ERROR DE INDENTACIÓN (GRAVE)
--------------------------------
Las líneas dentro del bucle for no están indentadas correctamente.
En Python, el cuerpo de un bucle debe ir indentado.

Código incorrecto:
for i in range(n - 1, -1, -1):
# Calculamos la nueva posición del elemento
nueva_posicion = (i + x) % n

Esto provoca un:
IndentationError: expected an indented block


2. ERROR EN EL INTERCAMBIO (SWAP) DE VARIABLES
----------------------------------------------
La siguiente línea es incorrecta:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

Problemas:
- Se asigna un entero a la variable lista
- lista deja de ser una lista y pasa a ser un int
- Después se intenta usar lista como si fuera una lista

Esto provoca el error:
TypeError: 'int' object does not support item assignment


3. USO INCORRECTO DEL CONCEPTO "SWAP"
-------------------------------------
El intercambio correcto entre elementos de una lista debería ser:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

El código intercambia la lista completa con un solo elemento,
lo cual no tiene sentido lógico ni funcional.


4. ALGORITMO INCORRECTO PARA DESPLAZAR ELEMENTOS
------------------------------------------------
Aunque se corrigiera el swap, el algoritmo no implementa correctamente
un desplazamiento circular a la derecha.

Usar swaps sucesivos en este orden provoca:
- Pisado de valores
- Resultados incoherentes
- Listas finales incorrectas


5. FALTA DE CONTROL DE CASOS LÍMITE
-----------------------------------
No se controla el caso en el que la lista esté vacía.

Si lista = [], entonces:
n = len(lista) → 0
x = x % n → ZeroDivisionError


6. DOCUMENTACIÓN NO COINCIDE CON LA IMPLEMENTACIÓN
--------------------------------------------------
El docstring indica que la función:
"Desplaza los elementos de la lista X posiciones a la derecha"

Pero el código no realiza correctamente dicho desplazamiento.


7. RESULTADO FINAL
------------------
El código:
- No ejecuta correctamente
- Lanza errores en tiempo de ejecución
- No puede producir una salida válida
- No puede generar la lista [2, 1, 4, 5, 3]

FIN DEL INFORME

Por la experiencia que he tenido con chapGPt 5, como generador de código, me parece poco fiable.
 
Lo he probado en Chatgpt ese código y está todo mal.

ERRORES DEL CÓDIGO desplazar_elementos.py
========================================

1. ERROR DE INDENTACIÓN (GRAVE)
--------------------------------
Las líneas dentro del bucle for no están indentadas correctamente.
En Python, el cuerpo de un bucle debe ir indentado.

Código incorrecto:
for i in range(n - 1, -1, -1):
# Calculamos la nueva posición del elemento
nueva_posicion = (i + x) % n

Esto provoca un:
IndentationError: expected an indented block


2. ERROR EN EL INTERCAMBIO (SWAP) DE VARIABLES
----------------------------------------------
La siguiente línea es incorrecta:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

Problemas:
- Se asigna un entero a la variable lista
- lista deja de ser una lista y pasa a ser un int
- Después se intenta usar lista como si fuera una lista

Esto provoca el error:
TypeError: 'int' object does not support item assignment


3. USO INCORRECTO DEL CONCEPTO "SWAP"
-------------------------------------
El intercambio correcto entre elementos de una lista debería ser:

lista, lista[nueva_posicion] = lista[nueva_posicion], lista

El código intercambia la lista completa con un solo elemento,
lo cual no tiene sentido lógico ni funcional.


4. ALGORITMO INCORRECTO PARA DESPLAZAR ELEMENTOS
------------------------------------------------
Aunque se corrigiera el swap, el algoritmo no implementa correctamente
un desplazamiento circular a la derecha.

Usar swaps sucesivos en este orden provoca:
- Pisado de valores
- Resultados incoherentes
- Listas finales incorrectas


5. FALTA DE CONTROL DE CASOS LÍMITE
-----------------------------------
No se controla el caso en el que la lista esté vacía.

Si lista = [], entonces:
n = len(lista) → 0
x = x % n → ZeroDivisionError


6. DOCUMENTACIÓN NO COINCIDE CON LA IMPLEMENTACIÓN
--------------------------------------------------
El docstring indica que la función:
"Desplaza los elementos de la lista X posiciones a la derecha"

Pero el código no realiza correctamente dicho desplazamiento.


7. RESULTADO FINAL
------------------
El código:
- No ejecuta correctamente
- Lanza errores en tiempo de ejecución
- No puede producir una salida válida
- No puede generar la lista [2, 1, 4, 5, 3]

FIN DEL INFORME

Por la experiencia que he tenido con chapGPt 5, como generador de código, me parece poco fiable
 

Estadísticas del foro

Temas
2.060.261
Mensajes
58.468.729
Miembros
191.094
Último miembro
yomizmo

El blog de burbuja.info

-
-
Volver