Desmitificando el Lenguaje Natural en la Programación: ¿Puede Reemplazar a los Programadores?
Introducción
Héctor de León plantea la pregunta sobre el futuro de las imágenes NFT y cómo se relaciona con la desinformación en el ámbito tecnológico. En este video, se aborda la creencia de que el lenguaje natural puede sustituir a los lenguajes de programación, desmintiendo esta idea con argumentos sólidos.
Concepto de Determinismo
- Definición: Un sistema determinista puede predecir un comportamiento específico y consistente. En programación, esto significa que una función con la misma entrada siempre produce la misma salida.
- Lenguaje Natural vs. Lenguaje de Programación: El lenguaje natural es inherentemente ambiguo, lo que dificulta su uso para crear software de manera determinista. Para entender mejor este concepto, puedes consultar nuestra guía sobre Introducción a los Modelos de Lenguaje Grande: ¿Qué son y cómo funcionan?.
Ejemplos de Ambigüedad
- Frases Ambiguas: Ejemplos como "el perro del vecino está ladrando" muestran cómo el lenguaje natural puede tener múltiples interpretaciones.
- Prompts en Programación: Un prompt vago puede llevar a resultados inesperados en el código generado, como credenciales expuestas o malentendidos sobre el tipo de aplicación deseada. Esto resalta la importancia de evitar Los Tres Grandes Errores en la Programación y Cómo Evitarlos.
Importancia del Conocimiento en Programación
- Especificidad en Prompts: Ser más específico en los prompts puede mejorar los resultados, pero aún así se requiere un conocimiento sólido de programación para interpretar y modificar el código generado. Para aquellos que buscan mejorar sus habilidades, recomendamos leer sobre Cómo Convertir la Programación en una Adicción Positiva.
- Limitaciones del Lenguaje Natural: Aunque el lenguaje natural puede facilitar ciertas tareas, no puede reemplazar la necesidad de un entendimiento profundo de los lenguajes de programación.
Conclusión
El video concluye enfatizando que, aunque la inteligencia artificial y el lenguaje natural están cambiando la forma en que programamos, es crucial entender sus limitaciones. La educación y el conocimiento son fundamentales para aprovechar estas herramientas de manera efectiva, sin caer en la trampa de las exageraciones sobre su capacidad. Para más información sobre los desafíos en el desarrollo de software, puedes leer Superando Desafíos en el Desarrollo de Software: La Historia de Nicolás.
¿Qué tal? Mi nombre es Héctor de León y hoy me estaba preguntando dónde terminarían las imágenes NFT que
compraron las personas, ¿eh? Pegadas en el refrigerador. ¿Dónde terminaron? En este video vamos a hablar sobre
desmentir cosas, porque hoy es muy fácil que cualquier persona diga algo que quiere que sea cierto como un hecho. Es
decir, yo quiero que, no sé, que llueva cerveza del cielo. Escribo, algún día va a llover cerveza del cielo. Y muchas
personas que quieren eso mismo van a ponerle like a mi post. Eso es muy común hoy en día y mucho lo vemos como la
inteligencia artificial va a reemplazar a todos los programadores o de lo que vamos a hablar en este video, el
lenguaje natural puede crear todo el tipo de aplicaciones y eso es una de las mentiras más grandes que vamos a
escuchar hoy en día y vamos a desmentirlo porque no hay ninguna base detrás que pueda avalar esto. Así que
vamos a hablar de por qué el lenguaje natural nunca va a ser lo único con lo cual vas a poder desarrollar software.
decir, quiero una aplicación que haga esto, esto, esto, es decir, los prom engineers no va a ser suficiente para
crear todo tipo de aplicaciones por el simple hecho de que el lenguaje natural no es determinista. Vamos a analizar qué
es lo que es el determinismo, vamos a analizar por qué el lenguaje natural no puede hacer este tipo de cosas y por qué
a final de cuentas vamos a necesitar siempre lenguajes de programación. Así que déjame un pulgar arriba y vamos a
comenzar. [Música] Mañosillo, cuando buscamos qué es ser
determinista, vamos a tener muchos significados, sobre todo en el ámbito científico. Es un sistema el cual puede
predecir un comportamiento y este comportamiento siempre va a ser el esperado, es decir, nunca va a cambiar
el comportamiento en sí. En la programación, el determinismo es tener una función que dando la misma entrada
de información, va a resultar siempre lo mismo. Si tú das ciertos parámetros, uno y dos a una función, esta función te va
a regresar a lo mejor siempre un tres, porque está haciendo una sumatoria. Eso es ser determinista. Con un lenguaje de
programación tú puedes ser determinista, pero con un lenguaje natural es muy difícil de ser determinista porque el
lenguaje natural por sí mismo es uno de los obstáculos que tiene en sí e los LLM para hacer sistemas que sean de calidad
alta. Unos ejemplos rápidos de por qué el lenguaje natural no es determinista es, por ejemplo, el perro del vecino
está ladrando. El vecino tiene un perro y está ladrando. O el vecino es un perro. Otro ejemplo rápido es, yo fui al
banco a descansar. Pudiste ir al banco donde se sienta la gente a descansar o fuiste a un banco donde cobra la gente y
descansaste. Los dos términos pueden tener un significado válido y esto es un grave problema a la hora de meter esos
prompsar sistemas porque el lenguaje natural puede tener distintos significados y esto lo que ocasiona es
que un sistema pueda irse por un lado o por otro o por otro o por otro. Es decir, la ambigüedad del mensaje en sí
hace que el sistema no sea determinista. Un sistema no determinista no te sirve para nada. Vamos a ver algunos ejemplos
de la ambigüedad a la que puede llegar un prompt por el hecho también de que falte información, no la especifiques
con claridad y también tu falta de conocimiento a la mejor en desarrollo de sistemas. Por ejemplo, el siguiente
promp. Haz un login simple en C#ARP con verificación de usuario y esto es bastante en viiguo y también es un prom
pequeño, yo lo sé, no está especificado mucho, pero muchos usuarios creen que con esto es suficiente para crear un
sistema, sobre todo tus PMS. N cierto. Podemos ver el primer resultado. En primera podemos ver que es un sistema,
un softwarecillo que pues funciona, pero es de consola. A lo mejor yo lo quería como un sistema web, no lo especifiqué.
Las credenciales aquí están en el mismo código, una muy mala práctica. Sobre todo esto ni siquiera está encriptado.
Cualquiera que ve el código puede ver el usuario y la contraseña. Otra de las cosas que puede
interpretar el LLM es crear esta aplicación como web. Y a lo mejor yo no la quería web, la quería de escritorio o
de consola o de mobile, etcétera. Bueno, aquí podemos ver también varias inconsistencias por la falta de
información que yo no le di, que es la contraseña en sí está en texto plano, ni siquiera está encriptada. Eh, utilizamos
Entity Framework sin saber que el usuario tiene el contexto configurado y también tenemos una separación de capas,
bueno, de la ¿no? O sea, yo ni siquiera le especifiqué esto porque quizá como usuario ni siquiera se de
buenas prácticas. Ahora, seamos más específicos con el prompt. Haz un login en Csarp usando
ASP.net core en minimal API y que reciba el usuario y contraseña por un Jason. eh valide contra una base de datos con
Entity Framework, que valide la información, una base de datos por medio de este ORM y también use un hash como
BCPT, el cual devuelva un 401 si falla. Si te fijas, he sido más específico, pero el mensaje es más grande y este
mensaje tiene mucho conocimiento. Tiene un conocimiento que conozco sobre ORM, entity Framework, tiene un conocimiento
que que conozco sobre web porque lo quiero una tecnología en específico, pero también una tecnología en
específico de ASP. SP puede trabajar en muchísimas formas, una de ellas en MBC, pero no lo quise en MVC, lo quise en
minimal API, lo estoy especificando. Otra de las cosas también que especifiqué, bueno, es que tenga un tipo
de encriptación y también que maneje un código de error porque CD de HTTP. ¿Te fijas? como un prom de este tipo, tiene
mucha información de conocimiento y de alguna manera puede ser también amigo. Aunque podemos ver el resultado
sacado de Chat GPT, que es un resultado que sí está de alguna manera haciendo el trabajo que yo le estoy pidiendo. Hay
cosas que yo no especifiqué y aquí se supusieron. Por ejemplo, la ruta. Yo no especifiqué que la ruta se llame login,
pero Chat GPT lo supuso. Y también, bueno, yo no especifiqué que trabajara con records y Chat GPT, bueno, trabajó
con un récord. A lo mejor yo como programador ni siquiera sé que es un récord, sobre todo los programadores de
JavaScript. A ver, díganme que es un récord. Los program de C Sharp sí saben que es un récord, pero lo que voy es de
que igual aunque tú seas lo más específico que se pueda hacer, siempre vamos a tener que tener conocimiento de
programación porque si yo quiero cambiar ese récord por una clase, tengo que saber qué es un récord y qué es una
clase. También saber que las rutas, bueno, te pueden cambiar y no solamente ahí ver el login, no saber qué significa
eso. Por eso la ambigüedad también del mismo prom, aunque tú seas muy específico, puede llegar a llevar
siempre un mensaje, bueno, incorrecto. O y quizás en este punto te preguntes, ¿un lenguaje de programación siempre es
determinista? Pues no, no siempre es determinista, pero sí puede serlo. Más fácil que un lenguaje natural. Un
lenguaje de programación puede ser no determinista cuando depende de recursos externos de entrada y salida, porque
estos recursos externos pueden cambiar o también cuando tu función está rompiendo un principio de programación funcional
en la cual la función es pura, tiene un comportamiento interno que puede ser aleatorio. Es cuando un lenguaje de
programación puede ser no determinista, pero podemos optar por buenas prácticas para que sea determinista. El objetivo
de este video no es menospreciar esos avances que se han hecho con inteligencia artificial, sino desmentir
también su alcance. Muchas personas van a decir todo lo que sea necesario para buscar likes, decir un hype enorme de
este tipo de cosas, pero nunca te van a dar los hechos o la base sólida para solventar este tipo de cosas. Es por eso
que es necesario este tipo de videos también para que las personas vean el realismo de lo que es el alcance de
estas herramientas. Estas herramientas están cambiando como programamos. Claro que sí está cambiando y es obligatorio
utilizarlas, pero también hay que analizar hasta qué punto es su alcance, porque gracias a este alcance vas a
poder utilizarlas mejor a tu favor y si tú las tienes a tu favor, vas a poder utilizarlas mejor sin necesidad de estar
dándoles un hype innecesario y esperar algo más allá de lo que no te pueden dar. Recuerda que al final de cuentas el
conocimiento es lo más importante, saber realmente en sí qué es lo que puede hacer la cosa, desventajas y ventajas y
de esta manera es como tú vas a potenciarte como profesional, ¿no? Esperando un optimismo enorme sobre algo
que bueno no es cierto. Por ejemplo, que el lenguaje natural va a poder hacer todo tipo de sistemas y eso es una gran
mentira. Y pues nada, espero que te haya gustado este video. Recordar que puedes dejarme un pulgar arriba si quieres que
haga más videos de este tipo. Recuerda que todos mis cursos están Metal Code, siempre con 15% de descuento utilizando
el cupón Metal Code. Cursos que no sirven para nada porque nos va a reemplazar la inteligencia artificial.
Hasta luego. [Música]
Heads up!
This summary and transcript were automatically generated using AI with the Free YouTube Transcript Summary Tool by LunaNotes.
Generate a summary for freeRelated Summaries

