İçeriğe atla

Electron (yazılım kütüphanesi)

Electron
Orijinal yazar(lar)GitHub
Geliştirici(ler)OpenJS Vakfı
İlk yayınlanma15 Temmuz 2013 (11 yıl önce) (2013-07-15)[1]
Güncel sürüm31.2.1 / 15 Temmuz 2024 (2 ay önce) (2024-07-15)
Önizleme sürümü32.0.0-alpha.10 / 19 Temmuz 2024 (2 ay önce) (2024-07-19)
Programlama diliC++, JavaScript, Objective-C++, Python, Objective-C
İşletim sistemiLinux, macOS, Windows
PlatformIA-32, x86-64, ARM
LisansMIT Lisansı[2]
Resmî sitesielectronjs.org
Kod deposu Bunu Vikiveri'de düzenleyin

Electron (eski adıyla Atom Shell[3]), GitHub tarafından geliştirilen ve bakımı yapılan özgür ve açık kaynaklı bir yazılım iskeletidir.[4] Çerçeve, Chromium tarayıcı motorunun bir çeşidi kullanılarak oluşturulan web teknolojilerini (esas olarak HTML, CSS ve JavaScript ancak ön uç çerçeveleri ve WebAssembly gibi diğer teknolojiler de mümkündür) ve Node.js çalışma ortamını kullanarak masaüstü uygulamaları oluşturmak için tasarlanmıştır.[5] Ek olarak, Düğüm hizmetleriyle yerel entegrasyon ve süreçler arası iletişim modülü gibi şeylere izin vermek için çeşitli API'ler de kullanır.

Başlangıçta Atom için hazırlanmıştır.[3] Electron; Atom, GitHub Desktop, Light Table,[6] Visual Studio Code, WordPress Desktop,[7] ve Eclipse Theia dahil olmak üzere birçok açık kaynaklı projenin arkasındaki ana GUI çerçevesidir.[8]

Mimari

Elektron uygulamaları birden fazla işlemi içerir. "main" süreci ve birkaç "render" süreci vardır. Ana işlem, uygulamanın mantığını çalıştırır (örn. menüler, kabuk komutları, yaşam döngüsü olayları) ve daha sonra, HTML ve CSS'yi görüntüleyen bir kullanıcının ekranında görünen bir pencereyi yükleyen BrowserWindow sınıfının bir örneğini başlatarak birden çok oluşturucu işlemini başlatabilir.

Ana ​nodeIntegration​ alanı true olarak ayarlanmışsa, hem ana hem de oluşturucu işlemleri Node.js entegrasyonu ile çalışabilir

Electron'un API'lerinin çoğu C++ veya Objective-C ile yazılmıştır ve ardından JavaScript bağlamaları aracılığıyla doğrudan uygulama koduna maruz bırakılır.[9]

Tarihçe

Eylül 2021'de Electron, Chromium Extended Stable'ın yayın döngüsüne uymak ve tarayıcı tabanlı uygulamaların en son sürümlerden 2 ana sürümde olmasını gerektiren Microsoft Mağazası'nın tarayıcı motorunun serbest bırakılmasını isteyen yeni gereksinimine uymak için ana sürümler arasında 8 haftalık bir sürüm döngüsüne geçti.[10]

Electron, en son üç kararlı ana sürümü aktif olarak destekler.[11] Eylül 2021'den Mayıs 2022'ye kadar, sürüm döngülerindeki değişiklik nedeniyle dört ana sürüm geçici olarak desteklendi.

Tepkiler

Electron ile oluşturulmuş masaüstü uygulamaları arasında Atom,[12] balenaEtcher,[13] Eclipse Theia,[8] Microsoft Teams,[14] Slack[15] ve Visual Studio Code bulunur.[16][17] Ek olarak, Brave Browser, doğrudan Chromium'u kullanarak yeniden yazılmadan önce Electron temelli idi.[18]

Electron'un en yaygın eleştirisi, basit programlar için kullanıldığında yazılım şişmesi gerektirmesidir.[19] Sonuç olarak, Michael Larabel, çerçeveyi "çoğu Linux masaüstü kullanıcısı arasında kaynak açısından yoğun olması, çoğu masaüstüyle iyi bütünleşmemesi ve genel olarak küçümsenmesi nedeniyle kötü şöhretli" olarak nitelendirdi.[20] Bu arada Joey Sneddon, Electron'un platformlar arası yazılım geliştirme ve bakım maliyetini büyük ölçüde azalttığı için bu ödünleşimin mantıklı olduğunu belirtiyor.[21]

