Pek çok yeni masaüstü uygulamasının hemen hemen web sitelerine benzediğini fark ettiniz mi? Bu senin hayal gücün değil.
Trello'dan Slack'e, WordPress.com'dan Github'a, sözde masaüstü uygulamalarının bir web sitesini bildirimler, dosya sistemi erişimi ve menüler gibi birkaç yerel özellik ile bir araya getirmesi giderek daha yaygın hale geliyor. Bunu sağlayan en yaygın teknolojiye Elektron ve şüphelenmeyebileceğiniz birkaç uygulama tarafından kullanılıyor, örneğin sohbet uygulaması Discord ve Microsoft’un Visual Studio Kodu .
Electron, geliştiricilerin Windows, macOS ve Linux'ta aynı anda bir uygulama yayınlamasını kolaylaştırır, ancak kullanıcılar için dezavantajları vardır. Elektron uygulamaları bir kere çok büyük. Bir sohbet uygulaması olan Slack, Mac'imde 237 MB sabit disk alanı kaplıyor ve bellek tüketimi de düşük değil. Tüm bu kaynakları ne alıyor? Ve geliştiriciler neden bu kadar verimsiz bir şey kullanıyor?
Electron Uygulamalarının Yapılması Oldukça Kolay
Özellikle çapraz platform olmasını istiyorsanız, masaüstü uygulamaları yapmak zordur. Dosya sistemine erişim, örneğin Windows'ta Linux'ta olduğundan farklı çalışır ve bildirimler, macOS'ta Windows'dakinden farklı çalışır. Bu, üç masaüstü işletim sistemi (veya hatta ikisi) için bir uygulama yazmak isteyen herkesin, birinden diğerine taşırken kodlarının çoğunu yeniden yazması gerektiği anlamına gelir.
Electron, üç ana masaüstü işletim sisteminde çalışan tek bir platform sunarak bunu "çözer". Bu, geliştiricilerin bildirimler gibi şeyler için kodu bir kez yazabileceği ve her işletim sisteminde yerel olarak çalışmasını bekleyebileceği anlamına gelir. Geliştiriciler için daha da iyi: her şey Javascript, HTML ve CSS kullanılarak oluşturulabilir - web için kod yazan herkesin çok aşina olduğu teknolojiler.
Electron Uygulamaları Chromium'un Oldukça Büyük Bir Şekilde Geliyor
Bu nasıl mümkün olabilir? Kısmen, her Electron uygulamasının eksiksiz bir web tarayıcısı içermesi nedeniyle: Chromium, Google Chrome'un açık kaynak sürümü . Bu, her şeyin tam olarak geliştiricilerin tüm sistemlerde beklediği gibi davranmasını sağlamak için platforma özel talimatlarla birlikte paketlenmiştir. Slack'in masaüstü sürümünün 200MB'den fazla sabit disk alanı kaplamasının nedeni budur: Chrome'un çoğu burada paketlenmiştir.
Çalıştırdığınız her Electron uygulaması, aşağı yukarı tam bir Chrome örneğidir. Blog yazarı Joseph Gentle olarak işaret etti , bu pek de ideal değil:
Slack'i, esasen IRC'de sohbet etmek için çalıştırmanız gereken, başka bir işletim sistemi VM'si (krom) içinde çalışan küçük bir javascript programı olarak düşünebilirsiniz. Gerçek kromu açmış olsanız bile, her elektron uygulaması tüm sanal makinenin kendi ekstra kopyasını çalıştırır.
Yani evet, kullanıcılar için dezavantajları var. Her şeyden önce, indirdiğiniz her Electron uygulaması Chromium'un çoğunu paketler ve çalıştırdığınız her uygulama bu kodun iyi bir kısmını çalıştırır. Burada yerel uygulamalarda olduğu gibi kaynak paylaşımı yoktur, bu da Electron uygulamalarının, özellikle platformunuz düşünülerek geliştirilen bir uygulamadan daha fazla sabit disk alanı ve bellek kullanacağı anlamına gelir. Performans gerçekten önemsediğiniz bir şeyse, Electron uygulamalarından kaçınmak isteyebilirsiniz.
Bekle, Elektron İyi mi Kötü mü?
Bu noktada bilgisayarlar o kadar güçlü ki çoğu kullanıcı Electron uygulamalarının ne kadar verimsiz olduğunu fark etmeyecek. Aslında, büyük çoğunluk Electron'u hiç duymadı. İş arkadaşlarımın çoğu yoktu ve hepsi her gün Slack kullanıyor. Birçoğu, Trello'nun bir masaüstü sürümünün çıktığını görmekten heyecan duydu ve yine bunun bir Electron uygulaması olduğu hakkında hiçbir fikri yoktu.
Ve bu uygulamalar, işletim sisteminizle web sitelerinden daha iyi entegre olur. Kendi pencerelerinde yaşarlar. Harika klavye kısayolları, yerel bildirimler ve yalnızca bir tarayıcıyla aynı şekilde yapamayacağınız başka şeyler sunarlar.
Ve Electron olmasaydı Slack, Trello ve WordPress.com gibi uygulamaların bir masaüstü sürümü sunma zahmetine girmeyeceği, bunun yerine mobil ve tarayıcı sürümlerine odaklanacağı iyi bir bahis. Yani soru Electron'un kötü olup olmadığı değil; Electron uygulamalarının hiç yoktan daha iyi olup olmadığıdır. Evet demeye hazırım ama mantıklı insanlar aynı fikirde olmayabilir. (Ve hey, bu insanlar için her zaman web sürümü vardır.)