กลับไปยังการเปรียบเทียบ
คอมไพเลอร์ TS-to-native

Perry vs Static Hermes

Static Hermes (`shermes`) เป็นความพยายามระดับงานวิจัยของ Meta ในการคอมไพล์ JavaScript/TypeScript subset ที่มี type แข็งแกร่งแบบ ahead-of-time ผ่าน Hermes engine โดยมุ่งเป้าหลักไปที่ React Native Perry เป็นเดิมพันที่แตกต่างกันบนแนวคิดทั่วไปเดียวกัน — TypeScript คอมไพล์เป็นเนทีฟ — แต่สร้างขึ้นอย่างอิสระด้วย Rust บน LLVM พร้อมคอมไพเลอร์ที่ใช้งานได้ วิดเจ็ต UI เนทีฟ 25+ ตัว และ 10 เป้าหมายการคอมไพล์ที่ส่งมอบในวันนี้ ณ เดือนเมษายน 2026 ชุดเบนช์มาร์กของ Perry รายงานว่า Static Hermes ถูกทดสอบเป็นเพียร์แต่ไม่สามารถติดตั้งได้อย่างสะอาดผ่าน package manager มาตรฐานที่ใช้ทดสอบ

Static Hermes คืออะไร?

Hermes คือ JavaScript engine ที่ Meta สร้างขึ้นสำหรับ React Native — อิงกับ bytecode, คอมไพล์ AOT ล่วงหน้า, ปรับแต่งสำหรับเวลาเริ่มต้นบนมือถือ Static Hermes คือความพยายามวิจัยในการขยาย Hermes ด้วยการคอมไพล์เนทีฟ ahead-of-time ของ JavaScript subset ที่มี type มีจุดประสงค์เพื่อให้ React Native มีเส้นทางสู่โค้ดเนทีฟอย่างแท้จริง เป็นโครงการ R&D ของคอมไพเลอร์เป็นหลัก; ตามบันทึกของ perry/benchmarks ยังไม่ได้ถูกแพ็กเกจสำหรับการติดตั้งทั่วไปบน macOS arm64 (`shermes` ถูกข้ามจากการเบนช์มาร์กแบบ polyglot ด้วยหมายเหตุว่า 'is not available on Homebrew or npm in a way that installs cleanly on macOS arm64' — ดู perry/benchmarks/README.md)

Perry คืออะไร?

Perry เป็นคอมไพเลอร์ TypeScript เนทีฟที่เขียนด้วย Rust ใช้ SWC สำหรับการ parse และ LLVM สำหรับการสร้างโค้ด มาพร้อม CLI ที่ใช้งานได้ (`perry compile`, `perry run`, `perry publish`) วิดเจ็ต UI เนทีฟ 25+ ตัว 10 เป้าหมายการคอมไพล์ รันไทม์ self-hosted และชุดเบนช์มาร์กที่วัดผลภายใต้เงื่อนไขที่โปร่งใส (M1 Max, RUNS=11) Perry เป็น pre-1.0 แต่อยู่ในสายโปรดักชัน: มีคนกำลังส่งมอบแอปที่สร้างด้วย Perry (Bloom Engine, Mango, Hone, Pry, dB Meter — ดู perryts.com)

เคียงข้างกัน

ฟีเจอร์PerryStatic Hermes
สถานะPre-1.0 (alpha) — สายโปรดักชันงานวิจัย / ทดลอง
เส้นทางการติดตั้ง (macOS arm64)Homebrew, APT, npm (@perryts/perry)ยังไม่ได้แพ็กเกจสำหรับการติดตั้งสะอาดในเวลาที่เขียน (ตาม perry/benchmarks)
BackendLLVMCustom (codegen อิงกับ Hermes)
อินพุตTypeScript (เต็มรูปแบบ)JS/TS subset ที่มี type
เป้าหมายการคอมไพล์10: macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web/JSหลัก ๆ คือมือถือ (บริบท React Native)
UI เนทีฟ25+ widget ผ่าน AppKit, UIKit, GTK4, Win32, JNIผ่านสะพาน React Native (เมื่อ integrate)
Workflow แอป CLI standaloneใช่ — `perry compile main.ts` สร้างไบนารีผูกกับบริบท React Native
ชุดเบนช์มาร์กสาธารณะใช่ — RUNS=11 เทียบกับ Node, Bun, Rust, C++, Go, Swift, Javaภายใน / เอกสารวิจัย

