Perry vs React Native
React Native erlaubt dir, JavaScript/TypeScript zu schreiben, das native UI auf iOS und Android ansteuert — UI-Komponenten werden über eine JS-zu-Native-Bridge (oder, in der New Architecture, eine JSI-/Fabric-Schicht mit derselben konzeptionellen Form) auf Plattform-Widgets abgebildet. Perry geht einen anderen Weg: TypeScript wird ahead-of-time zu nativem Maschinencode kompiliert, und native UI ist Teil des kompilierten Binarys, nicht eine Laufzeit-Bridge.
Was ist React Native?
React Native ist Metas Framework zum Bauen mobiler Apps mit React. JavaScript läuft in einer eingebetteten Engine — standardmäßig Hermes oder JavaScriptCore — und interagiert mit nativen iOS-/Android-Widgets über eine Bridge (Legacy) oder JSI/Fabric (New Architecture). Das Framework ist Mobile-First (iOS und Android); Microsoft pflegt Community-Forks für Windows und macOS. React Native treibt Apps bei Meta, Microsoft, Shopify, Discord und vielen anderen an.
Was ist Perry?
Perry kompiliert TypeScript direkt zu nativem Maschinencode. Sein perry/ui-Modul ist ein deklaratives UI-System im SwiftUI-Stil, das zur Build-Zeit zu nativen Plattform-Widgets kompiliert — es gibt keine JS-Runtime im Binary, keine Bridge und kein JSI. Dieselbe TypeScript-Codebasis kompiliert für macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly und das Web.
Direktvergleich
| Feature | Perry | React Native |
|---|---|---|
| Ausführungsmodell | AOT-kompilierter nativer Maschinencode | JS-Engine (Hermes/JSC) + Native-Bridge (oder JSI/Fabric) |
| JS-Engine in der App | Keine | Hermes (Standard) oder JavaScriptCore |
| UI | Native Widgets — deklarative API im SwiftUI-Stil | Native Widgets über React + Bridge / Fabric |
| Primäre Targets | macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web | iOS, Android (Windows/macOS über Community-Forks) |
| Server- / CLI- / Desktop-Binaries | Ja (CLI-Tools, Server, Desktop-Apps) | Nein (Mobile-UI-Framework) |
| Bridge zwischen JS und Native | Keine Bridge — nativer Code ist das Programm | Ja (Legacy-Bridge oder JSI/Fabric) |
| Hot Reload während der Entwicklung | perry dev (Watch-Mode-Auto-Recompile) | Fast Refresh (sehr schnell) |
| Reife | Pre-1.0 | Stabil, im produktiven Einsatz weit verbreitet |
| Komponentenbibliothek | perry/ui-Kern-Widgets + perry-react React-Kompat-Schicht | Riesig — React Native + Community-Pakete |
Wo Perry gewinnt
- +Keine JS-Engine in der ausgelieferten App. Perry-kompilierte Binaries tragen weder Hermes noch JSC mit sich; das TypeScript ist das Executable.
- +Keine Bridge-/JSI-Kosten. Native UI-Aufrufe sind direkte kompilierte Funktionsaufrufe, kein JS-zu-Native-Marshaling.
- +Breitere Plattformreichweite. Eine Perry-Codebasis kompiliert für Desktop (macOS/Linux/Windows), Mobile (iOS/iPadOS/Android), Wearables (watchOS/Wear OS), TV (tvOS), WASM und Web. React Native ist Mobile-First.
- +Server-seitige und CLI-Binaries vom selben Compiler — Perry ist auch eine Server-Runtime, nicht nur ein UI-Framework.
- +AOT-kompilierte Compute-Performance — keine Aufwärmphase, kein JIT, keine Bridge-Round-Trips.
- +perry-react gibt dir React/JSX, das zu nativen Widgets kompiliert, sodass das React-Mental-Model verfügbar ist, ohne dass eine JS-Engine im Binary steckt.
Wo React Native gewinnt
- +Reifes, kampferprobtes Ökosystem mit enormer Community-Unterstützung, Bibliotheken und Tooling.
- +Fast Refresh während der Entwicklung ist Best-in-Class — Code-Änderungen erscheinen in Millisekunden ohne Neubau.
- +Riesiger Talentpool. React-Native-Entwickler einzustellen ist einfach; Perry ist neu.
- +Etablierte CI/CD-, App-Store-/Play-Store-Veröffentlichungs-Pipelines und CodePush-artige OTA-Updates.
- +JSI/Fabric und die New Architecture haben einen Großteil der historischen Performance-Lücke zu Native geschlossen, während sie das React-Programmiermodell beibehalten.
- +Direkte Unterstützung von Meta und großen Anwendern (Microsoft, Shopify, Amazon) hält das Framework in Bewegung.
Wann Perry wählen
Wähle Perry, wenn du eine TypeScript-Codebasis über Mobile, Desktop, Watch, TV, WASM und das Web willst; wenn du keine JS-Runtime in deiner ausgelieferten App willst; wenn du native UI ohne Bridge willst; oder wenn du bereits in TypeScript investiert bist und native Kompilierung statt einer JS-Engine willst.
Wann React Native wählen
Wähle React Native, wenn du Mobile-Apps baust und das ausgereifteste plattformübergreifende Native-UI-Framework willst, wenn du ein bestehendes React-Team hast, wenn du auf das React-Native-Bibliotheks-Ökosystem angewiesen bist oder wenn du den heutigen Industriestandard für plattformübergreifende Mobile-Stacks brauchst.
Fazit
React Native ist ein Mobile-First-Framework mit einer JS-Runtime und einer (mittlerweile verbesserten) Bridge. Perry ist ein Compiler, der aus TypeScript native Binaries erzeugt, mit nativer UI als Teil des Compile-Outputs. Wenn du React auf Mobile mit dem tiefsten Ökosystem willst, ist React Native heute die Antwort. Wenn du eine TypeScript-Codebasis willst, die für Mobile + Desktop + Watch + TV ohne JS-Runtime in der App kompiliert, ist Perry die Antwort.