Me he aficionado un poco a la programación visual, pero no tengo ni idea de cómo se supone que debes hacerlo si no sabes programar de forma convencional.
El código de Claude es el que más me gusta. Creo que el de Codex tiende a ser demasiado complejo y no sigue las instrucciones al pie de la letra.
Lo más complicado es que el modelo genera muchísimo código, gran parte del cual es redundante y poco profesional (en el sentido antiguo). Pero lo bueno es que puedes escribir fácilmente un millón de pruebas unitarias. (De hecho, siempre he usado modelos lineales de aprendizaje para esto, incluso desde GPT-3.5).
Es un paradigma interesante. Por ejemplo, en esta pequeña aplicación de prueba que he estado creando, hay varios lugares, unos 15, que hacen que la aplicación se desplace a algún elemento. En cada lugar, se escribieron exactamente las mismas 7 líneas para ejecutar esto. La forma en que yo lo haría sería...
Escribo una función `scrollToElement` y la llamo cada vez que quiero desplazarme a un elemento. Pero sigue escribiendo las mismas 7 líneas para desplazarme a donde sea. Parece que no se le ocurre refactorizarla. Obviamente, eso está mal. Sin embargo,
Parece no tener problema en modificar los 15 fragmentos de código idéntico según sea necesario, y el comportamiento está suficientemente documentado mediante pruebas, de modo que cuando olvida uno, falla la prueba, encuentra el error y lo corrige. Esto es estéticamente horrible, pero funciona lo suficientemente bien como para que
Ni siquiera me di cuenta hasta que empecé a leer el código con detenimiento. Normalmente, conviene evitar la repetición (DRY) porque introduce fragilidad y errores, pero en este caso no parecía ser el caso. Sigue siendo un problema, pero plantea preguntas interesantes…
Por ejemplo, si tienes a alguien con una energía inagotable para escribir código, ¿no sería mejor ser un poco más detallado? Muchas de mis prácticas se deben a una preferencia estética por hacer lo máximo posible con el mínimo código posible, pero quizás eso no sea lo óptimo para el código de LLM.
Claro, el modelo no tiene energía infinita. Cuesta dinero, probablemente más del que estoy pagando por él.