Araştırmacılar, düz metin JavaScript dosyaları aracılığıyla erişildiğinden, Electron'un geniş özellik setinin kötü amaçlı yazılımlar tarafından ele geçirilebileceğini göstermiştir.[22] Electron'un her zaman Chromium'un en yeni sürümünü temel almadığı gerçeğinden endişe duyanlar, alternatif olarak ileri web uygulamalarını önerdiler.[23]

Ayrıca bakınız

Kaynakça

  1. ^ "electron/electron". GitHub. 2 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2018. 
  2. ^ "electron/LICENSE at master". GitHub. 12 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020. 
  3. ^ a b "Atom Shell is now Electron". Electron. 23 Nisan 2015. 9 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2022. 
  4. ^ "electron/electron". GitHub. 18 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2018. 
  5. ^ "Electron Internals: Using Node as a Library". electronjs.org. 8 Ağustos 2016. 9 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020. 
  6. ^ "Light Table 0.8.0". lighttable.com. 10 Aralık 2015. 13 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2020. 
  7. ^ "GitHub Repository". GitHub. 19 Şubat 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Haziran 2019. 
  8. ^ a b "Theia - Cloud and Desktop IDE Platform". theia-ide.org. 20 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Aralık 2021. 
  9. ^ "From native to JavaScript in Electron | Electron Blog". electronjs.org. 19 Mart 2019. 26 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Nisan 2019. 
  10. ^ "New Electron Release Cadence | Electron". electronjs.org. 14 Temmuz 2021. 14 Temmuz 2021 tarihinde kaynağından arşivlendi. 
  11. ^ "Electron Support | Electron". electronjs.org. 21 Eylül 2021 tarihinde kaynağından arşivlendi. 
  12. ^ "Atom Shell is now Electron". Electron. 23 Nisan 2015. 16 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Temmuz 2017. 
  13. ^ "Etcher on GitHub". GitHub. 16 Kasım 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Temmuz 2020. 
  14. ^ "How Microsoft Teams uses memory - Microsoft Teams". docs.microsoft.com (İngilizce). 1 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Kasım 2021. 
  15. ^ "Building hybrid applications with Electron". Several People Are Coding. 25 Ekim 2016. 16 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ağustos 2017. 
  16. ^ "Microsoft's new Code editor is built on Google's Chromium". Ars Technica. 29 Nisan 2015. 7 Mayıs 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2015. 
  17. ^ "Open Source project". GitHub. 29 Mart 2022. 23 Kasım 2015 tarihinde kaynağından arşivlendi. 
  18. ^ Singh, Jagmeet (3 Ocak 2017). "People are now even doing machine learning in JavaScript". Open Source For U. 7 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 
  19. ^ Proven, Liam (19 Kasım 2021). "Some FOSS gems: Franz, RamBox, Pidgin and more". The Register. 19 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 
  20. ^ Larabel, Michael (9 Şubat 2019). "Electron Apps Are Bad, So Now You Can Create Desktop Apps With HTML5 + Golang". Phoronix. 26 Ağustos 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 
  21. ^ Sneddon, Joey (23 Temmuz 2017). "Seriously folks, Electron apps aren't that bad". OMG Ubuntu. 16 Mayıs 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 
  22. ^ Gallagher, Sean (7 Ağustos 2019). "Skype, Slack, other Electron based apps can be easily backdoored". Ars Technica. 7 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 
  23. ^ Hoffman, Chris (15 Ağustos 2019). "That native app is probably just an old web browser". How To Geek. 15 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Ağustos 2022. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">Google Chrome</span> Google tarafından geliştirilen bir web tarayıcısı

Google Chrome, Google tarafından geliştirilen ücretsiz bir web tarayıcısıdır. Eylül 2008'de Microsoft Windows sürümü yayımlanmış; daha sonra Linux, macOS, iOS ve Android sürümleri de geliştirilmiştir.

<span class="mw-page-title-main">Chromium</span>

Chromium, açık kaynak kodlu bir web tarayıcısı projesi. Chromium; Microsoft Edge, Yandex Browser ve Google Chrome tarayıcılarının da temelini oluşturmaktadır.

AngularJS Google tarafından desteklenen, dünya genelinde yazılımcılar tarafından katkı sağlanan açık kaynak kodlu web uygulama çatısıdır. Javascript ile yazılan Angular, MVC prensiplerine sadık kalınarak tek sayfalık uygulamalar yazmayı mümkün kılmaktadır.

