El Problema que Ningún Founder Debería Ignorar
Si tu startup desarrolla software nativo para Windows, probablemente has enfrentado este escenario: contratas un desarrollador talentoso, le compartes el repositorio y le dices ‘instala Visual Studio para compilar’. Lo que sigue es predecible: tres horas de instalación, 20GB de descarga, un laberinto de checkboxes en el instalador, y al final… builds que fallan porque eligió el SDK equivocado.
Jonathan Marler, desarrollador con años lidiando con este problema, decidió que era suficiente. Su reflexión es contundente: listar ‘Visual Studio’ como dependencia te convierte en soporte técnico no remunerado de Microsoft. Los issues de GitHub dejan de ser sobre tu código y se vuelven tutoriales de cómo navegar el instalador de Visual Studio.
El costo real para una startup es devastador: onboarding lento, builds no reproducibles entre máquinas, y desarrolladores frustrados antes de escribir la primera línea de código. En un ecosistema donde la velocidad de iteración es crítica, perder medio día configurando el entorno es inaceptable.
Por Qué Windows Es el Eslabón Débil
En Linux, instalar un toolchain es ejecutar un comando en el package manager. En macOS, Xcode Command Line Tools se instala en minutos. En Windows, ‘Visual Studio’ son miles de componentes distribuidos mediante un instalador GUI sofisticado donde debes adivinar qué ‘Workloads’ contienen el compilador real.
Las consecuencias son tangibles:
- Esperas interminables: Descargar 15GB para obtener un compilador de 50MB.
- Cero transparencia: No sabes qué archivos se instalaron ni dónde. El registro se llena de basura y servicios de actualización automática viven permanentemente en tu Task Manager.
- Sin control de versiones: No puedes versionar tu compilador en Git. Si un compañero tiene una versión ligeramente diferente de Build Tools, tus builds divergen silenciosamente.
- El entorno fantasma: Desinstalar nunca es limpio. Migrar a una máquina nueva significa repetir toda la danza GUI, rezando por marcar las mismas casillas.
Incluso después de la instalación, compilar un archivo C desde la línea de comandos requiere encontrar el ‘Developer Command Prompt’, que invoca vcvarsall.bat, un frágil script batch que muta globalmente tus variables de entorno solo para localizar dónde se esconde el compilador esta semana.
El resultado: instrucciones de build que parecen un disclaimer legal: ‘Funciona en mi máquina con VS 17.4.2 (Build 33027.167) y SDK 10.0.22621.0. Si tienes 17.5, consulta el Issue #412. Si estás en ARM64, buena suerte.’
La Solución: msvcup
Jonathan Marler pasó semanas construyendo una herramienta open source que cambia las reglas del juego: msvcup. Es un pequeño programa CLI que, con buen hardware y red, instala el toolchain y SDK de MSVC en minutos, incluyendo todo para cross-compilar hacia/desde ARM.
La filosofía es simple: hacer que el toolchain de MSVC se comporte como una dependencia moderna—versionada, aislada y declarativa.
Cómo Funciona
msvcup está inspirado en un script Python de Mārtiņš Možeiko. La clave: Microsoft publica manifiestos JSON describiendo cada componente de Visual Studio—los mismos que usa el instalador oficial. msvcup parsea estos manifiestos, identifica solo los paquetes necesarios para compilación (compilador, linker, headers, bibliotecas) y los descarga directamente del CDN de Microsoft.
Todo aterriza en directorios versionados bajo C:\msvcup\. Cada versión del toolchain/SDK obtiene su propio directorio aislado. Es idempotente y lo suficientemente rápido para invocarse en cada build.
Ejemplo Práctico: Hello World
Crear un hello.c y build.bat que reemplace completamente la necesidad de ‘Instalar Visual Studio’:
// hello.c
#include <stdio.h>
int main() { printf("Hello, World\n"); }
@setlocal
@if not exist msvcup.exe (
echo msvcup.exe: installing...
curl -L -o msvcup.zip https://github.com/marler8997/msvcup/releases/download/v2026_02_07/msvcup-x86_64-windows.zip
tar xf msvcup.zip
del msvcup.zip
)
set MSVC=msvc-14.44.17.14
set SDK=sdk-10.0.22621.7
msvcup install --lock-file msvcup.lock --manifest-update-off %MSVC% %SDK%
msvcup autoenv --target-cpu x64 --out-dir autoenv %MSVC% %SDK%
.\autoenv\cl hello.c
Este script corre en cualquier sistema Windows desde Windows 10 (asumiendo curl/tar, incluidos desde 2018). Instala el toolchain MSVC, el Windows SDK y compila el programa. Después de la primera ejecución, los comandos msvcup toman milisegundos, permitiendo scripts de build totalmente autocontenidos.
Caso Real: Tuple App
En Tuple, una aplicación de pair-programming, Marler integró msvcup en su sistema de build y CI, eliminando el requisito de preinstalar Visual Studio. Tuple compila cientos de proyectos C/C++ incluyendo WebRTC, habilitando builds tanto x86_64 como ARM en CI y manteniendo a todo el equipo en el mismo toolchain/SDK.
Beneficios Concretos
- Instalación en directorios versionados: Sin problemas instalando versiones lado a lado. Fácil remover o reinstalar si algo falla.
- Cross-compilación habilitada out-of-the-box: msvcup siempre descarga herramientas para todos los targets de cross-compilación soportados.
- Soporte de lock files: Lista autocontenida de todos los payloads/URLs. Todos usan los mismos paquetes, y si Microsoft cambia algo upstream, lo sabrás.
- Velocidad extrema: Los comandos install y autoenv son idempotentes y completan en milisegundos cuando no hay trabajo pendiente.
No más ‘funciona en mi máquina porque tengo Build Tools 2019 instalado’. No más bucear en el registro buscando dónde se esconde cl.exe esta semana. Con msvcup, tu entorno está definido por tu código, es portable entre máquinas y está listo para compilar en milisegundos.
Ejemplo del Mundo Real: Compilando Raylib
Para demostrar el potencial, aquí un script que compila raylib desde cero en un sistema Windows limpio:
@setlocal
set TARGET_CPU=x64
@if not exist msvcup.exe (
curl -L -o msvcup.zip https://github.com/marler8997/msvcup/releases/download/v2026_02_07/msvcup-x86_64-windows.zip
tar xf msvcup.zip
del msvcup.zip
)
set MSVC=msvc-14.44.17.14
set SDK=sdk-10.0.22621.7
msvcup.exe install --lock-file msvcup.lock --manifest-update-off %MSVC% %SDK%
@if not exist raylib (
git clone https://github.com/raysan5/raylib -b 5.5
)
call C:\msvcup\%MSVC%\vcvars-%TARGET_CPU%.bat
call C:\msvcup\%SDK%\vcvars-%TARGET_CPU%.bat
cmd /c "cd raylib\projects\scripts && build-windows"
@echo build success: game exe at:
@echo .\raylib\projects\scripts\builds\windows-msvc\game.exe
Sin instalación de Visual Studio. Sin GUI. Sin rezos. Solo un script que hace exactamente lo que dice.
Limitaciones y Consideraciones
msvcup se enfoca en el toolchain de compilación core. Si necesitas el IDE completo de Visual Studio, sistemas de proyectos basados en MSBuild, o componentes como el compilador C++/CLI, aún necesitarás el instalador oficial. Para la mayoría de workflows de desarrollo nativo, sin embargo, cubre lo que realmente necesitas.
Por Qué Esto Importa Para Tu Startup
Si tu startup desarrolla software nativo—desde aplicaciones de escritorio hasta componentes de alto rendimiento—, la fricción en el setup del entorno de desarrollo tiene un costo directo:
- Velocidad de contratación: Un nuevo dev productivo en horas, no días.
- CI/CD confiable: Builds reproducibles eliminan el ‘funciona en mi máquina’.
- Cross-platform desde el día uno: Compilar para ARM64 sin configuración adicional abre mercados (Surface Pro X, futuras Copilot+ PCs).
- Menos dependencias de infraestructura: CI runners más ligeros, costos reducidos en GitHub Actions/Azure DevOps.
Herramientas como msvcup no son solo ‘nice to have’: son multiplicadores de productividad que permiten a equipos pequeños competir con gigantes.
Conclusión
El desarrollo nativo en Windows ha sido, históricamente, un dolor autoinfligido. Jonathan Marler decidió que no tenía por qué ser así y construyó msvcup: una herramienta open source que trata el toolchain de MSVC como lo que debería ser—una dependencia moderna, versionada y automatizable.
Para founders de startups tech que valoran la velocidad, la reproducibilidad y la autonomía de sus equipos, adoptar herramientas como msvcup no es opcional: es estratégico. Cada hora que tu equipo pasa debuggeando configuraciones de Visual Studio es una hora que no está construyendo producto, validando hipótesis o cerrando clientes.
La pregunta no es si puedes permitirte adoptar estas herramientas. Es si puedes permitirte no hacerlo.
¿Automatizas tu stack de desarrollo? Únete gratis a Ecosistema Startup y descubre cómo otros founders implementan herramientas como msvcup para acelerar sus equipos.
Fuentes
- https://marler8997.github.io/blog/fixed-windows/ (fuente original)
- https://github.com/marler8997/msvcup (repositorio oficial)
- https://gist.github.com/mmozeiko/7f3162ec2988e81e56d5c4e22cde9977 (script inspirador)













