असल में Electron उतना बुरा नहीं है जितना समझा जाता है
(blog.vaxry.net)- Electron को अक्सर सिर्फ धीमा और अक्षम समझ लिया जाता है, लेकिन वास्तव में यह एक कुशल और शक्तिशाली टूल है
- RAM उपयोग और storage size की समस्या आधुनिक ऐप्स में सामान्य रुझान है, सिर्फ Electron की समस्या नहीं
- streaming services जैसे web technology आधारित फीचर्स वाले ऐप्स में Electron कई बार एक स्वाभाविक विकल्प होता है
- यह तेज़ development speed और asynchronous networking के लिए optimized है, इसलिए productivity बहुत ऊँची रहती है
- Electron के धीमे होने की छवि मुख्य रूप से कंपनियों द्वारा बनाए गए कम-गुणवत्ता वाले ऐप्स की वजह से बनी है; अच्छी तरह बनाए गए Electron ऐप्स काफ़ी तेज़ और उपयोगी होते हैं
Electron को लेकर पूर्वाग्रह
- Electron मूल रूप से लोकल में वेबपेज चलाने वाले Chromium browser जैसा है
- इसी वजह से यह धारणा फैल गई कि यह धीमा, अक्षम और "non-native" है, लेकिन वास्तव में यह सही नहीं है
दक्षता
- अगर Electron अक्षम होता, तो Chromium browser खुद ठीक से काम नहीं कर पाता
- Electron सिर्फ ऐप को सही ढंग से चलाने के लिए कई components को साथ में bundle करता है
RAM उपयोग
- "Electron बहुत ज़्यादा RAM खाता है" वाला दावा तथ्यात्मक रूप से सही नहीं है
- वास्तविक माप के अनुसार
- Vermilion (Electron आधारित): 215MB
- Dolphin (Qt6/KDE आधारित): 258MB
- Nautilus (GTK4/Libadwaita आधारित): 374MB
- आधुनिक ऐप्स में फीचर्स बढ़ने के साथ RAM खपत बढ़ने की प्रवृत्ति है, और यह केवल Electron की समस्या नहीं है
storage size
- Electron ऐप्स कई dependencies को साथ में bundle करते हैं, इसलिए उनका आकार बड़ा हो जाता है
- इसकी संरचना Flatpak या AppImage जैसी है, जिससे portability और stability बढ़ती है
गति
- Electron ऐप्स के धीमे होने की वजह Electron खुद नहीं, बल्कि ज़्यादातर कंपनियों द्वारा बनाए गए ऐप्स का ढीला implementation है
जहाँ Electron और बेहतर विकल्प बन जाता है
DRM हैंडलिंग
- streaming services DRM का उपयोग करती हैं, और इसके लिए web-based technologies की ज़रूरत होती है
- उदाहरण के लिए Tidal को Widevine चाहिए, और Electron में इसे आसानी से integrate करने के लिए ecosystem उपलब्ध है
- Spotify में भी क़ानूनी रूप से streaming सिर्फ JS modules के ज़रिए ही संभव है
तेज़ development speed
- Typescript और Electron, web technology अनुभव रखने वालों के लिए बहुत तेज़ development संभव बनाते हैं
- GTK या QT आधारित frameworks की तुलना में web technologies accessibility और learning curve दोनों में कहीं बेहतर हैं
asynchronous networking
- streaming apps की तरह जहाँ asynchronous communication बार-बार होती है, वहाँ web technologies अच्छी तरह optimized हैं
क्या Electron हर चीज़ के लिए उपयुक्त है?
- सिद्धांत रूप से संभव है, लेकिन desktop core apps जैसे मामलों में, जहाँ बहुत कम resources चाहिए होते हैं, यह उपयुक्त नहीं है
- जटिल, online features से भरे, और cross-platform ज़रूरतों वाले ऐप्स के लिए Electron एक तार्किक विकल्प है
- अगर development quality अच्छी हो, तो Electron ऐप्स को काफ़ी तेज़ और कुशल बनाया जा सकता है
- उदाहरण के तौर पर Obsidian और VS Code जैसे Electron ऐप्स का performance बहुत अच्छा है
- हालिया WASM प्रगति के साथ, भारी काम को offload किया जाए तो Electron ऐप्स पारंपरिक desktop apps से भी प्रतिस्पर्धा कर सकते हैं
निष्कर्ष
- Electron को लेकर ज़्यादातर शिकायतें पुराने Electron versions या कंपनियों के कम-गुणवत्ता वाले ऐप्स से जुड़ी हैं
- "यह browser page है इसलिए धीमा है" जैसी धारणा वास्तविकता से काफ़ी दूर है, क्योंकि आधुनिक browsers बहुत उच्च performance देते हैं
16 टिप्पणियां
लगता है आपने कोई बढ़िया Electron प्रोजेक्ट देखा ही नहीं, इसलिए ऐसा कह रहे हैं ~
... शायद बात कुछ ऐसी ही है, हाहा
मैंने भी Electron 2-3 साल पहले ही इस्तेमाल किया था, आजकल तो मैं Tauri से बनाता हूँ..
अच्छा है
Tauri इस्तेमाल करें। इसका backend Rust में है और integration आपकी सोच से ज़्यादा आसान है।
सिर्फ दावे हैं, लेकिन उनके समर्थन में एक भी आधार नहीं है।
वैसे भी, qt जैसी चीज़ों की तुलना में open experience बेहतर है, यही बात है न?
दूसरे points समझ में आते हैं, लेकिन RAM से जुड़ा दावा अनुभव से बहुत ज़्यादा अलग लगता है...
हमेशा बैकग्राउंड में चलती रहनी पड़ने वाली Electron application थोड़ी बोझिल लगती थी।
पता नहीं.. सिर्फ 3~4 Electron ऐप्स खुले हों तब भी अक्सर मेमोरी कम पड़ने लगती है और सिस्टम जूझने लगता है....
अटैक surface बहुत बड़ा है, लेकिन लोग इस पर ज़्यादा ध्यान नहीं देते, इसलिए अब इससे हाथ खींचने की सोच रहा हूँ
मैं इस बात से सहमत हूं कि यह अपने आप में एक अच्छा framework है, लेकिन बहुत-सी कंपनियां और startups बेहतर productivity का बहाना बनाकर performance की बिल्कुल परवाह किए बिना चीजें बना देती हैं, इसलिए जैसे ही सुनता हूं कि कुछ Electron से बनाया गया है, उसे ठुकराने का मन हो जाता है।
अच्छा laptop इस्तेमाल कर रहा हूँ, फिर भी ईमानदारी से कहूँ तो यह ठीक से महसूस नहीं होता कि vscode तेज़ है। आखिर में या तो काफ़ी heavy और फीचर-भरपूर होने के बावजूद सुविधाजनक IntelliJ इस्तेमाल करने लगता हूँ, या फिर पूरी तरह native में बने IDE या text editor का उपयोग करता हूँ। वे निश्चित रूप से तेज़ थे और अनुभव भी अच्छा था।
काफ़ी अच्छा है, लेकिन इसका एक बेसिक size है, इसलिए इसे हर जगह इस्तेमाल करना थोड़ा मुश्किल है..
Electron तो बहुत अच्छा है, कौन कहता है कि यह अच्छा नहीं है... बहुत बढ़िया है
Flatpak या AppImage जैसी समस्याएँ Windows पर लौटने के बाद बिल्कुल भी प्रासंगिक नहीं लगतीं, है ना, हाहा..
मुझे लगता है कि electron खुद में एक बहुत अच्छा framework है। framework का development भी काफी सक्रिय है और सबसे बढ़कर, Chromium में जो कुछ भी implement होना होता है वह लगभग सब इसमें मौजूद है।
Electron के बारे में लोग जो बातें गलत समझते हैं
Tauri और Electron की तुलना - performance, bundle size और वास्तविक trade-offs