Perry vs React Native
React Native vous permet d'écrire du JavaScript/TypeScript qui pilote l'UI native sur iOS et Android — les composants UI se mappent vers les widgets de plateforme via un pont JS-vers-natif (ou, dans la New Architecture, une couche JSI / Fabric ayant la même forme conceptuelle). Perry adopte une approche différente : TypeScript est compilé ahead-of-time en code machine natif, et l'UI native fait partie du binaire compilé, pas d'un pont à l'exécution.
Qu'est-ce que React Native ?
React Native est le framework de Meta pour construire des applications mobiles avec React. JavaScript s'exécute dans un moteur embarqué — Hermes par défaut, ou JavaScriptCore — et interagit avec les widgets natifs iOS/Android via un pont (legacy) ou JSI/Fabric (New Architecture). Le framework est mobile-first (iOS et Android) ; Microsoft maintient des forks communautaires pour Windows et macOS. React Native a propulsé des applications chez Meta, Microsoft, Shopify, Discord et bien d'autres.
Qu'est-ce que Perry ?
Perry compile TypeScript directement en code machine natif. Son module perry/ui est un système d'UI déclaratif de style SwiftUI qui compile vers des widgets natifs de plateforme à la compilation — il n'y a pas de runtime JS dans le binaire, pas de pont et pas de JSI. Le même codebase TypeScript compile vers macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly et le Web.
Côte à côte
| Fonctionnalité | Perry | React Native |
|---|---|---|
| Modèle d'exécution | Code machine natif compilé AOT | Moteur JS (Hermes/JSC) + pont natif (ou JSI/Fabric) |
| Moteur JS dans l'application | Aucun | Hermes (par défaut) ou JavaScriptCore |
| UI | Widgets natifs — API déclarative de style SwiftUI | Widgets natifs via React + pont / Fabric |
| Cibles principales | macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web | iOS, Android (Windows/macOS via forks communautaires) |
| Binaires serveur / CLI / desktop | Oui (outils CLI, serveurs, applications desktop) | Non (framework UI mobile) |
| Pont entre JS et natif | Aucun pont — le code natif est le programme | Oui (pont legacy ou JSI/Fabric) |
| Hot reload pendant le développement | perry dev (recompilation automatique en mode watch) | Fast Refresh (très rapide) |
| Maturité | Pré-1.0 | Stable, largement déployé en production |
| Bibliothèque de composants | Widgets de base perry/ui + couche perry-react de compat React | Vaste — React Native + paquets communautaires |
Là où Perry l'emporte
- +Aucun moteur JS dans l'application livrée. Les binaires compilés par Perry n'embarquent ni Hermes ni JSC ; le TypeScript est l'exécutable.
- +Aucun coût de pont / JSI. Les appels d'UI native sont des appels de fonction compilés directs, pas du marshaling JS-vers-natif.
- +Portée de plateformes plus large. Un seul codebase Perry compile vers desktop (macOS/Linux/Windows), mobile (iOS/iPadOS/Android), wearables (watchOS/Wear OS), TV (tvOS), WASM et Web. React Native est mobile-first.
- +Binaires côté serveur et CLI depuis le même compilateur — Perry est aussi un runtime serveur, pas seulement un framework UI.
- +Performances de calcul compilées AOT — pas de chauffe, pas de JIT, pas d'aller-retours via un pont.
- +perry-react vous donne du React/JSX qui compile vers des widgets natifs, donc le modèle mental React est disponible sans moteur JS dans le binaire.
Là où React Native l'emporte
- +Écosystème mature et éprouvé avec un énorme support communautaire, des bibliothèques et de l'outillage.
- +Fast Refresh pendant le développement est de premier ordre — les changements de code apparaissent en millisecondes sans rebuild.
- +Vivier de talents énorme. Embaucher des développeurs React Native est facile ; Perry est nouveau.
- +Pipelines CI/CD établis, publication App Store / Play Store et mises à jour OTA de style codepush.
- +JSI/Fabric et la New Architecture ont comblé une grande partie de l'écart historique de performances avec le natif, tout en préservant le modèle de programmation React.
- +Soutien direct de Meta et de grands adoptants (Microsoft, Shopify, Amazon) qui maintiennent le framework en mouvement.
Quand choisir Perry
Choisissez Perry si vous voulez un seul codebase TypeScript pour mobile, desktop, montre, TV, WASM et le web ; si vous ne voulez aucun runtime JS dans votre application livrée ; si vous voulez une UI native sans pont ; ou si vous êtes déjà investi dans TypeScript et voulez une compilation native plutôt qu'un moteur JS.
Quand choisir React Native
Choisissez React Native si vous construisez des applications mobiles et voulez le framework UI native multiplateforme le plus mature, si vous avez une équipe React existante, si vous dépendez de l'écosystème de bibliothèques de React Native, ou si vous avez besoin de la stack mobile multiplateforme standard de l'industrie aujourd'hui.
Verdict
React Native est un framework mobile-first avec un runtime JS et un pont (désormais amélioré). Perry est un compilateur qui produit des binaires natifs depuis TypeScript, avec une UI native faisant partie de la sortie de compilation. Si vous voulez React sur mobile avec l'écosystème le plus profond, React Native est la réponse aujourd'hui. Si vous voulez un seul codebase TypeScript qui compile vers mobile + desktop + montre + TV sans runtime JS dans l'application, Perry est la réponse.