Tabla de contenidos
Introducción
A menudo, la tecnología en sus inicios y comienzos parece rudimentaria, incómoda y redundante. Invariablemente surgen discusiones sobre la viabilidad y el derecho a la existencia de la nueva tecnología, comparándola con tecnologías cargadas de historia e innumerables iteraciones.
¡Creé este juego de tenis en JavaScript usando solo lenguaje natural! 39 Frases en las que describí la funcionalidad. OpenAI Codex traduce el lenguaje natural en código, como se vio por primera vez en GitHub Copilot. Copilot se basa en Codex.
El Codex debe verse por lo que es. Una primera incursión en un nuevo campo, y, la verdad, que es muy impresionante en eso.
Lo que hace que Codex sea de interés es que es una nueva aplicación para la comprensión del lenguaje natural (NLU).
En este caso, NLU no se usa para autoservicio o atención al cliente, etc. NLU no se usa para conversaciones bidireccionales o incluso para una situación de entrada y salida de texto. Pero estamos pasando de un input conversacional natural altamente desestructurado, a un medio altamente estructurado; código.
En esencia, OpenAI Codex es un sistema de inteligencia artificial que traduce el lenguaje natural en código.
Codex impulsa GitHub Copilot, que OpenAI creó y lanzó recientemente en asociación con GitHub. Codex puede interpretar comandos simples en lenguaje natural y crear y ejecutar código. NLU a aplicaciones.
Esta es una nueva implementación del lenguaje natural, se podría argumentar.
Codex en resumen
Aquí hay algunas observaciones iniciales…
- No seas demasiado creativo y elaborado en tu descripción de lenguaje natural.
- Básicamente, estás escribiendo el algoritmo línea por línea.
- No todo tiene que ser explícito. El comando implícito se capta sorprendentemente bien.
- Los errores ortográficos también se detectan y se solucionan.
- De alguna manera se mantiene el contexto.
- El código se puede revisar en el panel lateral, editar y guardar manualmente.
- Puedes hacer referencia a funciones, variables, etc. desde la perspectiva del lenguaje natural.
- Codex es ideal como herramienta para automatizar tareas y crear utilidades.
- El Codex es muy adecuado como herramienta para aprender cómo se ve un bien formado.
Ejemplo práctico de JavaScript
Una de las formas más fáciles de comenzar con Codex es optar por JavaScript. Hay algunas implementaciones de JavaScript con las que puedes comenzar:
- Un sitio web simple
- Juegos
- Componentes web como selectores de fecha y color
- Funciones de fecha y hora
En el siguiente ejemplo, quería crear una aplicación para dos jugadores bastante complicada. El bloque rojo y azul se puede mover hacia arriba y hacia abajo con las teclas del teclado. Las puntuaciones se pueden restablecer y el juego se detiene e inicia.
A continuación, verás la secuencia de entradas de NLU que se utilizó para crear la aplicación. Las áreas que eran complicadas eran definir qué es un acierto y qué debe contarse como un punto.
Pude decir, hacer la bola de la imagen más pequeña, y Codex puede responder a eso. Esta es una entrada muy relativa y quizás ambigua, que está bien ejecutada.
Cuando se emite una entrada ambigua como: agrandar el botón, el contexto se mantiene y la edición se atribuye al botón creado en el paso anterior.
create a blueBlock on the left
move the block up when q is pressed and down when a is pressed
create a redBlock on the right
make the background green
move the redBlcok up when o is pressed and down when p is pressed
Add the image called ball: https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse1.mm.bing.net%2Fth%3Fid%3DOIP.6n_nHXX-Cn10IKC0T7A72AHaHa%26pid%3DApi&f=1
crop the image ball circularly
make the image ball smaller
disable scrollbars
animate the ball to move both horizontally and vertically bouncing off the sides
draw a vertical line in the middle of the screen
make the line white and of 20px width
create a variable called redScore
create a variable called blueScore
Display the value of the variable redScore in the top right
make it bigger and bold
Display the value of the variable blueScore in the top left*/
make it bigger and bold
make the blueScoreDisplay red
make the redScoreDisplay reod
check every 10ms if the image ball and the blueBlock overlaps
if true, increment blueScore
check every 10ms if the image ball and the redBlock overlaps
place a button on the bottom left corner called blueButton
when clicked, zero the variable blueScore
make button bigger
place a button on the bottom right corner called RedButton
when clicked, zero the variable redScore
make the button bigger
add a white horizontal line in the middle of the screen 20px wide
Add a large button called Stop in the middle bottom of the screen
when the button is clicked, freeze the image ball
Add a large button called Start in the middle bottom of the screen
when the button is clicked, unfreeze the image ball
make the start button larger
make the stop button larger
make the start button blue
make the stop button red
Necesitas tener una idea de lo que quieres comenzar y lograr. Luego divídelo en pasos más pequeños y ejecuta esos pasos.
Cada paso se puede probar a medida que avanza. Si continúas sin probar a intervalos regulares, es seguro que habrá aberraciones en la aplicación, que no ejecutarán la corrección.
Otra característica es agregar componentes web como selector de fecha o selector de color, etc.
Con solo decir, agrega una lista desplegable con los meses del año, el JavaScript se crea y se muestra.
El código se puede copiar fuera del entorno del Codex o exportarse a JSFiddle.
De ahí mi idea de utilizar el Codex como referencia rápida. En cierto sentido, Codex me recuerda a un sitio como Stack Overflow. La única diferencia es que a medida que haces tu pregunta, el código se crea automáticamente sin esperar a que responda un experto.
Dependiendo del costo del Codex y la disponibilidad general, podría evolucionar como un recurso técnico rápido y eficiente.
/* Add a dropdown list with the months of the year */
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var monthSelect = document.createElement('select');
for (var i = 0; i < months.length; i++) {
var monthOption = document.createElement('option');
monthOption.innerHTML = months[i];
monthSelect.appendChild(monthOption);
}
document.body.appendChild(monthSelect);
En este último ejemplo, se establece un temporizador para incrementos de 10 segundos.
Se agrega un cuadrado y el Codex tiene el tamaño predeterminado que se ve a continuación. Por último, el color del cuadrado cambia cada 10 segundos.
Conclusión
Se ha debatido mucho sobre Low Code frente a la codificación artesanal o tradicional. No se trata de lo uno ni lo otro. Hay un lugar y una aplicación para ambos. Con ventajas y desventajas.
Discuto ese tema en detalle aquí.
Y lo mismo ocurre con el Codex. ¿Se construirán los sistemas empresariales de esta manera? Lo más probable es que no. ¿Las empresas de Fortune 500 seguirán la ruta del Codex en principio… no.
Pero, hay algunas aplicaciones de nicho diferido, que pueden incluir:
- Resolver desafíos y problemas de codificación en determinadas rutinas.
- Establecimiento de mejores prácticas.
- Seguro de calidad.
- Aprendizaje interactivo
- Generando componentes específicos para posterior revisión humana.