24 puan yazan xguru 2025-02-03 | 15 yorum | WhatsApp'ta paylaş
  • Yazar Felix Rieseberg, Electron geliştirmesinde 10 yılı aşkın süredir yer alan bir co-maintainer
  • Electron, kullanıcı arayüzünü web teknolojileriyle geliştirmeyi sağlar ve gerekirse yerel kodu buna serbestçe karıştırmaya imkan tanır
  • Birçok uygulama (Visual Studio Code, Slack, Discord, Figma, ChatGPT, Claude, Notion, 1Password, Docker Desktop vb.) Electron kullanıyor
  • Bu yazı, Electron hakkındaki başlıca yanlış anlamaları ele alıyor ve bu tercihlerin neden yapıldığını açıklıyor

Electron, JavaScript ile yerel kodu karşı karşıya getirir

  • Sıkça "Electron yalnızca JavaScript kullandığı için yerel uygulamalardan geri kalır" denir
  • Gerçekte Electron, JavaScript'e ek olarak C++, Objective-C, Rust gibi yerel dillerde yazılmış kodların birlikte kullanılmasına imkan verir
  • Örneğin 1Password, kodunun büyük bölümünü Rust ile yazıyor ve kullanıcı arayüzü için Electron'dan yararlanıyor
  • Electron'un güçlü yanı, gerektiği kadar yerel kodu karıştırabilme ve kullanıcı arayüzü katmanında web teknolojilerini kullanabilme esnekliğidir
  • SwiftUI, GTK, Win32 gibi araçlarla kısmen yerel kullanıcı arayüzü sunan demo örnekleri de mevcut

Web uygulamaları kötüdür

  • "Tüm yerel uygulamalar her zaman daha üstündür" görüşü yaygın olsa da, pazarın gerçekleri bu kadar basit değil
  • NASA'nın Mission Control'ü, Bloomberg Terminal, McDonald’s kioskları ve SpaceX'in Dragon 2'si de Chromium tabanlı web teknolojilerinden yararlanıyor
  • Web teknolojileri dünya çapında en yaygın kullanılan teknolojiler arasında ve iyi geliştirilmiş web uygulamaları mükemmel bir kullanıcı deneyimi sunabiliyor
  • "Web uygulamalarını yetkin olmayan insanlar yapar" iddiası, kullanım ortamının gereksinimlerini ve geliştiricilerin seçim koşullarını hesaba katmayan aşırı basitleştirilmiş bir yaklaşım
Reklam

İşletim sistemi WebView'ı daha yüksek performans sunar

  • macOS, Windows veya Linux'a gömülü WebView'ın çoğu zaman daha iyi olduğunu savunanlar var
  • Gerçekte Slack, ilk başta MacGap'i (WebView tabanlı) kullandı, ancak performans sorunları nedeniyle sonunda Electron'u (Chromium) benimsedi
  • Modern Chromium motoru daha fazla kaynak tüketse de, en yoğun optimizasyon çalışmalarının yapıldığı alanlardan biri de burası
  • İşletim sistemine gömülü WebView, paylaşılan kaynaklar sayesinde daha düşük bellek kullanımı gösteriyor gibi görünebilir; ancak güvenlik ve kararlılık nedenleriyle pratikte çoğu zaman izole çalışır
  • Electron sayesinde en güncel motor sürümü doğrudan yönetilebilir ve böylece kararlılık ile güvenlik bağımsız biçimde korunabilir

Paket boyutu önemlidir

  • Genel olarak Electron uygulamaları 100~300MB civarında oluyor ve bu durum eleştiriliyor
  • Ancak kullanıcılar, uygulamanın kapladığı alandan çok işlevler, kullanım kolaylığı ve kararlılık gibi unsurlara öncelik verme eğiliminde
  • Örneğin 4K kalitede Netflix yayını bir saatte birkaç GB veri kullanabiliyor ve Call of Duty güncellemeleri yüzlerce GB'a ulaşabiliyor
  • Sonuçta uygulama boyutu, gerçek kullanıcı memnuniyetine kıyasla çoğu zaman görece daha az önemli bir unsur haline geliyor

