Karşılaştırmalara geri dön
Çapraz platform UI

Perry vs Electron

Electron, Chromium ve Node.js'i uygulamanızla birlikte paketleyerek web teknolojileri (HTML/CSS/JS) ile çapraz platform masaüstü uygulamaları inşa etmenizi sağlar. Perry, TypeScript'i doğrudan yerel makine koduna derler ve UI'ı gerçek platform widget'ları aracılığıyla render eder — AppKit, UIKit, GTK4, Win32, JNI. Electron'un sunduğu, web teknolojisinin yeniden kullanımıdır; Perry'nin sunduğu ise TypeScript'ten küçük yerel ikili dosyalar ve yerel UI'dır.

Electron nedir?

Electron; render için Chromium'u ve sistem erişimi için Node.js'i kullanarak çapraz platform masaüstü uygulamaları inşa etmek için açık kaynak bir framework'tür. Her Electron uygulaması kendi Chromium ve Node kopyasıyla gönderilir; bu nedenle Electron uygulamasının yükleyicileri tipik olarak hello world için bile 80–150 MB civarındadır. Electron; VS Code, Slack, Discord ve Figma'nın masaüstü istemcisi dahil yaygın olarak kullanılan uygulamaları çalıştırmıştır. Linux, macOS ve Windows masaüstlerini hedefler; birinci taraf bir mobil, watch veya TV hikâyesi yoktur.

Perry nedir?

Perry, TypeScript'i tarayıcı motoru, Chromium ve Node çalışma zamanı olmaksızın doğrudan yerel makine koduna derler. UI katmanı (perry/ui), macOS'ta AppKit, iOS/iPadOS/tvOS'ta UIKit, Linux'ta GTK4, Windows'ta Win32 ve Android'de JNI aracılığıyla yerel platform widget'larına eşlenen SwiftUI tarzı bildirimsel bir sistemdir. Hello-world ikili dosyaları ~330 KB; stdlib ile (Fastify, mysql2, vb.) tam uygulamalar yaklaşık 48 MB'dir.

Yan yana

ÖzellikPerryElectron
RenderYerel platform widget'ları (AppKit, UIKit, GTK4, Win32, JNI)Paketlenmiş Chromium (HTML/CSS/JS)
Paketlenmiş motorlarYok (sadece --enable-js-runtime ile isteğe bağlı V8)Chromium + Node.js
Hello-world yükleyici boyutu~330 KB~80–150 MB
Tam uygulama yükleyicisi (stdlib + framework'ler)~48 MBTipik olarak 100–200+ MB
RAM kullanımıYerel (tipik: onlarca MB)Birden fazla Chromium süreci (tipik: yüzlerce MB)
Mobil / watch / TVEvet — iOS, iPadOS, Android, watchOS, tvOS, Wear OSHayır (yalnızca masaüstü)
UI diliBildirimsel SwiftUI tarzı API ile TypeScriptHTML/CSS/JS (web yığını)
Otomatik güncelleme / paketlemeperry publish (Homebrew, APT, App Store, Play Store)electron-builder, electron-updater (olgun ekosistem)
Olgunluk1.0 öncesiKararlı, üretimde 10+ yıl

Perry'nin kazandığı yerler

  • +İkili dosya boyutu. Bir Perry hello world ~330 KB; bir Electron hello world ise her uygulama kendi Chromium'unu gönderdiği için tipik olarak 80–150 MB'dir.
  • +Bellek ayak izi. Perry uygulamaları tek bir yerel süreç olarak çalışır; Electron uygulamaları birden fazla Chromium sürecini (renderer, GPU, utility, vb.) çalıştırır ve boştayken yüzlerce MB RAM tüketir.
  • +Yerel görünüm ve his. Perry gerçek platform widget'ları aracılığıyla render eder, böylece uygulamalar OS kurallarını (focus halkaları, erişilebilirlik, IME, kaydırma fiziği) otomatik olarak miras alır.
  • +Mobil, watch, TV. Tek bir Perry kod tabanı iOS/iPadOS/Android/watchOS/tvOS/Wear OS'a derlenir. Electron yalnızca masaüstüdür.
  • +Soğuk başlatma. Yerel ikili dosyalar Chromium ve Node başlatma maliyetini ödemez.
  • +Sıkı kodda gerçek CPU performansı. Perry, Node'a (Electron'un kullandığı) karşı çoğu çekirdekte hesaplama mikro-benchmark'larında kat kat öndedir (perry/benchmarks'a bakın).

Electron'in kazandığı yerler

  • +Olgunluk. Electron on yıldan fazla süredir üretimde; VS Code, Slack, Discord ve birçok başka uygulamayı savaşta test edilmiş araçlarla çalıştırır.
  • +Web yığını yeniden kullanımı. Ekibiniz zaten web UI'ları inşa ediyorsa, Electron onları yeniden yazmadan masaüstü uygulaması olarak göndermenizi sağlar.
  • +Platformlar arası UI tutarlılığı kolaydır — Chromium her OS'ta aynı şekilde render eder, ki bazı ürünlerin tam istediği şey budur.
  • +Çalıştırma zamanında devasa npm kütüphane ekosistemi çalışır; Perry bir alt kümeyi yerel olarak çalıştırır ve isteğe bağlı V8 geri kalanını kapsar.
  • +Olgun paketleme araçları (electron-builder, electron-updater, kod imzalama yardımcıları) ile geniş topluluk desteği.
  • +Devtools, hot reload ve akıcı CSS/HTML iterasyon hızı gibi web-yerel özellikler eşsizdir.

Perry'i ne zaman seçmeli

Küçük yerel ikili dosyalar, düşük bellek kullanımı, platform başına yerel görünüm ve his veya masaüstüne ek olarak mobile/watch/TV'ye gönderen tek bir TypeScript kod tabanı istiyorsanız Perry'yi seçin.

Electron'i ne zaman seçmeli

Mevcut bir web UI'ınız varsa ve onu minimum yeniden yazmayla masaüstü uygulaması olarak göndermek istiyorsanız, masaüstünde maksimum çapraz platform UI tutarlılığı istiyorsanız ya da çalıştırma zamanında geniş bir saf JS kütüphanesi yelpazesine bağımlıysanız Electron'u seçin.

Karar

Electron ve Perry, çapraz platform spektrumunun zıt uçlarında durur. Electron, ikili dosya boyutunu ve belleği web teknolojisi yeniden kullanımı için takas eder; Perry ise web yığınını yerel ikili dosyalar ve yerel UI için takas eder. Electron uygulamanızın yükleyicisinin 150 MB'ı geçtiğini veya boştaki RAM'inin yarım gigabaytı aştığını izlediyseniz, Perry tam da bu spesifik soruna cevaptır — farklı, yerel tarzı bir UI modeli pahasına.

Perry'yi deneyin

TypeScript'inizi bugün yerel koda derleyin.

Başlayın