Introducción a los Modelos de Lenguaje Grande: ¿Qué son y cómo funcionan?
Descubre cómo funcionan los modelos de lenguaje como ChatGPT y su impacto en la inteligencia artificial.

Cómo Convertir la Programación en una Adicción Positiva
En este video, Carlos comparte su experiencia sobre cómo transformar la programación en una actividad adictiva y gratificante. A través de estrategias prácticas, explica cómo superar la falta de motivación y mejorar la concentración, utilizando la química cerebral a nuestro favor.

Los Tres Grandes Errores en la Programación y Cómo Evitarlos
Descubre los errores más comunes en programación y cómo mejorar tu desarrollo profesional.

Superando Desafíos en el Desarrollo de Software: La Historia de Nicolás
En esta inspiradora charla, Nicolás comparte su trayectoria desde sus humildes comienzos hasta convertirse en un exitoso desarrollador en Nueva Zelanda. A través de su experiencia, destaca la importancia de la disciplina, la resiliencia y la constancia en el camino hacia el éxito profesional.

Comparativa de Capacidades de Visión AI: Jetson Nano Super vs Raspberry Pi 5
Descubre las capacidades de visión AI de Jetson Nano Super y Raspberry Pi 5 en este tutorial comparativo y práctico.
Most Viewed Summaries

Mastering Inpainting with Stable Diffusion: Fix Mistakes and Enhance Your Images
Learn to fix mistakes and enhance images with Stable Diffusion's inpainting features effectively.

A Comprehensive Guide to Using Stable Diffusion Forge UI
Explore the Stable Diffusion Forge UI, customizable settings, models, and more to enhance your image generation experience.

How to Use ChatGPT to Summarize YouTube Videos Efficiently
Learn how to summarize YouTube videos with ChatGPT in just a few simple steps.

Ultimate Guide to Installing Forge UI and Flowing with Flux Models
Learn how to install Forge UI and explore various Flux models efficiently in this detailed guide.

How to Install and Configure Forge: A New Stable Diffusion Web UI
Learn to install and configure the new Forge web UI for Stable Diffusion, with tips on models and settings.