Karşılaştırmalara geri dön
TS-yerel derleyici

Perry vs Static Hermes

Static Hermes (`shermes`), Meta'nın; JavaScript/TypeScript'in güçlü tipli bir alt kümesini Hermes motoru üzerinden ahead-of-time derlemeyi hedefleyen, esas olarak React Native'e yönelik araştırma aşamasındaki çabasıdır. Perry, aynı genel fikre — TypeScript'in yerele derlenmesi — yapılan farklı bir bahistir, ancak bağımsız olarak Rust üzerinde LLVM ile inşa edilmiştir; bugün çalışan bir derleyici, 25+ yerel UI widget'ı ve 10 derleme hedefi göndermektedir. 2026 ortası itibarıyla `shermes` hâlâ kaynaktan derlenmek zorundadır — Perry'nin benchmark suite'i onu bir eş olarak denemiş ve standart paket yöneticileri aracılığıyla temiz bir kurulum yolu bulamamıştır — ve 2026 başında React Native'in varsayılanı hâline gelen Hermes V1 motoru, statik derleme özelliklerini açıkça içermemektedir.

Static Hermes nedir?

Hermes, Meta'nın React Native için inşa ettiği JavaScript motorudur — bytecode tabanlı, AOT-ön derlenmiş, mobil başlatma süresi için optimize edilmiştir. Static Hermes, Hermes'i tipli bir JavaScript alt kümesinin ahead-of-time yerel derlemesiyle genişletme araştırma çabasıdır ve React Native'e gerçek yerel koda giden bir yol vermeyi amaçlar. `static_h` dalı artık deponun varsayılan dalıdır ve aktif olarak geliştirilmektedir, ancak React Native kullanıcılarına asıl gönderilen şey Hermes V1'dir — React Native 0.84'te (Şubat 2026) varsayılan motor hâline gelen yeni bir bytecode derleyicisi ve VM — ve bu motor JS'i yerel ikili dosyalara derlemez veya tip bilgisini kullanmaz. Static Hermes'in kendisi bir derleyici Ar-Ge projesi olarak kalmaya devam ediyor; Perry'nin benchmark notlarına göre, macOS arm64 üzerinde rutin kurulum için henüz paketlenmemiştir (`shermes`, polyglot benchmark'tan 'macOS arm64 üzerinde temiz bir şekilde kurulan bir biçimde Homebrew veya npm üzerinde mevcut değildir' notuyla atlanmıştır — bkz. perry/benchmarks/README.md).

Perry nedir?

Perry; Rust ile yazılmış, ayrıştırma için SWC ve kod üretimi için LLVM kullanan yerel bir TypeScript derleyicisidir. Çalışan bir CLI (`perry compile`, `perry run`, `perry publish`), 25+ yerel UI widget'ı, 10 derleme hedefi, kendi kendini barındıran bir çalışma zamanı ve şeffaf koşullar altında ölçülen bir benchmark suite'i (M1 Max, RUNS=11) gönderir. Perry 1.0 öncesidir ama üretim hattıdır: insanlar onunla inşa edilmiş uygulamaları gönderiyor (Bloom Engine, Mango, Hone, Pry, dB Meter — perryts.com'a bakın).

Yan yana

ÖzellikPerryStatic Hermes
Durum1.0 öncesi (alfa) — üretim hattıAraştırma / deneysel
Kurulum yolu (macOS arm64)Homebrew, APT, npm (@perryts/perry)Yazıldığı sırada temiz kurulum için paketlenmemiş (perry/benchmarks'a göre)
BackendLLVMÖzel (Hermes tabanlı kod üretimi)
GirdiTypeScript (tam)Tipli JS/TS alt kümesi
Derleme hedefleri10: macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web/JSEsas olarak mobil (React Native bağlamı)
Yerel UIAppKit, UIKit, GTK4, Win32, JNI ile 25+ widgetReact Native köprüsü aracılığıyla (entegre edildiğinde)
Bağımsız CLI uygulama akışıEvet — `perry compile main.ts` bir ikili dosya üretirReact Native bağlamına bağlı
Genel benchmark suite'iEvet — Node, Bun, Rust, C++, Go, Swift, Java'ya karşı RUNS=11Dahili / araştırma makaleleri

Perry'nin kazandığı yerler

  • +Kullanılabilir bir araç olarak mevcuttur. Perry bugün Homebrew, APT veya `npm install @perryts/perry` ile kurulabilir ve `perry compile main.ts` ilk denemede bir ikili dosya üretir.
  • +Daha geniş kapsam. Perry; tek bir TypeScript kod tabanından bağımsız CLI uygulamaları, yerel masaüstü uygulamaları, mobil uygulamalar, watch uygulamaları, TV uygulamaları, WASM ve web derler. Static Hermes ise React Native'in yerel kod yoluna odaklanmıştır.
  • +Yerleşik yerel UI. Perry'nin perry/ui modülü AppKit/UIKit/GTK4/Win32/JNI widget'larına derlenen, çalışan bir SwiftUI tarzı bildirimsel UI katmanıdır. Static Hermes UI'yı host'una (React Native) bırakır.
  • +Belgelenmiş metodolojiyle açık, tekrarlanabilir benchmark suite'i — perry/benchmarks adlandırılmış derleyiciler ve çalışma zamanlarına karşı RUNS=11 boyunca medyan + p95 + σ gösterir.
  • +LLVM backend, Perry'nin onlarca yıllık olgun optimizasyon geçişlerini (autovectorization, IndVarSimplify, scalar replacement) miras almasını ve LLVM'in hedeflediği her platformu desteklemesini sağlar.

Static Hermes'in kazandığı yerler

  • +Meta tarafından destekleniyor — önemli mühendislik kaynakları ve React Native'de net bir stratejik bağlantı.
  • +Hermes, üretim React Native uygulamalarında zaten bir bytecode motoru olarak gönderilmektedir; Static Hermes bu ekosistemi ve araçları miras alır.
  • +AOT tipleme kuralları ve JS-alt-kümesi semantiği üzerinde gerçekten yenilikçi araştırma kalitesinde çalışma.
  • +Zaten React Native üzerindeyseniz, Static Hermes (mevcut olduğunda) farklı bir derleyiciye karşı yeniden yazmaktan daha kademeli bir yoldur.

Perry'i ne zaman seçmeli

Bugün çalışan bir TS-yerel derleyiciye ihtiyacınız varsa, masaüstü, mobil, watch, TV, WASM ve web'i hedeflemek için tek bir TypeScript kod tabanı istiyorsanız ya da React Native'in köprüsü olmadan yerel UI widget'ları istiyorsanız Perry'yi seçin.

Static Hermes'i ne zaman seçmeli

React Native'e bağlıysanız ve mobil üzerinde JavaScript/TypeScript'ten ahead-of-time derlenmiş yerel koda giden bir yol istiyorsanız ve araştırma araçları sınırında çalışmaktan rahatsanız (mevcut olduğunda) Static Hermes'i seçin.

Karar

Static Hermes, güvenilir bir ekipten ilginç araştırmadır. Perry, aynı genel fikir üzerinde çalışan, mobilden çok daha geniş kapsamlı ve bugün gönderilen bir üründür. Şu anda elinizde bir TS-yerel derleyiciye ihtiyacınız varsa, Perry tercihtir. React Native üzerindeyseniz ve bir araştırma projesini takip etmeye istekliyseniz, Static Hermes'i izleyin.

Perry'yi deneyin

TypeScript'inizi bugün yerel koda derleyin.

Başlayın