Electron'u yenin

  • Electron, "iyi masaüstü uygulamaları yapalım" hedefini taşıyan insanların açık kaynak çabası olarak başladı
  • Electron, az sayıda rakibin olduğu bir ortamda ortaya çıktı ve bugün de yeterli özellik ile kararlılık sunmayı sürdürüyor
  • Electron'u "yenmek" için, Electron'un yaptığını ondan daha iyi yapabilen bir platform oluşturmak gerekiyor
  • Electron bakımcıları, daha iyi bir alternatif çıkarsa bunu memnuniyetle karşılayacaktır

15 yorum

 
joone 2025-05-24

Bunu Call of Duty ile kıyaslamak biraz konu dışı görünüyor.
Electron'ı bırakıp WebView'e geçen Teams'e bakmak gerekiyor,
https://techcommunity.microsoft.com/discussions/microsoftteams/…

 
pmc7777 2025-02-04

Umarım Tauri bir an önce olgunlaşır. Gerçi ben zaten onu gayet iyi kullanıyorum.

 
coma333 2025-02-04

Atom Shell olduğu günler daha dün gibiydi.. epey gelişmiş.

 
tsboard 2025-02-04

Eleştirilecek çeşitli noktalar var ama her gün kullandığımız VSCode uygulamasının olgunluk düzeyine bakınca, Electron’un katkısının hiç de az olmadığını düşünmemek elde değil.

 
akintos 2025-02-03

Bilgisayarıma kurulu Electron uygulaması sayısı neredeyse 10'a ulaştı; bu noktada artık ayrı kurulan bir framework olması gerekmiyor mu diye düşünmeden edemiyorum.

 
freedomzero 2025-02-03

Bundle boyutu da öyle, bir de ~~ Helper sürecinin belleği sömürdüğünü görünce insanın sadece iç çekesi geliyor.

 
nullvana 2025-02-03

Tauri'yi bir alternatif olarak düşünüyorum ama dağıtım sırasında normal çalışmayan istisnai durumlar olur mu diye endişeleniyorum. (Eskiden win32 ortamında msxml.dll gibi varsayılan olarak kayıtlı DLL'lere başvuran bir program dağıtmıştım ve gerçekten çok uğraşmıştım; bu yüzden bağımlılıkları içselleştirip dağıtmıştım... benzer bir sorun çıkmaz mı diye düşünüyorum.)

Electron tarafının dediği gibi, galiba boyutu tamamen kafaya takmamak gerekiyor ama bundle boyutu gerçekten çok büyük.

 
aaaapple123 2025-02-05

Sanırım sorun Tauri’de bu..

Platforma göre WebView’ler ve gömülü programlar farklı olduğu için en büyük sorun da bu aslında. Dağıtımdan sonra ne olacağını bilemiyorsunuz.

Ama Tauri’ye WebView’in kendisini gömelim deseniz, bu kez paket boyutu Electron’dan da büyük oluyor..

Bu yüzden production düzeyinde çapraz platform uygulama geliştirme açısından Tauri’nin hâlâ olgunlaşmadığını düşünüyorum.

 
secret3056 2025-02-03

McDonald’s kioskları... şey... bunun iyi bir örnek olup olmadığından emin değilim

 
tsboard 2025-02-04

Benim de bir an aklıma aynı şey geldi. Acaba yurt dışındaki McDonald's kioskları yine de biraz farklı mı? Bir an öyle düşündüm haha

 
dicebattle 2025-02-03

Hahahahaha, ben de tamamen aynı şeyi düşündüm

 
savvykang 2025-02-03

Bellek kullanımını azaltmanın en büyük zorluk olduğu anlaşılıyor; ne yazık ki paydaşlardan hiçbirinin bunu hayata geçirecek bir motivasyonu varmış gibi görünmüyor.

 
rtyu1120 2025-02-03

SwiftUI, GTK, Win32 vb. kullanarak kısmen yerel UI sunan demo örnekleri de mevcut

Metinde gerçek demo kodu bağlantısı verildiği için göz atıp kontrol ettim; "oldukça basit, birlikte kullanılabilir" denecek kadar kolay bir izlenim vermiyor. Şimdilik en fazla mümkün olduğuna anlam yüklemek gerekiyor gibi...

 
lamanus 2025-02-03

Görünüşe göre genel olarak uygulamanın büyük olduğu doğruymuş..

 
dohyun682 2025-02-03

Evet, paket boyutunu usulca kabul ediyorlar.