จุดที่ Perry ชนะ

  • +มีตัวตนเป็นเครื่องมือที่ใช้งานได้ Perry ติดตั้งได้วันนี้ผ่าน Homebrew, APT หรือ `npm install @perryts/perry` และ `perry compile main.ts` สร้างไบนารีในความพยายามครั้งแรก
  • +ขอบเขตที่กว้างกว่า Perry คอมไพล์แอป CLI standalone, แอปเดสก์ท็อปเนทีฟ, แอปมือถือ, แอป watch, แอป TV, WASM และเว็บจากโค้ดเบส TypeScript เดียว Static Hermes มุ่งเน้นที่เส้นทางโค้ดเนทีฟของ React Native
  • +UI เนทีฟในตัว โมดูล perry/ui ของ Perry เป็นเลเยอร์ UI declarative สไตล์ SwiftUI ที่ใช้งานได้ ซึ่งคอมไพล์เป็น widget AppKit/UIKit/GTK4/Win32/JNI Static Hermes ปล่อยให้ UI ขึ้นอยู่กับ host ของมัน (React Native)
  • +ชุดเบนช์มาร์กสาธารณะที่ทำซ้ำได้พร้อมระเบียบวิธีที่บันทึกไว้ — perry/benchmarks แสดงค่ากลาง + p95 + σ ใน RUNS=11 เทียบกับคอมไพเลอร์และรันไทม์ที่ระบุชื่อ
  • +Backend LLVM หมายความว่า Perry สืบทอด pass การปรับแต่งที่สมบูรณ์มานานหลายทศวรรษ (autovectorization, IndVarSimplify, scalar replacement) และรองรับทุกแพลตฟอร์มที่ LLVM รองรับ

จุดที่ Static Hermes ชนะ

  • +ได้รับการสนับสนุนจาก Meta — ทรัพยากรวิศวกรรมที่สำคัญและจุดยึดทางกลยุทธ์ที่ชัดเจนใน React Native
  • +Hermes กำลังใช้งานในแอป React Native โปรดักชันแล้วในฐานะ bytecode engine; Static Hermes สืบทอดระบบนิเวศและเครื่องมือนั้น
  • +งานระดับวิจัยเกี่ยวกับกฎ AOT typing และ semantics ของ JS subset ที่ใหม่จริง ๆ
  • +ถ้าคุณอยู่บน React Native อยู่แล้ว Static Hermes (เมื่อพร้อมใช้งาน) เป็นเส้นทางที่เพิ่มขึ้นแบบค่อยเป็นค่อยไปมากกว่าการเขียนใหม่กับคอมไพเลอร์อื่น

เมื่อใดควรเลือก Perry

เลือก Perry ถ้าคุณต้องการคอมไพเลอร์ TS-to-native ที่ใช้งานได้ในวันนี้ คุณต้องการโค้ดเบส TypeScript เดียวสำหรับเป้าหมายเดสก์ท็อป, มือถือ, watch, TV, WASM และเว็บ หรือคุณต้องการวิดเจ็ต UI เนทีฟโดยไม่ต้องผ่านสะพาน React Native

เมื่อใดควรเลือก Static Hermes

เลือก Static Hermes (เมื่อพร้อมใช้งาน) ถ้าคุณยึดมั่นกับ React Native และต้องการเส้นทางจาก JavaScript/TypeScript ไปยังโค้ดเนทีฟที่คอมไพล์ ahead-of-time บนมือถือ และคุณรู้สึกสบายใจกับการทำงานบนขอบของเครื่องมือระดับวิจัย

บทสรุป

Static Hermes เป็นงานวิจัยที่น่าสนใจจากทีมที่น่าเชื่อถือ Perry เป็นผลิตภัณฑ์ที่ใช้งานได้บนแนวคิดทั่วไปเดียวกัน ขยายขอบเขตให้กว้างกว่ามือถือมากและส่งมอบในวันนี้ ถ้าคุณต้องการคอมไพเลอร์ TS-to-native ในมือคุณตอนนี้ Perry คือคำตอบ ถ้าคุณอยู่บน React Native และเต็มใจติดตามโครงการวิจัย ก็ติดตาม Static Hermes

ลองใช้ Perry

คอมไพล์ TypeScript ของคุณเป็นเนทีฟวันนี้

เริ่มต้น