<span class="mw-page-title-main">Node.js</span> Server-side JavaScript frameworkü

Node.js, açık kaynaklı, genelde sunucu tarafında çalışan ve ağ bağlantılı uygulamalar için geliştirilmiş bir çalıştırma ortamıdır. Node.js uygulamaları genelde istemci tarafı betik dili olan JavaScript kullanılarak geliştirilir.

npm

npm javascript betik dili için geliştirilmiş olan ve Node.js'in standart olarak kabul ettiği bir paket yönetim sistemidir. npm komut satırından çalıştırılır ve uygulamalar için bağımlılık yönetimi sağlar. Ayrıca geliştiricilerin merkezi bir npm kaynağından var olan paketleri kurmasına imkân verir. npm tamamen javascript dili kullanılarak Isaac Z. Schuleter tarafından, PHP'nin PEAR ve Perl'in CPAN sistemlerinden esinlenilerek geliştirilmiştir.

<span class="mw-page-title-main">Microsoft Edge</span> Microsoftun geliştirdiği bir ağ tarayıcısı

Microsoft Edge, Windows 10, Windows 11, Windows 10 Mobile ve Xbox One'da kullanılmak üzere Microsoft tarafından geliştirilen web tarayıcısıdır. Tüm cihaz türlerinde Internet Explorer'ın yerini alarak varsayılan web tarayıcısı olmak üzere tasarlandı. Microsoft, Edge'in web standartlarıyla uyumlu bir motora sahip, hafif bir tarayıcı olduğunu belirtmektedir. Cortana ile bütünleşme, not alma araçları ve okuma görünümü gibi bazı yenilikçi özelliklere sahiptir.

<span class="mw-page-title-main">V8</span> Açık kaynak kodlu Javascript motoru

V8, Chromium Projesi kapsamında geliştirilen özgür ve açık kaynak kodlu bir JavaScript motorudur. Danimarkalı bilgisayar programcısı olan Lars Bak tarafından yaratılmıştır. V8'in ilk sürümü 2 Eylül 2008 tarihinde Google'ın Chrome Tarayıcısı ile aynı zamanda yayınlanmıştır. V8, Node.js ve MongoDB gibi projelerde de kullanılmaktadır.

<span class="mw-page-title-main">Brave (yazılım)</span> Web Tarayıcısı

Brave açık kaynak kodlu, Chromium üzerine inşa edilmiş web tarayıcı yazılımı.

<span class="mw-page-title-main">Microsoft Teams</span> İşyeri sohbeti, toplantılar, notlar ve eklentileri birleştiren bir platform

Microsoft Teams videokonferans ve videotelefon, iş yeri sohbeti, toplantılar, notlar ve eklentileri birleştiren bir platformdur. Ayrıca önemli bir uzaktan çalışma ve uzaktan eğitim platformudur. Microsoft tarafından Slack'e rakip olarak tasarlandı ve Kasım 2016'da resmen duyuruldu. Hizmet, Microsoft Office ve Skype dahil olmak üzere şirketin Office 365 abonelik büro verimlilik paketiyle ve Microsoft dışı ürünlerle entegre olabilen eklentileri ile entegre oldu. Microsoft Teams, web tabanlı bir masaüstü uygulamasıdır. GitHub'dan Electron çerçevesi üzerine geliştirildi. Bu, Chromium oluşturma motorunu ve Node.js JavaScript platformunu birleştirir. Teams, Skype for Business ve Microsoft Classroom dahil olmak üzere kurumsal mesajlaşma ve işbirliği platformlarının yerini alıyor.

<span class="mw-page-title-main">Deno</span> TypeScript and JavaScript Çalistirma Ortami

Deno, V8 JavaScript motoruna ve ek olarak Rust programlama diline dayanan JavaScript ve TypeScript için bir çalıştırma ortamıdır. Node.js'in yaratıcısı Ryan Dahl tarafından güvenlik ve üretkenliğe odaklanılarak geliştirilmeye başlanmıştır. 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu. Deno, ayrı bir paket yönetim sistemi gerektirmez, bunun yerine tek bir dosya içinde hem çalışma ortamı hem de paket yöneticisi rolünü üstlenir.

