Pregunta 1El Next.js que aparece en los libros para principiantes, ¿es un lenguaje, una biblioteca o un framework?
Diferencias entre lenguajes de programación, y frameworks y bibliotecas
Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Python y JavaScript se diferencian en cómo escribes, no en lo que haces. Los diagramas llegan hasta distinguir una biblioteca de un framework por la dirección de la llamada.
Este artículo trata las diferencias entre lenguajes de programación, y los frameworks y las bibliotecas.
Aprenderás a distinguir si un nombre como React o Next.js es un lenguaje o algo escrito en un lenguaje.
Se tratan Python y JavaScript, además de cuatro nombres: React, Next.js, Django y Flutter.
Qué es un lenguaje de programación: distinta sintaxis, el mismo contenido
Un lenguaje de programación (programming language: el vocabulario y las reglas de escritura del código fuente) va emparejado con un entorno de ejecución.
Lo que cambia es la sintaxis (syntax: las reglas sobre con qué símbolos y en qué orden se escribe una instrucción).
| Mismo papel | Python | JavaScript |
|---|---|---|
| Dar nombre a un valor | a = 3 | let a = 3; |
| Separar según una condición | if a > 2: | if (a > 2) { |
| Mostrar en pantalla | print(a) | console.log(a) |
Python marca los bloques con : al final de la línea y la sangría, y JavaScript los marca con ; y { }.
De las cuatro líneas siguientes, las tres primeras están escritas al modo de JavaScript y la última al modo de Python.
let a = 3;
let b = 4;
console.log(a + b);
console.log(len([a, b]))
Después de que la tercera línea muestre 7, se detiene en la última.
Aunque quieras hacer lo mismo, el entorno de ejecución no puede leerlo si lo escribes de otra forma.
Los lenguajes cambian en cómo escribes, no en lo que haces
Un lenguaje de programación son las reglas sobre los símbolos y el orden de las palabras al escribir código.
Dar nombre a un valor, separar según una condición y repetir existen en todos los lenguajes, y lo único que cambia es cómo se escriben y el entorno de ejecución que los lee.
Bibliotecas y frameworks: la llamada va en sentidos opuestos
Tanto una biblioteca (library) como un framework (framework) son conjuntos de programas escritos por otras personas, y se usan para escribir menos por tu cuenta.
Indicar por su nombre una función de otro programa y hacer que se ejecute es llamarla (call).
La diferencia entre ambos está en la dirección de esa llamada.
| Qué mirar | Biblioteca | Framework |
|---|---|---|
| Término en inglés | library | framework |
| Qué contiene | Programas con una función concreta | El flujo de procesamiento de toda la aplicación |
| Relación con tu propio código | Lo llamas desde tu propio código | Añades código en lugares fijados |
| Dirección de la llamada | Tu propio código → biblioteca | Framework → tu propio código |
| Quién decide el flujo | Tu propio código | Framework |
- El entorno de ejecución ejecuta tu propio código (app.js)
- Decide el flujo de todo el programa
- Llama a la biblioteca cuando le hace falta
- Se ejecuta solo cuando lo llaman
- Al terminar vuelve a tu propio código
- El entorno de ejecución ejecuta el framework
- El flujo de toda la aplicación ya está escrito
- Llama a tu propio código en puntos fijados
- Se ejecuta solo cuando lo llaman
- Dónde se escribe y cómo se llama están fijados
En el marco inferior se intercambian el dentro y el fuera, y el framework llama a tu propio código.
El que está por fuera decide el flujo general.
Al llamar a una biblioteca te basta una línea en vez de las decenas que escribirías tú.
Lo único que cambia es quién escribió ese procesamiento.
Si llamas a una biblioteca que hay que instalar antes de usarla y no la has instalado, la ejecución se detiene con un error.
En los manuales también se las llama «paquetes» y «módulos», y cómo funciona eso se trata en el artículo «Qué es la gestión de paquetes».
El framework de una aplicación web contiene el flujo que va desde recibir una solicitud hasta devolver una respuesta.
- Recibe la solicitud que llegó desde el navegador
- Mira la URL y busca el procesamiento que le corresponde
- Arma la respuesta con el resultado que recibe y la devuelve
- Se ejecuta solo cuando lo llaman
- Lee y escribe la base de datos y produce un resultado
- Devuelve al framework el resultado que produjo
De los tres de fuera se encarga el framework, así que no los escribes tú.
La razón para usar un framework es no tener que escribir tú la parte de fuera.
Tu propio código se ejecuta solo en el tercer paso, y de lo anterior y lo posterior se encarga el framework.
Qué URL ejecuta cada parte también se escribe simplemente en un lugar fijado.
Quien llama y quien es llamado
Tanto la biblioteca como el framework son programas escritos por otras personas, y la diferencia está en cuál queda por fuera.
A la biblioteca la llamas desde dentro de tu propio código, y el framework llama a tu propio código desde fuera y decide el flujo general.
Qué son React, Next.js, Django y Flutter: repartir los nombres en tres tipos
Los nombres que aparecen en un curso se leen repartiendo cada uno en lenguaje, biblioteca o framework.
Next.js no es un lenguaje: es un framework escrito en JavaScript.
- Código de pantallas que se ejecutan en el navegador
- Código del lado del servidor que se ejecuta en node
- Separa los archivos de página por URL
- También puedes escribir procesamiento del lado del servidor
- La pantalla se arma con React
- Arma las piezas de la pantalla
- Puedes llamarla sin usar Next.js
- Código de análisis de datos y automatización
- Código de procesamiento del lado del servidor
- Asignación de URL a procesamiento
- Lectura y escritura de la base de datos
- Cómo funciona el inicio de sesión
- Código de aplicaciones móviles
- Las pantallas y el comportamiento de una aplicación móvil
- De un solo código a iPhone y Android a la vez
React es una biblioteca que arma las piezas de la pantalla, y Next.js es un framework que usa ese React y llega hasta el procesamiento del lado del servidor.
Flutter es un framework para crear aplicaciones móviles, y se escribe en un lenguaje llamado Dart.
Poder crear, a partir de un solo código, una aplicación que funciona en varios sistemas operativos se llama multiplataforma (cross-platform).
Ninguno de estos nombres es un lenguaje: todos son algo que usas junto con tu propio código.
El mismo nombre, Next.js, aparece tanto del lado del dispositivo como del lado del servidor.
Es porque lo que abarca cambia según si solo arma la pantalla o si además contiene el procesamiento del lado del servidor.
Incluso desde una aplicación móvil hecha con Flutter, aquello a lo que se conecta es el mismo servidor público.
El nombre, ¿es un lenguaje o algo escrito en un lenguaje?
Ni Next.js ni React ni Django ni Flutter son lenguajes: cada uno está escrito en algún lenguaje.
Si averiguas en qué lenguaje se escribe sabrás si es un lenguaje en sí, y si averiguas la dirección de la llamada sabrás si es una biblioteca o un framework.
Con qué lenguaje empezar: decídelo según si lo que quieres crear necesita pantalla en el navegador
El lenguaje que el navegador puede leer es JavaScript, así que el lado de la pantalla (el frontend) es JavaScript.
El lado del procesamiento (el backend) se ejecuta en el servidor, así que puedes escribirlo en cualquiera de los dos.
Si necesitas pantalla en el navegador, esa parte queda fijada en JavaScript.
Si no necesitas pantalla, empieza por Python, que tiene muchas bibliotecas externas para análisis de datos y automatización.
Los frameworks y las bibliotecas de la fila de abajo aparecen después de elegir un lenguaje; no son lo que eliges primero.
Empieces por donde empieces, los mecanismos que aprendes son los mismos.
Los dos caminos se juntan al final en el mismo punto.
Lo que vuelves a aprender es la forma de escribir y los nombres de las bibliotecas que se usan en ese lenguaje.
Elige el que esté más cerca de lo que quieres crear y sigue adelante con él.
Si sabes qué quieres crear, el lenguaje queda decidido
El lenguaje se decide por lo que quieres crear, no por gusto.
Si necesitas una pantalla que funcione en el navegador, esa parte es JavaScript, y si no, puedes empezar por Python; en el segundo lenguaje solo vuelves a aprender la forma de escribir y los nombres de las bibliotecas.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Cuál es la diferencia correcta entre una biblioteca y un framework?
Pregunta 3¿Por qué el código del lado de la pantalla de una aplicación web se escribe en JavaScript?