Un entorno de desarrollo "perfecto" no existe para siempre. Lo que sí existe es un entorno que envejece bien: uno donde las versiones están fijadas, los proyectos son reproducibles y actualizar una herramienta no rompe todo lo demás.
Y 2027 es un buen momento para revisar el tuyo, porque cambian cosas concretas: Node.js estrena un nuevo modelo de versiones, Python acaba de publicar la 3.15 y algunas versiones que quizá sigues usando están a punto de quedarse sin soporte.
En esta guía vas a montar un entorno pensado para durar: versiones LTS correctas, versiones fijadas en cada repositorio, Git con commits firmados, Dev Containers y un uso seguro de los asistentes de IA. Aquí nos centramos en lo que ha cambiado y en lo que más importa de cara al año que viene.
Lo que cambia para 2027
1. Node.js pasa a una versión mayor al año
Hasta ahora Node publicaba dos versiones mayores al año y solo las de número par llegaban a LTS. Eso cambia a partir de Node.js 27: habrá una única versión mayor cada año, publicada en abril y promovida a LTS en octubre. Todas pasarán a ser LTS (desaparece la regla de pares e impares) y el número de versión coincidirá con el año de su lanzamiento: 27 en 2027, 28 en 2028.
Calendario de Node.js (según el calendario oficial; las fechas pueden variar)
Versión Estado / hito Fin de soporte
──────── ───────────────────────────────────────── ──────────────
Node 20 Sin soporte 30 abr 2026
Node 22 Maintenance LTS (solo fixes críticos) 30 abr 2027
Node 24 LTS 30 abr 2028
Node 26 Entra en LTS en octubre de 2026 abr 2029
Node 27 Current en abril 2027 → LTS en oct 2027 abr 2030
(primera versión del nuevo modelo)La consecuencia práctica es clara: si todavía usas Node 22, planifica la migración antes de abril de 2027. Y si usas Node 20, ya estás fuera de soporte.
# Comprueba qué versiones LTS hay disponibles AHORA (con nvm)
nvm ls-remote --lts
# Comprueba si la versión que estás ejecutando es LTS
node -p "process.release.lts"
# Si es LTS devuelve el nombre en clave (por ejemplo "Krypton")
# Si es una versión Current devuelve "undefined"2. Python 3.15 ya está aquí y Python 3.10 se queda atrás
Python publica una versión nueva cada octubre, y cada una recibe soporte durante unos cinco años. Con la llegada de la 3.15 en octubre de 2026, Python 3.10 deja de recibir soporte.
Regla práctica para elegir versión de Python en un proyecto nuevo:
→ Una versión estable reciente con soporte amplio de librerías.
→ La más nueva (3.15) solo si TODAS tus dependencias ya publican
ruedas (wheels) para ella. Si dudas, una versión anterior es más segura.
→ Evita versiones sin soporte: no reciben parches de seguridad.Puedes consultar el calendario de cualquier tecnología en endoflife.date. Merece la pena añadirlo a favoritos.
Principio 1: fija las versiones dentro del repositorio
El error más caro de un entorno de desarrollo es que la versión de Node o Python viva solo en tu cabeza. La solución es que la versión forme parte del propio proyecto, de modo que cualquiera (y tu servidor de CI) use exactamente la misma.
# Node.js — un archivo .nvmrc en la raíz del proyecto
echo "24" > .nvmrc
nvm use # lee .nvmrc y cambia a esa versión
# package.json — avisa si alguien usa una versión incompatible
{
"engines": {
"node": ">=24"
}
}
# Python — un archivo .python-version (lo leen pyenv y uv)
echo "3.14" > .python-version⚠️ Ojo con los alias flotantes: lts/* apunta siempre a la LTS más reciente, así que su significado cambia cuando sale una nueva LTS. Para desarrollo cómodo está bien; para producción y para CI, fija el número de versión mayor y actualízalo de forma deliberada.
Una sola herramienta para varios lenguajes: mise
Si trabajas con Node y Python (y quizá Java o Go), puedes unificar todo con mise, un gestor de versiones multilenguaje que lee un único archivo de configuración por proyecto.
# Instalar mise
curl https://mise.run | sh
# En la carpeta del proyecto: fijar las versiones de varias herramientas
mise use node@24 python@3.14
# Crea un archivo mise.toml:
# [tools]
# node = "24"
# python = "3.14"
# Instalar todo lo que declara el proyecto
mise install
# Quien clone el repo ejecuta "mise install" y tiene tus mismas versiones ✅Si prefieres herramientas separadas, nvm para Node y uv o pyenv para Python siguen siendo opciones válidas y muy extendidas.
# Instalación de nvm: usa la versión más reciente de su instalador.
# Consulta la última etiqueta en github.com/nvm-sh/nvm/releases y sustituye
# <VERSION> (por ejemplo, v0.40.x) en esta URL:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/<VERSION>/install.sh | bash
# Python con uv (actualiza uv antes para que conozca las últimas versiones)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv self update
uv python install 3.14Sea cual sea la herramienta, no olvides lo básico: un Python bien instalado y un entorno virtual (python -m venv .venv) por proyecto.
Principio 2: una base sólida (resumen rápido)
La base del sistema no ha cambiado mucho, así que aquí va el resumen. El detalle completo está en la guía de 2026.
# Windows: Linux real dentro de Windows
wsl --install
wsl -l -v # comprobar que corre en WSL 2
# → guarda los proyectos en ~/projects, NO en /mnt/c/
# macOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Linux / WSL: herramientas base
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl wget git unzip zshPara el editor, VS Code sigue siendo la opción más usada, pero hay alternativas. Compáralas en nuestra sección de IDEs y editores.
Principio 3: Git con commits firmados y SSH
Autenticarte con SSH ya es lo habitual. El siguiente paso es firmar tus commits, para que GitHub pueda verificar que realmente los has hecho tú. Desde las versiones modernas de Git puedes firmar con la misma clave SSH que ya usas.
# 1. Identidad y rama por defecto
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
git config --global init.defaultBranch main
# 2. Clave SSH Ed25519 (si aún no tienes)
ssh-keygen -t ed25519 -C "tu@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 3. Usar esa misma clave para FIRMAR commits
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
# 4. En GitHub: Settings → SSH and GPG keys → New SSH key
# Añade tu clave pública DOS veces: como "Authentication Key"
# y como "Signing Key".
# 5. Prueba: haz un commit y comprueba la firma
git log --show-signature -1Tus commits aparecerán con la etiqueta "Verified" en GitHub. Si necesitas repasar el flujo de ramas y pull requests, tienes una explicación completa en nuestra sección de Git y GitHub.
Principio 4: Docker y Dev Containers con versiones fijadas
Los Dev Containers describen el entorno completo dentro del repositorio. Quien clone el proyecto lo abre en VS Code, pulsa "Reopen in Container" y trabaja con tus mismas versiones. Si Docker es nuevo para ti, empieza por qué es Docker y para qué sirve.
// .devcontainer/devcontainer.json
{
"name": "mi-proyecto",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "24" },
"ghcr.io/devcontainers/features/python:1": { "version": "3.14" }
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"charliermarsh.ruff",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint"
]
}
},
"postCreateCommand": "npm ci && pip install -r requirements.txt"
}# Servicios de desarrollo con versión fijada (nunca ":latest")
# docker-compose.yml
services:
postgres:
image: postgres:16-alpine # versión concreta y reproducible
environment:
POSTGRES_USER: dev
POSTGRES_PASSWORD: dev
POSTGRES_DB: miapp
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:Principio 5: Secretos fuera del repositorio, siempre
Una clave de API subida a un repositorio —aunque lo borres después— debe considerarse comprometida. La mejor defensa es automatizar la comprobación antes de cada commit.
# 1. .env siempre ignorado, y un .env.example sin valores reales
printf ".env\n" >> .gitignore
cp .env .env.example # y borra los valores reales del .env.example
# 2. Detectar secretos antes de commitear con pre-commit + gitleaks
pip install pre-commit
# Crea .pre-commit-config.yaml en la raíz del proyecto:
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.x.x # sustituye por la última versión publicada
hooks:
- id: gitleaks
# Activar el hook
pre-commit install
# A partir de ahora, un commit con un secreto es bloqueado antes de entrarY si alguna vez subes una clave por error: revócala y genera una nueva de inmediato. Borrar el commit no basta, porque el valor ya pudo ser copiado.
Principio 6: Asistentes de IA con límites claros
Los asistentes de IA ya forman parte del día a día, y los de tipo agente pueden leer tu proyecto, editar archivos y ejecutar comandos. Esa capacidad es útil, pero conviene ponerle límites desde el diseño del entorno.
BUENAS PRÁCTICAS CON ASISTENTES DE IA
Aislamiento
✅ Ejecuta agentes dentro de un Dev Container o una máquina de pruebas
✅ Dale acceso solo a la carpeta del proyecto, no a todo tu disco
❌ No les des credenciales de producción
Control de cambios
✅ Haz que trabajen en una rama propia (feature/...), nunca en main
✅ Revisa el diff completo antes de aceptar cambios
✅ Ejecuta los tests tú mismo (o en CI) antes de hacer merge
Datos
❌ No pegues claves, contraseñas ni datos de clientes en un prompt
✅ Usa variables de entorno y deja el .env fuera del contexto
Criterio
✅ Entiende el código antes de aceptarlo: si no puedes explicarlo, no lo mergees
✅ Sigue aprendiendo los fundamentos — la IA acelera a quien sabeSi quieres empezar sin coste, revisa nuestra selección de las mejores herramientas de IA gratis.
Principio 7: Un calendario de mantenimiento
Un entorno que envejece bien incluye un hábito: revisar las versiones dos veces al año. No hace falta más.
REVISIÓN SEMESTRAL (abril y octubre)
☐ ¿Alguna versión que uso entra en "Maintenance" o llega a fin de vida?
→ endoflife.date · calendario oficial de Node y Python
☐ Actualizar versiones fijadas en .nvmrc / .python-version / mise.toml
☐ Actualizar imágenes de Docker y versión del Dev Container
☐ Actualizar las herramientas globales (nvm, uv, mise, Docker)
☐ Revisar claves SSH y tokens: ¿hay alguno que ya no uses? → revócalo
☐ Ejecutar los tests del proyecto con las versiones nuevasLista de verificación — tu entorno de 2027
VERSIONES
☐ Ningún proyecto usa una versión sin soporte (Node 20, Python 3.10...)
☐ Plan de migración si usas Node 22 (fin de soporte: abril de 2027)
☐ Versiones fijadas en cada repo (.nvmrc, .python-version o mise.toml)
☐ "engines" en package.json y entorno virtual por proyecto
GIT Y SEGURIDAD
☐ Clave SSH Ed25519 para autenticación
☐ Commits firmados con SSH (etiqueta "Verified")
☐ .env ignorado + pre-commit con detección de secretos
CONTENEDORES
☐ Docker con imágenes de versión fija (sin :latest)
☐ .devcontainer/ en proyectos de equipo
IA
☐ Agentes aislados, en ramas propias y con diff revisado
☐ Cero secretos en prompts
MANTENIMIENTO
☐ Revisión de versiones programada dos veces al añoErrores comunes
❌ Fiarte de "lts/*" en producción
# ❌ Cambia de significado cuando sale una nueva LTS
nvm use lts/*
# ✅ Fija la versión mayor y actualízala de forma deliberada
nvm use 24❌ Usar la última versión de un lenguaje sin comprobar las dependencias
# Una versión recién publicada puede no tener todavía ruedas (wheels)
# para algunas librerías. Comprueba tus dependencias antes de saltar.❌ Usar la etiqueta ":latest" en Docker
# ❌ Hoy funciona, mañana puede traer una versión mayor distinta
image: postgres:latest
# ✅ Versión concreta
image: postgres:16-alpine❌ Dar a un agente de IA acceso a todo
# ❌ Ejecutarlo en tu carpeta personal con tus credenciales cargadas
# ✅ Contenedor aislado, rama propia, sin secretos de producción❌ Dejar tokens y claves antiguos activos
# Revisa cada cierto tiempo:
# GitHub → Settings → SSH and GPG keys
# GitHub → Settings → Developer settings → Personal access tokens
# Revoca todo lo que ya no uses.Resumen: lo que aprendiste hoy
- ✅ Un buen entorno no es el más completo, sino el que envejece bien: versiones fijadas, proyectos reproducibles y mantenimiento periódico
- ✅ Node.js pasa a una versión mayor al año desde la 27, y todas serán LTS; Node 22 llega al fin de soporte el 30 de abril de 2027
- ✅ Python 3.15 se publicó en octubre de 2026 y Python 3.10 ya no recibe soporte
- ✅ Fija las versiones dentro del repo con
.nvmrc,.python-versionomise.toml - ✅ Evita los alias flotantes (
lts/*,:latest) en producción y en CI - ✅ Firma tus commits con la misma clave SSH que usas para autenticarte
- ✅ Los Dev Containers hacen reproducible el entorno completo para todo el equipo
- ✅ Automatiza la detección de secretos con pre-commit y gitleaks, y revoca cualquier clave expuesta
- ✅ Con los asistentes de IA: aislamiento, ramas propias, revisión del diff y cero secretos
- ✅ Revisa tus versiones dos veces al año y consulta endoflife.date
🧪 ¿Tienes los fundamentos que necesita tu entorno?
Un entorno bien montado multiplica tu productividad, pero lo que de verdad marca la diferencia sigue siendo lo que sabes. Comprueba cómo vas con Git y con los fundamentos de programación:
👉 Test: Git y GitHub Básico 👉 Test: Fundamentos de Programación
¿Qué versión de Node y de Python usas hoy en tus proyectos? ¿Tienes ya un plan para actualizar lo que se acerca al fin de soporte? Cuéntanos en los comentarios 👇 — respondemos todos. 🚀
No hay comentarios todavía. Sé el primero en compartir tu opinión.