Apache Cordova ilk olarak Nitobi tarafından yaratılmış mobil uygulama geliştirme iskeletidir. 2011'de Adobe Nitobi'yi satın aldı ve PhoneGap olarak yeniden markalaştırdı ve daha sonra yazılımın açık kaynaklı bir sürümü olan Apache Cordova'yı piyasaya sürdü. Apache Cordova yazılım programlamacılarının Android, iOS veya Windows Phone'daki platforma özgü API'leri kullanmak yerine CSS3, HTML5 ve JavaScript kullanarak mobil cihazlar için uygulamalar derlemelerini sağlar. CSS, HTML ve JavaScript kodlarının cihazın platformuna göre paketlenmesini sağlar. Cihazda çalışması için HTML ve JavaScript'in özelliklerini genişletir. Elde edilen uygulama melezdir. Ne tamamen gerçek anlamda doğuştan mobil uygulamadır ne de tam olarak Web temellidir. Sürüm 1.9'dan itibaren yerel ve melez kod parçacıklarını karıştırmak mümkündür.

Blink, Google, Facebook, Microsoft, Opera Software, Adobe Systems, Intel, IBM, Samsung ve diğerlerinin katkılarıyla Chromium projesinin parçası olarak geliştirilmiş bir tarayıcı motorudur. İlk olarak Nisan 2013'te duyuruldu.

JavaScript motoru, JavaScript kodunu yürüten bir yazılım bileşenidir. İlk JavaScript motorları yalnızca yorumlayıcılardı, ancak ilgili tüm modern motorlar ise gelişmiş performans için tam zamanında derlemeyi kullanır.

<span class="mw-page-title-main">Snap (yazılım)</span>

Snap, Linux çekirdeğini ve systemd init sistemini kullanan işletim sistemleri için Canonical tarafından geliştirilmiş bir yazılım paketleme ve dağıtım sistemidir. Snaps adı verilen paketler ve bunları kullanma aracı snapd , bir dizi Linux dağıtımında çalışır ve yukarı akış yazılım geliştiricilerinin uygulamalarını doğrudan kullanıcılara dağıtmasına olanak tanır. Snap'ler, ana bilgisayar sistemine aracılı erişime sahip bir sanal alanda çalışan bağımsız uygulamalardır. Snap ilk olarak bulut uygulamaları için piyasaya sürüldü, ancak daha sonra Nesnelerin İnterneti cihazları ve masaüstü uygulamaları için de çalışacak şekilde taşındı.

<span class="mw-page-title-main">Beaker</span> Web tarayıcısı

Beaker, Blue Link Labs tarafından geliştirilen ancak artık geliştirilmesi devam etmeyen ücretsiz ve açık kaynaklı bir web tarayıcısıdır. Beaker Browser eşler arası teknoloji, kullanıcıların web sitelerini ve web uygulamalarını ayrı bir web sunucusu kurmaya ve yönetmeye veya içeriklerini üçüncü taraf bir sunucuda barındırmaya gerek kalmadan doğrudan tarayıcıdan kendi kendilerine yayımlamalarına olanak tanır. Tüm dosyalar ve web siteleri, dosyaların birkaç kullanıcı tarafından paylaşılmasına ve barındırılmasına izin veren bir hiper ortam eşler arası protokolü olan Dat kullanılarak aktarılır. Tarayıcı ayrıca geleneksel sunuculara bağlanmak için HTTP protokolünü de destekler.

WebAssembly, yürütülebilir programlar için taşınabilir bir ikili kod biçimine karşılık gelen bir metin biçimidir. Bunun yanı sıra bu tür programlar ve bunların ana bilgisayar ortamı arasındaki etkileşimleri kolaylaştırmak için yazılım arabirimlerini de ifade eder.

<span class="mw-page-title-main">Cloud9 IDE</span>

Cloud9 IDE, sürüm 2.0'dan sürüm 3.0'a kadar açık kaynak olarak yayınlanan bir Çevrimiçi IDE'dir. C, C++, PHP, Ruby, Perl, Python, Node.js ile JavaScript ve Go gibi birçok programlama dilini destekler.

<span class="mw-page-title-main">PDF.js</span>

PDF.js, Taşınabilir Belge Biçimi (PDF) dosyalarını web standartları ile uyumlu HTML5 Canvas kullanarak işleyen bir JavaScript kütüphanesidir. Proje, Andreas Gal'in 2011'de başlatmasından sonra Mozilla Corporation tarafından yönetilmektedir.

Next.js, React tabanlı web uygulamaları için sunucu tarafında işleme ve statik web sitesi oluşturma sağlayan, Vercel tarafından oluşturulmuş açık kaynaklı bir Web geliştirme platformudur.