Volver a las comparativas
Compilador de TS a nativo

Perry frente a Static Hermes

Static Hermes (`shermes`) es el esfuerzo en fase de investigación de Meta para compilar de forma anticipada un subconjunto fuertemente tipado de JavaScript/TypeScript a través del motor Hermes, principalmente orientado a React Native. Perry es una apuesta distinta sobre la misma idea general — TypeScript compilado a nativo — pero construida de forma independiente en Rust sobre LLVM, con un compilador funcional, más de 25 widgets de UI nativa y 10 plataformas de compilación distribuyéndose hoy. A abril de 2026, la propia suite de benchmarks de Perry indica que Static Hermes se probó como par y no pudo instalarse de forma limpia con los gestores de paquetes estándar que probó.

¿Qué es Static Hermes?

Hermes es el motor JavaScript que Meta construyó para React Native — basado en bytecode, precompilado AOT, optimizado para tiempo de arranque en móvil. Static Hermes es el esfuerzo de investigación para extender Hermes con compilación nativa anticipada de un subconjunto tipado de JavaScript, con la intención de dar a React Native un camino hacia código verdaderamente nativo. Es principalmente un proyecto de I+D de compiladores; según las notas de los benchmarks de Perry, aún no está empaquetado para una instalación rutinaria en macOS arm64 (`shermes` se omitió del benchmark políglota con la nota de que «no está disponible en Homebrew o npm de una forma que se instale limpiamente en macOS arm64» — ver perry/benchmarks/README.md).

¿Qué es Perry?

Perry es un compilador nativo de TypeScript escrito en Rust, que usa SWC para el parseo y LLVM para la generación de código. Distribuye un CLI funcional (`perry compile`, `perry run`, `perry publish`), más de 25 widgets de UI nativa, 10 plataformas de compilación, un runtime auto-hospedado y una suite de benchmarks medida en condiciones transparentes (M1 Max, RUNS=11). Perry está en pre-1.0 pero en vía de producción: hay gente publicando apps construidas con él (Bloom Engine, Mango, Hone, Pry, dB Meter — ver perryts.com).

Lado a lado

CaracterísticaPerryStatic Hermes
EstadoPre-1.0 (alpha) — en vía de producciónInvestigación / experimental
Vía de instalación (macOS arm64)Homebrew, APT, npm (@perryts/perry)Sin paquete para instalación limpia al momento de escribir esto (según perry/benchmarks)
BackendLLVMPersonalizado (codegen basado en Hermes)
EntradaTypeScript (completo)Subconjunto tipado de JS/TS
Plataformas de compilación10: macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web/JSPrincipalmente móvil (contexto de React Native)
UI nativa25+ widgets vía AppKit, UIKit, GTK4, Win32, JNIVía el puente de React Native (cuando se integra)
Flujo de app CLI autónomaSí — `perry compile main.ts` produce un binarioAtado al contexto de React Native
Suite de benchmarks públicaSí — RUNS=11 frente a Node, Bun, Rust, C++, Go, Swift, JavaInterna / papers de investigación

Dónde gana Perry

  • +Existe como herramienta usable. Perry puede instalarse hoy vía Homebrew, APT o `npm install @perryts/perry`, y `perry compile main.ts` produce un binario al primer intento.
  • +Alcance más amplio. Perry compila apps CLI autónomas, apps de escritorio nativas, apps móviles, apps de watch, apps de TV, WASM y la web desde un único código TypeScript. Static Hermes se centra en la ruta a código nativo de React Native.
  • +UI nativa integrada. El módulo perry/ui de Perry es una capa de UI declarativa al estilo SwiftUI que compila a widgets de AppKit/UIKit/GTK4/Win32/JNI. Static Hermes deja la UI a su anfitrión (React Native).
  • +Suite de benchmarks pública y reproducible con metodología documentada — perry/benchmarks muestra mediana + p95 + σ a lo largo de RUNS=11 frente a compiladores y runtimes con nombre.
  • +El backend LLVM significa que Perry hereda décadas de pasos de optimización maduros (autovectorización, IndVarSimplify, scalar replacement) y soporta cada plataforma a la que LLVM apunta.

Dónde gana Static Hermes

  • +Respaldado por Meta — recursos de ingeniería significativos y un anclaje estratégico claro en React Native.
  • +Hermes ya está distribuyéndose en apps de React Native en producción como motor de bytecode; Static Hermes hereda ese ecosistema y tooling.
  • +Trabajo de calidad investigadora sobre reglas de tipado AOT y semántica de subconjuntos de JS que es genuinamente novedoso.
  • +Si ya estás en React Native, Static Hermes (cuando esté disponible) es un camino más incremental que reescribir contra un compilador distinto.

Cuándo elegir Perry

Elige Perry si necesitas un compilador TS a nativo que funcione hoy, si quieres un único código TypeScript para apuntar a escritorio, móvil, watch, TV, WASM y la web, o si quieres widgets de UI nativa sin el puente de React Native.

Cuándo elegir Static Hermes

Elige Static Hermes (cuando esté disponible) si estás comprometido con React Native y quieres un camino de JavaScript/TypeScript a código nativo compilado AOT en móvil, y te resulta cómodo trabajar en el filo del tooling de investigación.

Veredicto

Static Hermes es investigación interesante de un equipo creíble. Perry es un producto funcional sobre la misma idea general, con un alcance mucho más amplio que el móvil y distribuyéndose hoy. Si necesitas un compilador TS a nativo en tus manos ahora, Perry es la elección. Si estás en React Native y dispuesto a seguir un proyecto de investigación, vigila Static Hermes.

Prueba Perry

Compila tu TypeScript a nativo hoy mismo.

Comenzar