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.

Cada nombre que sale en un libro para principiantes es de uno de tres tipos
LenguajeBibliotecaFrameworkPythonJavaScriptReactNext.jsDjangoReglas paraescribir cada líneaLo llamas desdetu propio códigoEscribes tu códigoen lugares fijadosSi va unido a unentorno de ejecuciónSi la llamada vade ti hacia fueraSi la llamada vade fuera hacia ti
La fila de arriba es cómo se llama, la del medio un ejemplo típico y la de abajo cómo se relaciona con tu propio código. La columna de la derecha es lo que compruebas cuando ves ese nombre.

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 papelPythonJavaScript
Dar nombre a un valora = 3let a = 3;
Separar según una condiciónif a > 2:if (a > 2) {
Mostrar en pantallaprint(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é mirarBibliotecaFramework
Término en ingléslibraryframework
Qué contieneProgramas con una función concretaEl flujo de procesamiento de toda la aplicación
Relación con tu propio códigoLo llamas desde tu propio códigoAñades código en lugares fijados
Dirección de la llamadaTu propio código → bibliotecaFramework → tu propio código
Quién decide el flujoTu propio códigoFramework
La dirección de la llamada depende de cuál está por fuera
Cuando usas una biblioteca
  • El entorno de ejecución ejecuta tu propio código (app.js)
Tu propio código (app.js)
  • Decide el flujo de todo el programa
  • Llama a la biblioteca cuando le hace falta
Biblioteca
  • Se ejecuta solo cuando lo llaman
  • Al terminar vuelve a tu propio código
Cuando usas un framework
  • El entorno de ejecución ejecuta el framework
Framework
  • El flujo de toda la aplicación ya está escrito
  • Llama a tu propio código en puntos fijados
Tu propio código (en archivos fijados)
  • Se ejecuta solo cuando lo llaman
  • Dónde se escribe y cómo se llama están fijados
El marco superior es cuando usas una biblioteca, y el inferior cuando usas un framework. El que está por fuera decide el flujo general, y el de dentro se ejecuta solo cuando lo llaman.

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.

De qué se encarga el framework en una aplicación web
De qué se encarga el framework
  • 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
Dónde escribes tu propio código
  • Se ejecuta solo cuando lo llaman
  • Lee y escribe la base de datos y produce un resultado
  • Devuelve al framework el resultado que produjo
El marco exterior es de lo que se encarga el framework, desde recibir la solicitud hasta armar la respuesta. Solo el marco interior es donde escribes tu propio código.

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.

Frameworks y bibliotecas, colocados dentro de su lenguaje
Lo que se escribe en JavaScript
  • Código de pantallas que se ejecutan en el navegador
  • Código del lado del servidor que se ejecuta en node
Next.js (framework)
  • Separa los archivos de página por URL
  • También puedes escribir procesamiento del lado del servidor
  • La pantalla se arma con React
React (biblioteca)
  • Arma las piezas de la pantalla
  • Puedes llamarla sin usar Next.js
Lo que se escribe en Python
  • Código de análisis de datos y automatización
  • Código de procesamiento del lado del servidor
Django (framework)
  • Asignación de URL a procesamiento
  • Lectura y escritura de la base de datos
  • Cómo funciona el inicio de sesión
Lo que se escribe en Dart
  • Código de aplicaciones móviles
Flutter (framework)
  • Las pantallas y el comportamiento de una aplicación móvil
  • De un solo código a iPhone y Android a la vez
Lo de fuera es el lenguaje, y lo de dentro son los frameworks y las bibliotecas que se escriben en ese lenguaje. Lo que está dentro se escribe con la sintaxis del lenguaje de fuera.

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.

De lo que quieres crear, al primer lenguaje y a los nombres que vienen después
Qué quieres crearNecesita pantallaen el navegadorNecesita pantallaen el móvilSin pantalla: solodatos y automatizarJavaScriptDart y otrosPythonReactNext.jsFlutterDjangopandas
De una caja arriba salen tres ramas, y cada una llega a un lenguaje abajo. La fila de abajo son los frameworks y las bibliotecas cuyos nombres verás después de elegir ese lenguaje.

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.

Empieces por el lenguaje que empieces, aprendes los mismos mecanismos
Si empezastecon PythonSi empezastecon JavaScripta = 3if / whilelet a = 3;if / whileNombrar un valorseparar por condiciónrepetir
Los dos caminos de la izquierda y la derecha se juntan en uno abajo. Las dos formas de escribir se aprenden por separado, pero los mecanismos a los que llegas son comunes.

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.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1El Next.js que aparece en los libros para principiantes, ¿es un lenguaje, una biblioteca o un framework?

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?