Volver a las comparativas
UI multiplataforma

Perry frente a Electron

Electron permite construir apps de escritorio multiplataforma usando tecnologías web (HTML/CSS/JS) empaquetando Chromium y Node.js con tu app. Perry compila TypeScript directamente a código máquina nativo y renderiza la UI a través de widgets reales de cada plataforma — AppKit, UIKit, GTK4, Win32, JNI. La propuesta de Electron es reutilizar tecnologías web; la de Perry es binarios nativos pequeños con UI nativa desde TypeScript.

¿Qué es Electron?

Electron es un framework de código abierto para construir aplicaciones de escritorio multiplataforma usando Chromium para renderizar y Node.js para acceso al sistema. Cada app de Electron se distribuye con su propia copia de Chromium y Node, motivo por el que los instaladores de apps Electron suelen pesar 80–150 MB incluso para un hello world. Electron ha potenciado apps ampliamente usadas como VS Code, Slack, Discord y el cliente de escritorio de Figma. Apunta a Linux, macOS y Windows en escritorio; no hay una historia oficial para móvil, watch o TV.

¿Qué es Perry?

Perry compila TypeScript directamente a código máquina nativo sin motor de navegador, sin Chromium y sin runtime de Node. La capa de UI (perry/ui) es un sistema declarativo al estilo SwiftUI que mapea a widgets nativos vía AppKit en macOS, UIKit en iOS/iPadOS/tvOS, GTK4 en Linux, Win32 en Windows y JNI en Android. Los binarios hello world son de ~330 KB; las apps completas con stdlib (Fastify, mysql2, etc.) rondan los 48 MB.

Lado a lado

CaracterísticaPerryElectron
RenderizadoWidgets nativos de la plataforma (AppKit, UIKit, GTK4, Win32, JNI)Chromium empaquetado (HTML/CSS/JS)
Motores empaquetadosNinguno (V8 opcional solo con --enable-js-runtime)Chromium + Node.js
Tamaño del instalador hello world~330 KB~80–150 MB
Instalador de app completa (stdlib + frameworks)~48 MB100–200+ MB típico
Uso de RAMNativo (típico: decenas de MB)Múltiples procesos de Chromium (típico: cientos de MB)
Móvil / watch / TVSí — iOS, iPadOS, Android, watchOS, tvOS, Wear OSNo (solo escritorio)
Lenguaje de UITypeScript con API declarativa al estilo SwiftUIHTML/CSS/JS (stack web)
Auto-actualización / empaquetadoperry publish (Homebrew, APT, App Store, Play Store)electron-builder, electron-updater (ecosistema maduro)
MadurezPre-1.0Estable, más de una década en producción

Dónde gana Perry

  • +Tamaño de binario. Un hello world de Perry es ~330 KB; uno de Electron suele pesar 80–150 MB porque cada app distribuye su propio Chromium.
  • +Huella de memoria. Las apps Perry corren como un único proceso nativo; las apps Electron corren múltiples procesos de Chromium (renderer, GPU, utility, etc.) y consumen cientos de MB de RAM en reposo.
  • +Look and feel nativo. Perry renderiza a través de widgets reales de la plataforma, así que las apps heredan automáticamente las convenciones del sistema operativo (focus rings, accesibilidad, IME, física del scroll).
  • +Móvil, watch, TV. Un solo código Perry compila a iOS/iPadOS/Android/watchOS/tvOS/Wear OS. Electron es solo escritorio.
  • +Arranque en frío. Los binarios nativos no pagan el coste de arranque de Chromium ni de Node.
  • +Rendimiento real de CPU en código ajustado. Perry lidera en microbenchmarks de cómputo frente a Node (que es lo que Electron usa) por múltiplos en la mayoría de los kernels (consulta perry/benchmarks).

Dónde gana Electron

  • +Madurez. Electron lleva más de una década en producción y potencia VS Code, Slack, Discord y muchas otras apps con tooling probado en batalla.
  • +Reutilización del stack web. Si tu equipo ya construye UIs web, Electron te permite distribuirlas como app de escritorio sin reescritura.
  • +La consistencia de UI entre plataformas es fácil — Chromium renderiza igual en cada SO, que es exactamente lo que algunos productos quieren.
  • +Vasto ecosistema de librerías npm que funciona en runtime; Perry ejecuta un subconjunto a nativo y el V8 opcional cubre el resto.
  • +Tooling de empaquetado maduro (electron-builder, electron-updater, ayudantes de firma de código) con amplio soporte de la comunidad.
  • +Funcionalidades nativas de la web como devtools, hot reload y la velocidad de iteración fluida en CSS/HTML son inigualables.

Cuándo elegir Perry

Elige Perry si quieres binarios nativos pequeños, bajo uso de memoria, look and feel nativo en cada plataforma, o un único código TypeScript que llegue a móvil/watch/TV además de a escritorio.

Cuándo elegir Electron

Elige Electron si tienes una UI web existente y quieres distribuirla como app de escritorio con mínima reescritura, si necesitas la máxima consistencia de UI multiplataforma en escritorio, o si dependes de un amplio rango de librerías JS puras en runtime.

Veredicto

Electron y Perry se sitúan en extremos opuestos del espectro multiplataforma. Electron cambia tamaño de binario y memoria por reutilización de tecnologías web; Perry cambia el stack web por binarios nativos y UI nativa. Si has visto cómo el instalador de tu app Electron supera los 150 MB o su RAM en reposo el medio gigabyte, Perry es la respuesta a ese problema concreto — al coste de un modelo de UI distinto, de estilo nativo.

Prueba Perry

Compila tu TypeScript a nativo hoy mismo.

Comenzar