Kembali ke perbandingan
UI lintas platform

Perry vs Electron

Electron memungkinkan Anda membangun aplikasi desktop lintas platform menggunakan teknologi web (HTML/CSS/JS) dengan membundel Chromium dan Node.js bersama aplikasi Anda. Perry mengompilasi TypeScript langsung ke kode mesin native dan merender UI melalui widget platform asli — AppKit, UIKit, GTK4, Win32, JNI. Electron menjual penggunaan ulang teknologi web; Perry menjual binary native kecil dengan UI native dari TypeScript.

Apa itu Electron?

Electron adalah framework open source untuk membangun aplikasi desktop lintas platform menggunakan Chromium untuk rendering dan Node.js untuk akses sistem. Setiap aplikasi Electron mengirim salinan Chromium dan Node-nya sendiri, itulah sebabnya installer aplikasi Electron biasanya 80–150 MB bahkan untuk hello world. Electron telah memberdayakan aplikasi yang banyak digunakan termasuk VS Code, Slack, Discord, dan klien desktop Figma. Ia menargetkan desktop Linux, macOS, dan Windows; tidak ada cerita resmi mobile, watch, atau TV.

Apa itu Perry?

Perry mengompilasi TypeScript langsung ke kode mesin native tanpa engine browser, tanpa Chromium, dan tanpa runtime Node. Lapisan UI (perry/ui) adalah sistem deklaratif gaya SwiftUI yang dipetakan ke widget platform native via AppKit di macOS, UIKit di iOS/iPadOS/tvOS, GTK4 di Linux, Win32 di Windows, dan JNI di Android. Binary hello world ~330 KB; aplikasi penuh dengan stdlib (Fastify, mysql2, dll.) sekitar 48 MB.

Berdampingan

FiturPerryElectron
RenderingWidget platform native (AppKit, UIKit, GTK4, Win32, JNI)Chromium yang dibundel (HTML/CSS/JS)
Engine yang dibundelTidak ada (V8 opsional hanya saat --enable-js-runtime)Chromium + Node.js
Ukuran installer hello-world~330 KB~80–150 MB
Installer aplikasi penuh (stdlib + framework)~48 MB100–200+ MB tipikal
Penggunaan RAMNative (tipikal: puluhan MB)Beberapa proses Chromium (tipikal: ratusan MB)
Mobile / watch / TVYa — iOS, iPadOS, Android, watchOS, tvOS, Wear OSTidak (hanya desktop)
Bahasa UITypeScript dengan API deklaratif gaya SwiftUIHTML/CSS/JS (stack web)
Auto-update / pengemasanperry publish (Homebrew, APT, App Store, Play Store)electron-builder, electron-updater (ekosistem matang)
KematanganPra-1.0Stabil, satu dekade+ di produksi

Di mana Perry unggul

  • +Ukuran binary. Hello world Perry ~330 KB; hello world Electron biasanya 80–150 MB karena setiap aplikasi mengirim Chromium-nya sendiri.
  • +Footprint memori. Aplikasi Perry berjalan sebagai satu proses native; aplikasi Electron menjalankan beberapa proses Chromium (renderer, GPU, utility, dll.) dan mengonsumsi ratusan MB RAM saat idle.
  • +Tampilan dan nuansa native. Perry merender melalui widget platform asli, jadi aplikasi mewarisi konvensi OS (focus ring, aksesibilitas, IME, fisika scroll) secara otomatis.
  • +Mobile, watch, TV. Satu kode sumber Perry mengompilasi ke iOS/iPadOS/Android/watchOS/tvOS/Wear OS. Electron hanya desktop.
  • +Cold start. Binary native tidak membayar biaya startup Chromium dan Node.
  • +Performa CPU nyata pada kode ketat. Perry memimpin microbench komputasi melawan Node (yang digunakan Electron) dengan kelipatan pada sebagian besar kernel (lihat perry/benchmarks).

Di mana Electron unggul

  • +Kematangan. Electron sudah di produksi selama lebih dari satu dekade dan memberdayakan VS Code, Slack, Discord, dan banyak aplikasi lain dengan tooling yang teruji pertempuran.
  • +Penggunaan ulang stack web. Jika tim Anda sudah membangun UI web, Electron memungkinkan Anda mengirimnya sebagai aplikasi desktop tanpa penulisan ulang.
  • +Konsistensi UI lintas platform mudah — Chromium merender sama di setiap OS, yang persis seperti yang diinginkan beberapa produk.
  • +Ekosistem perpustakaan npm yang luas berfungsi saat runtime; Perry menjalankan subset secara native dan V8 opt-in mencakup sisanya.
  • +Tooling pengemasan matang (electron-builder, electron-updater, helper penandatanganan kode) dengan dukungan komunitas yang luas.
  • +Fitur web-native seperti devtools, hot reload, dan kecepatan iterasi CSS/HTML yang lancar tak tertandingi.

Kapan memilih Perry

Pilih Perry jika Anda ingin binary native kecil, penggunaan memori rendah, tampilan-dan-nuansa native per platform, atau satu kode sumber TypeScript yang mengirim ke mobile/watch/TV selain desktop.

Kapan memilih Electron

Pilih Electron jika Anda memiliki UI web yang sudah ada dan ingin mengirimnya sebagai aplikasi desktop dengan penulisan ulang minimal, jika Anda butuh konsistensi UI lintas platform maksimum di desktop, atau jika Anda bergantung pada berbagai perpustakaan JS murni saat runtime.

Kesimpulan

Electron dan Perry duduk di ujung berlawanan dari spektrum lintas platform. Electron menukar ukuran binary dan memori demi penggunaan ulang teknologi web; Perry menukar stack web demi binary native dan UI native. Jika Anda telah melihat installer aplikasi Electron Anda membengkak melewati 150 MB atau RAM idle-nya melewati setengah gigabyte, Perry adalah jawaban untuk masalah spesifik itu — dengan biaya model UI bergaya native yang berbeda.

Coba Perry

Kompilasi TypeScript Anda menjadi native hari ini.

Mulai